diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c4705d67ae..a78d386546 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,6 +8,8 @@ updates: day: saturday time: "03:00" timezone: Europe/Paris + cooldown: + default-days: 10 open-pull-requests-limit: 10 labels: - 3. to review @@ -17,7 +19,7 @@ updates: - luka-nextcloud - package-ecosystem: npm - target-branch: stable33 + target-branch: stable34 versioning-strategy: lockfile-only directory: "/" schedule: @@ -25,6 +27,8 @@ updates: day: saturday time: "03:15" timezone: Europe/Paris + cooldown: + default-days: 10 ignore: - dependency-name: "*" update-types: ["version-update:semver-major"] @@ -37,7 +41,7 @@ updates: - luka-nextcloud - package-ecosystem: npm - target-branch: stable32 + target-branch: stable33 versioning-strategy: lockfile-only directory: "/" schedule: @@ -45,6 +49,8 @@ updates: day: saturday time: "03:15" timezone: Europe/Paris + cooldown: + default-days: 10 ignore: - dependency-name: "*" update-types: ["version-update:semver-major"] @@ -57,7 +63,7 @@ updates: - luka-nextcloud - package-ecosystem: npm - target-branch: stable31 + target-branch: stable32 versioning-strategy: lockfile-only directory: "/" schedule: @@ -65,6 +71,8 @@ updates: day: saturday time: "03:15" timezone: Europe/Paris + cooldown: + default-days: 10 ignore: - dependency-name: "*" update-types: ["version-update:semver-major"] @@ -83,6 +91,8 @@ updates: day: saturday time: "03:45" timezone: Europe/Paris + cooldown: + default-days: 10 open-pull-requests-limit: 10 reviewers: - juliushaertl @@ -95,6 +105,8 @@ updates: day: saturday time: "04:00" timezone: Europe/Paris + cooldown: + default-days: 10 open-pull-requests-limit: 10 reviewers: - juliushaertl @@ -107,6 +119,8 @@ updates: day: saturday time: "04:15" timezone: Europe/Paris + cooldown: + default-days: 10 open-pull-requests-limit: 10 reviewers: - juliushaertl diff --git a/.github/workflows/appstore-build-publish.yml b/.github/workflows/appstore-build-publish.yml index ff7181ae21..1754fd53dc 100644 --- a/.github/workflows/appstore-build-publish.yml +++ b/.github/workflows/appstore-build-publish.yml @@ -35,7 +35,7 @@ jobs: echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false path: ${{ env.APP_NAME }} @@ -71,7 +71,7 @@ jobs: - name: Set up node ${{ steps.versions.outputs.nodeVersion }} # Skip if no package.json if: ${{ steps.versions.outputs.nodeVersion }} - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: ${{ steps.versions.outputs.nodeVersion }} @@ -87,7 +87,7 @@ jobs: filename: ${{ env.APP_NAME }}/appinfo/info.xml - name: Set up php ${{ steps.php-versions.outputs.php-min }} - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 with: php-version: ${{ steps.php-versions.outputs.php-min }} coverage: none @@ -156,7 +156,7 @@ jobs: unzip nextcloud.zip - name: Checkout server master fallback - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 if: ${{ steps.server-download.outcome != 'success' }} with: persist-credentials: false diff --git a/.github/workflows/cypress-e2e.yml b/.github/workflows/cypress-e2e.yml index 5f5b667c95..5b2929ee9b 100644 --- a/.github/workflows/cypress-e2e.yml +++ b/.github/workflows/cypress-e2e.yml @@ -24,7 +24,7 @@ jobs: matrix: node-version: [20.x] containers: [1, 2, 3] - php-versions: [ '8.2' ] + php-versions: [ '8.3' ] server-versions: [ 'master' ] name: runner ${{ matrix.containers }} @@ -42,7 +42,7 @@ jobs: steps: - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: ${{ matrix.node-version }} @@ -52,7 +52,7 @@ jobs: echo "text_app_ref=$text_app_ref" >> $GITHUB_ENV - name: Checkout server - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false repository: nextcloud/server @@ -60,13 +60,13 @@ jobs: ref: ${{ matrix.server-versions }} - name: Checkout ${{ env.APP_NAME }} - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false path: apps/${{ env.APP_NAME }} - name: Checkout text - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false repository: nextcloud/text @@ -74,7 +74,7 @@ jobs: path: apps/text - name: Set up php ${{ matrix.php-versions }} - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 with: php-version: ${{ matrix.php-versions }} # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation @@ -110,7 +110,7 @@ jobs: curl -v http://localhost:8081/index.php/login - name: Cypress run - uses: cypress-io/github-action@783cb3f07983868532cabaedaa1e6c00ff4786a8 # v7.1.9 + uses: cypress-io/github-action@fa4a118725a8f001170d49631ea89e5d66fee626 # v7.4.1 with: build: npm run dev record: false diff --git a/.github/workflows/dependabot-approve-merge.yml b/.github/workflows/dependabot-approve-merge.yml index c0411c057b..8ec1680f7b 100644 --- a/.github/workflows/dependabot-approve-merge.yml +++ b/.github/workflows/dependabot-approve-merge.yml @@ -52,7 +52,7 @@ jobs: # Enable GitHub auto merge - name: Auto merge - uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # v2.0.0 + uses: alexwilson/enable-github-automerge-action@2c32e18a76e0726ffe7a573bfff2d42a20885126 # v3.0.0 if: startsWith(steps.branchname.outputs.branch, 'dependabot/') with: github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/integration-federation.yml b/.github/workflows/integration-federation.yml index daf6bcc744..374460fd94 100644 --- a/.github/workflows/integration-federation.yml +++ b/.github/workflows/integration-federation.yml @@ -29,14 +29,14 @@ jobs: strategy: fail-fast: false matrix: - php-versions: ['8.2'] + php-versions: ['8.4'] server-versions: ['master'] name: php${{ matrix.php-versions }}-${{ matrix.server-versions }} steps: - name: Checkout server - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false repository: nextcloud/server @@ -44,13 +44,13 @@ jobs: submodules: true - name: Checkout app - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false path: apps/${{ env.APP_NAME }} - name: Checkout activity - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false repository: nextcloud/activity @@ -58,7 +58,7 @@ jobs: path: apps/activity - name: Set up php ${{ matrix.php-versions }} - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 with: php-version: ${{ matrix.php-versions }} extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, apcu, gd diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 0cca474bad..69d2ffdd2a 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -30,7 +30,7 @@ jobs: strategy: fail-fast: false matrix: - php-versions: ['8.2'] + php-versions: ['8.4'] databases: ['sqlite', 'mysql', 'pgsql'] server-versions: ['master'] @@ -56,7 +56,7 @@ jobs: steps: - name: Checkout server - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false repository: nextcloud/server @@ -64,13 +64,13 @@ jobs: submodules: true - name: Checkout app - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false path: apps/${{ env.APP_NAME }} - name: Checkout activity - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false repository: nextcloud/activity @@ -78,7 +78,7 @@ jobs: path: apps/activity - name: Set up php ${{ matrix.php-versions }} - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 with: php-version: ${{ matrix.php-versions }} extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu, gd diff --git a/.github/workflows/lint-eslint.yml b/.github/workflows/lint-eslint.yml index f87467dce9..5263b94906 100644 --- a/.github/workflows/lint-eslint.yml +++ b/.github/workflows/lint-eslint.yml @@ -56,7 +56,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false @@ -68,7 +68,7 @@ jobs: fallbackNpm: '^11.3' - name: Set up node ${{ steps.versions.outputs.nodeVersion }} - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: ${{ steps.versions.outputs.nodeVersion }} diff --git a/.github/workflows/lint-php-cs.yml b/.github/workflows/lint-php-cs.yml index be0b1dbcfd..8bc3fc7eae 100644 --- a/.github/workflows/lint-php-cs.yml +++ b/.github/workflows/lint-php-cs.yml @@ -25,7 +25,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false @@ -34,7 +34,7 @@ jobs: uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2.3.1.3.2 - name: Set up php${{ steps.versions.outputs.php-min }} - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 with: php-version: ${{ steps.versions.outputs.php-min }} extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite diff --git a/.github/workflows/lint-php.yml b/.github/workflows/lint-php.yml index 8cc2cb0451..f0a3e600f4 100644 --- a/.github/workflows/lint-php.yml +++ b/.github/workflows/lint-php.yml @@ -24,7 +24,7 @@ jobs: php-versions: ${{ steps.versions.outputs.php-versions }} steps: - name: Checkout app - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false @@ -43,12 +43,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Set up php ${{ matrix.php-versions }} - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 with: php-version: ${{ matrix.php-versions }} extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite diff --git a/.github/workflows/lint-stylelint.yml b/.github/workflows/lint-stylelint.yml index e39f07ac21..e4b26b5858 100644 --- a/.github/workflows/lint-stylelint.yml +++ b/.github/workflows/lint-stylelint.yml @@ -25,7 +25,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false @@ -37,7 +37,7 @@ jobs: fallbackNpm: '^11.3' - name: Set up node ${{ steps.versions.outputs.nodeVersion }} - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: ${{ steps.versions.outputs.nodeVersion }} diff --git a/.github/workflows/node.yml b/.github/workflows/node.yml index 69f43cbb5c..af36718ad5 100644 --- a/.github/workflows/node.yml +++ b/.github/workflows/node.yml @@ -53,7 +53,7 @@ jobs: name: NPM build steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false @@ -65,7 +65,7 @@ jobs: fallbackNpm: '^11.3' - name: Set up node ${{ steps.versions.outputs.nodeVersion }} - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: ${{ steps.versions.outputs.nodeVersion }} diff --git a/.github/workflows/npm-audit-fix.yml b/.github/workflows/npm-audit-fix.yml index d45c3a2641..928fc93050 100644 --- a/.github/workflows/npm-audit-fix.yml +++ b/.github/workflows/npm-audit-fix.yml @@ -26,16 +26,16 @@ jobs: matrix: branches: - ${{ github.event.repository.default_branch }} + - 'stable34' - 'stable33' - 'stable32' - - 'stable31' name: npm-audit-fix-${{ matrix.branches }} steps: - name: Checkout id: checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false ref: ${{ matrix.branches }} @@ -49,7 +49,7 @@ jobs: fallbackNpm: '^11.3' - name: Set up node ${{ steps.versions.outputs.nodeVersion }} - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: ${{ steps.versions.outputs.nodeVersion }} diff --git a/.github/workflows/phpunit-mysql.yml b/.github/workflows/phpunit-mysql.yml index d1b1d940a8..391e7179ba 100644 --- a/.github/workflows/phpunit-mysql.yml +++ b/.github/workflows/phpunit-mysql.yml @@ -24,7 +24,7 @@ jobs: matrix: ${{ steps.versions.outputs.sparse-matrix }} steps: - name: Checkout app - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false @@ -89,7 +89,7 @@ jobs: echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV - name: Checkout server - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false submodules: true @@ -97,13 +97,13 @@ jobs: ref: ${{ matrix.server-versions }} - name: Checkout app - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false path: apps/${{ env.APP_NAME }} - name: Set up php ${{ matrix.php-versions }} - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 with: php-version: ${{ matrix.php-versions }} # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation diff --git a/.github/workflows/phpunit-pgsql.yml b/.github/workflows/phpunit-pgsql.yml index 362511804c..f4c48ab481 100644 --- a/.github/workflows/phpunit-pgsql.yml +++ b/.github/workflows/phpunit-pgsql.yml @@ -25,7 +25,7 @@ jobs: server-max: ${{ steps.versions.outputs.branches-max-list }} steps: - name: Checkout app - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false @@ -92,7 +92,7 @@ jobs: echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV - name: Checkout server - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false submodules: true @@ -100,13 +100,13 @@ jobs: ref: ${{ matrix.server-versions }} - name: Checkout app - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false path: apps/${{ env.APP_NAME }} - name: Set up php ${{ matrix.php-versions }} - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 with: php-version: ${{ matrix.php-versions }} # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation diff --git a/.github/workflows/phpunit-sqlite.yml b/.github/workflows/phpunit-sqlite.yml index dc215e0c3a..a61976dfa5 100644 --- a/.github/workflows/phpunit-sqlite.yml +++ b/.github/workflows/phpunit-sqlite.yml @@ -25,7 +25,7 @@ jobs: server-max: ${{ steps.versions.outputs.branches-max-list }} steps: - name: Checkout app - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false @@ -81,7 +81,7 @@ jobs: echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV - name: Checkout server - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false submodules: true @@ -89,13 +89,13 @@ jobs: ref: ${{ matrix.server-versions }} - name: Checkout app - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false path: apps/${{ env.APP_NAME }} - name: Set up php ${{ matrix.php-versions }} - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 with: php-version: ${{ matrix.php-versions }} # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation diff --git a/.github/workflows/pr-feedback.yml b/.github/workflows/pr-feedback.yml index f4c0477ce7..5afd382f05 100644 --- a/.github/workflows/pr-feedback.yml +++ b/.github/workflows/pr-feedback.yml @@ -36,7 +36,7 @@ jobs: blocklist=$(curl https://raw.githubusercontent.com/nextcloud/.github/master/non-community-usernames.txt | paste -s -d, -) echo "blocklist=$blocklist" >> "$GITHUB_OUTPUT" - - uses: nextcloud/pr-feedback-action@f0cab224dea8e1f282f9451de322f323c78fc7a5 # main + - uses: nextcloud/pr-feedback-action@4709fa5b3e1821559d4c312ef937b61f1567aa44 # main with: feedback-message: | Hello there, diff --git a/.github/workflows/psalm.yml b/.github/workflows/psalm.yml index 457acac57f..45d5143462 100644 --- a/.github/workflows/psalm.yml +++ b/.github/workflows/psalm.yml @@ -24,7 +24,7 @@ jobs: name: static-psalm-analysis steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false @@ -36,7 +36,7 @@ jobs: run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml - name: Set up php${{ steps.versions.outputs.php-min }} - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 with: php-version: ${{ steps.versions.outputs.php-min }} extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite diff --git a/.github/workflows/reuse.yml b/.github/workflows/reuse.yml index 3f485f875f..67fdafc440 100644 --- a/.github/workflows/reuse.yml +++ b/.github/workflows/reuse.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest-low steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false diff --git a/.github/workflows/update-nextcloud-ocp-approve-merge.yml b/.github/workflows/update-nextcloud-ocp-approve-merge.yml index dfe0ef4e97..e82f40383e 100644 --- a/.github/workflows/update-nextcloud-ocp-approve-merge.yml +++ b/.github/workflows/update-nextcloud-ocp-approve-merge.yml @@ -52,7 +52,7 @@ jobs: # Enable GitHub auto merge - name: Auto merge - uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # v2.0.0 + uses: alexwilson/enable-github-automerge-action@2c32e18a76e0726ffe7a573bfff2d42a20885126 # v3.0.0 if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp') with: github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/update-nextcloud-ocp.yml b/.github/workflows/update-nextcloud-ocp.yml index 55bfca2cbe..144a72ea4f 100644 --- a/.github/workflows/update-nextcloud-ocp.yml +++ b/.github/workflows/update-nextcloud-ocp.yml @@ -26,15 +26,15 @@ jobs: matrix: branches: - ${{ github.event.repository.default_branch }} + - 'stable34' - 'stable33' - 'stable32' - - 'stable31' name: update-nextcloud-ocp-${{ matrix.branches }} steps: - id: checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false ref: ${{ matrix.branches }} @@ -43,7 +43,7 @@ jobs: - name: Set up php8.2 if: steps.checkout.outcome == 'success' - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 with: php-version: 8.2 # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation diff --git a/.gitignore b/.gitignore index e8034c743f..0dea4da97b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ css/style.css css/vendor.css cypress/videos/ tests/integration/vendor/ -tests/integration/composer.lock tests/.phpunit.result.cache vendor/ .php_cs.cache diff --git a/appinfo/info.xml b/appinfo/info.xml index 30b3adbb9d..525e03ec7e 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -20,7 +20,7 @@ - 🚀 Get your project organized - 3.0.0-dev.1 + 4.0.0-dev.2 agpl Julius Härtl Deck @@ -42,7 +42,7 @@ pgsql sqlite mysql - + OCA\Deck\Cron\DeleteCron diff --git a/appinfo/routes.php b/appinfo/routes.php index 685a6b8756..1a64b7eb84 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -8,6 +8,7 @@ return [ 'routes' => [ ['name' => 'page#index', 'url' => '/', 'verb' => 'GET'], + ['name' => 'page#indexUpcoming', 'url' => '/upcoming', 'verb' => 'GET'], ['name' => 'page#indexList', 'url' => '/board', 'verb' => 'GET'], ['name' => 'page#indexBoard', 'url' => '/board/{boardId}', 'verb' => 'GET'], ['name' => 'page#indexBoardDetails', 'url' => '/board/{boardId}/details', 'verb' => 'GET'], @@ -57,6 +58,8 @@ ['name' => 'card#removeLabel', 'url' => '/cards/{cardId}/label/{labelId}', 'verb' => 'DELETE'], ['name' => 'card#assignUser', 'url' => '/cards/{cardId}/assign', 'verb' => 'POST'], ['name' => 'card#unassignUser', 'url' => '/cards/{cardId}/unassign', 'verb' => 'PUT'], + ['name' => 'card#assignDependentCard', 'url' => '/cards/{cardId}/dependentCards/{dependentCardId}', 'verb' => 'POST'], + ['name' => 'card#removeDependentCard', 'url' => '/cards/{cardId}/dependentCards/{dependentCardId}', 'verb' => 'DELETE'], // attachments ['name' => 'attachment#getAll', 'url' => '/cards/{cardId}/attachments', 'verb' => 'GET'], @@ -68,7 +71,6 @@ ['name' => 'attachment#delete', 'url' => '/cards/{cardId}/attachment/{attachmentId}', 'verb' => 'DELETE'], ['name' => 'attachment#restore', 'url' => '/cards/{cardId}/attachment/{attachmentId}/restore', 'verb' => 'GET'], - // labels ['name' => 'label#create', 'url' => '/labels', 'verb' => 'POST'], ['name' => 'label#update', 'url' => '/labels/{labelId}', 'verb' => 'PUT'], @@ -84,12 +86,12 @@ ['name' => 'board_api#addAcl', 'url' => '/api/v{apiVersion}/boards/{boardId}/acl', 'verb' => 'POST'], ['name' => 'board_api#deleteAcl', 'url' => '/api/v{apiVersion}/boards/{boardId}/acl/{aclId}', 'verb' => 'DELETE'], ['name' => 'board_api#updateAcl', 'url' => '/api/v{apiVersion}/boards/{boardId}/acl/{aclId}', 'verb' => 'PUT'], + ['name' => 'board_api#clone', 'url' => '/api/v{apiVersion}/boards/{boardId}/clone', 'verb' => 'POST'], ['name' => 'board_import_api#getAllowedSystems', 'url' => '/api/v{apiVersion}/boards/import/getSystems','verb' => 'GET'], ['name' => 'board_import_api#getConfigSchema', 'url' => '/api/v{apiVersion}/boards/import/config/schema/{name}','verb' => 'GET'], ['name' => 'board_import_api#import', 'url' => '/api/v{apiVersion}/boards/import','verb' => 'POST'], - ['name' => 'stack_api#index', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks', 'verb' => 'GET'], ['name' => 'stack_api#getArchived', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/archived', 'verb' => 'GET'], ['name' => 'stack_api#get', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}', 'verb' => 'GET'], @@ -105,6 +107,8 @@ ['name' => 'card_api#assignUser', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignUser', 'verb' => 'PUT'], ['name' => 'card_api#unassignUser', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/unassignUser', 'verb' => 'PUT'], ['name' => 'card_api#reorder', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/reorder', 'verb' => 'PUT'], + ['name' => 'card_api#assignDependentCard', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/dependentCards/{dependentCardId}', 'verb' => 'POST'], + ['name' => 'card_api#removeDependentCard', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/dependentCards/{dependentCardId}', 'verb' => 'DELETE'], ['name' => 'card_api#archive', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/archive', 'verb' => 'PUT'], ['name' => 'card_api#unarchive', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/unarchive', 'verb' => 'PUT'], ['name' => 'card_api#delete', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}', 'verb' => 'DELETE'], @@ -146,6 +150,8 @@ ['name' => 'card_ocs#unAssignUser', 'url' => '/api/v{apiVersion}/cards/{cardId}/unassign', 'verb' => 'PUT'], ['name' => 'card_ocs#removeLabel', 'url' => '/api/v{apiVersion}/cards/{cardId}/label/{labelId}', 'verb' => 'DELETE'], ['name' => 'card_ocs#reorder', 'url' => '/api/v{apiVersion}/cards/{cardId}/reorder', 'verb' => 'PUT'], + ['name' => 'card_ocs#assignDependentCard', 'url' => '/api/v{apiVersion}/cards/{cardId}/dependentCards/{dependentCardId}', 'verb' => 'POST'], + ['name' => 'card_ocs#removeDependentCard', 'url' => '/api/v{apiVersion}/cards/{cardId}/dependentCards/{dependentCardId}', 'verb' => 'DELETE'], ['name' => 'stack_ocs#create', 'url' => '/api/v{apiVersion}/stacks', 'verb' => 'POST'], ['name' => 'stack_ocs#setDoneStack', 'url' => '/api/v{apiVersion}/stacks/{stackId}/done', 'verb' => 'PUT'], @@ -155,7 +161,7 @@ ['name' => 'attachment_ocs#getAll', 'url' => '/api/v{apiVersion}/cards/{cardId}/attachments', 'verb' => 'GET'], ['name' => 'attachment_ocs#create', 'url' => '/api/v{apiVersion}/cards/{cardId}/attachment', 'verb' => 'POST'], ['name' => 'attachment_ocs#update', 'url' => '/api/v{apiVersion}/cards/{cardId}/attachments/{attachmentId}', 'verb' => 'PUT'], - ['name' => 'attachment_ocs#delete', 'url' => '/api/v{apiVersion}/cards/{cardId}/attachments/{attachmentId}', 'verb' => 'DELETE'], + ['name' => 'attachment_ocs#delete', 'url' => '/api/v{apiVersion}/cards/{cardId}/attachments/{type}:{attachmentId}', 'verb' => 'DELETE'], ['name' => 'attachment_ocs#restore', 'url' => '/api/v{apiVersion}/cards/{cardId}/attachments/{attachmentId}/restore', 'verb' => 'PUT'], ['name' => 'Config#get', 'url' => '/api/v{apiVersion}/config', 'verb' => 'GET'], diff --git a/composer.lock b/composer.lock index 2d6c5e5ae7..c160dfa74a 100644 --- a/composer.lock +++ b/composer.lock @@ -65,16 +65,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "v6.7.2", + "version": "6.10.0", "source": { "type": "git", "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "6fea66c7204683af437864e7c4e7abf383d14bc0" + "reference": "8b1308a9d7bdbdb20ce87ef920f82b4564bb2d33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/6fea66c7204683af437864e7c4e7abf383d14bc0", - "reference": "6fea66c7204683af437864e7c4e7abf383d14bc0", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/8b1308a9d7bdbdb20ce87ef920f82b4564bb2d33", + "reference": "8b1308a9d7bdbdb20ce87ef920f82b4564bb2d33", "shasum": "" }, "require": { @@ -84,7 +84,7 @@ }, "require-dev": { "friendsofphp/php-cs-fixer": "3.3.0", - "json-schema/json-schema-test-suite": "^23.2", + "json-schema/json-schema-test-suite": "dev-main", "marc-mabe/php-enum-phpstan": "^2.0", "phpspec/prophecy": "^1.19", "phpstan/phpstan": "^1.12", @@ -134,9 +134,9 @@ ], "support": { "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/v6.7.2" + "source": "https://github.com/jsonrainbow/json-schema/tree/6.10.0" }, - "time": "2026-02-15T15:06:22+00:00" + "time": "2026-06-16T20:50:26+00:00" }, { "name": "marc-mabe/php-enum", @@ -285,16 +285,16 @@ }, { "name": "kubawerlos/php-cs-fixer-custom-fixers", - "version": "v3.35.1", + "version": "v3.37.2", "source": { "type": "git", "url": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers.git", - "reference": "2a35f80ae24ca77443a7af1599c3a3db1b6bd395" + "reference": "678df979ce743466b42ddb6eea46b3f4c9a7bade" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/2a35f80ae24ca77443a7af1599c3a3db1b6bd395", - "reference": "2a35f80ae24ca77443a7af1599c3a3db1b6bd395", + "url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/678df979ce743466b42ddb6eea46b3f4c9a7bade", + "reference": "678df979ce743466b42ddb6eea46b3f4c9a7bade", "shasum": "" }, "require": { @@ -304,7 +304,7 @@ "php": "^7.4 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^9.6.24 || ^10.5.51 || ^11.5.32" + "phpunit/phpunit": "^9.6.34 || ^10.5.63 || ^11.5.55" }, "type": "library", "autoload": { @@ -325,7 +325,7 @@ "description": "A set of custom fixers for PHP CS Fixer", "support": { "issues": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/issues", - "source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.35.1" + "source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.37.2" }, "funding": [ { @@ -333,7 +333,7 @@ "type": "github" } ], - "time": "2025-09-28T18:43:35+00:00" + "time": "2026-05-12T16:22:19+00:00" }, { "name": "myclabs/deep-copy", @@ -397,16 +397,16 @@ }, { "name": "nextcloud/coding-standard", - "version": "v1.4.0", + "version": "v1.5.0", "source": { "type": "git", "url": "https://github.com/nextcloud/coding-standard.git", - "reference": "8e06808c1423e9208d63d1bd205b9a38bd400011" + "reference": "80547a93236fbb9c783e05f0f0899043851b0dba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nextcloud/coding-standard/zipball/8e06808c1423e9208d63d1bd205b9a38bd400011", - "reference": "8e06808c1423e9208d63d1bd205b9a38bd400011", + "url": "https://api.github.com/repos/nextcloud/coding-standard/zipball/80547a93236fbb9c783e05f0f0899043851b0dba", + "reference": "80547a93236fbb9c783e05f0f0899043851b0dba", "shasum": "" }, "require": { @@ -436,9 +436,9 @@ ], "support": { "issues": "https://github.com/nextcloud/coding-standard/issues", - "source": "https://github.com/nextcloud/coding-standard/tree/v1.4.0" + "source": "https://github.com/nextcloud/coding-standard/tree/v1.5.0" }, - "time": "2025-06-19T12:27:27+00:00" + "time": "2026-05-19T18:30:09+00:00" }, { "name": "nextcloud/ocp", @@ -446,12 +446,12 @@ "source": { "type": "git", "url": "https://github.com/nextcloud-deps/ocp.git", - "reference": "50fef0ff2189206a5228b81044f1730c2aa4b396" + "reference": "4f7027a2ef9737eb3f2c48762cc8f35b95fd611c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/50fef0ff2189206a5228b81044f1730c2aa4b396", - "reference": "50fef0ff2189206a5228b81044f1730c2aa4b396", + "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/4f7027a2ef9737eb3f2c48762cc8f35b95fd611c", + "reference": "4f7027a2ef9737eb3f2c48762cc8f35b95fd611c", "shasum": "" }, "require": { @@ -459,13 +459,14 @@ "psr/clock": "^1.0", "psr/container": "^2.0.2", "psr/event-dispatcher": "^1.0", + "psr/http-client": "^1.0.3", "psr/log": "^3.0.2" }, "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-master": "34.0.0-dev" + "dev-master": "35.0.0-dev" } }, "notification-url": "https://packagist.org/downloads/", @@ -487,7 +488,7 @@ "issues": "https://github.com/nextcloud-deps/ocp/issues", "source": "https://github.com/nextcloud-deps/ocp/tree/master" }, - "time": "2026-03-31T01:18:57+00:00" + "time": "2026-05-30T01:59:42+00:00" }, { "name": "nikic/php-parser", @@ -667,16 +668,16 @@ }, { "name": "php-cs-fixer/shim", - "version": "v3.93.0", + "version": "v3.95.3", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/shim.git", - "reference": "a5666a80c1a02c6b9a63660d023e55ffddbe742e" + "reference": "681eea341af451ca7cee6abcebc49fcce59507a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/a5666a80c1a02c6b9a63660d023e55ffddbe742e", - "reference": "a5666a80c1a02c6b9a63660d023e55ffddbe742e", + "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/681eea341af451ca7cee6abcebc49fcce59507a3", + "reference": "681eea341af451ca7cee6abcebc49fcce59507a3", "shasum": "" }, "require": { @@ -713,9 +714,9 @@ "description": "A tool to automatically fix PHP code style", "support": { "issues": "https://github.com/PHP-CS-Fixer/shim/issues", - "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.93.0" + "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.95.3" }, - "time": "2026-01-23T17:33:44+00:00" + "time": "2026-05-29T20:36:02+00:00" }, { "name": "phpunit/php-code-coverage", @@ -1298,6 +1299,111 @@ }, "time": "2019-01-08T18:20:26+00:00" }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, { "name": "psr/log", "version": "3.0.2", diff --git a/cypress/e2e/cardColor.js b/cypress/e2e/cardColor.js new file mode 100644 index 0000000000..569e43ff19 --- /dev/null +++ b/cypress/e2e/cardColor.js @@ -0,0 +1,68 @@ +/** + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +import { randUser } from '../utils/index.js' +import { sampleBoard } from '../utils/sampleBoard' + +const user = randUser() +const boardData = sampleBoard() + +const auth = { + user: user.userId, + password: user.password, +} + +const useModal = (useModal) => { + return cy.request({ + method: 'POST', + url: `${Cypress.env('baseUrl')}/ocs/v2.php/apps/deck/api/v1.0/config/cardDetailsInModal?format=json`, + auth, + body: { value: useModal }, + }).then((response) => { + expect(response.status).to.eq(200) + }) +} + +describe('Card color', function () { + let boardId + before(function () { + cy.createUser(user) + cy.login(user) + cy.createExampleBoard({ + user, + board: boardData, + }).then((board) => { + boardId = board.id + }) + }) + + beforeEach(function () { + cy.login(user) + }) + + it('Set a color', function () { + cy.visit(`/apps/deck/#/board/${boardId}`) + + const newCardTitle = 'Card with color' + + cy.get('.button-vue[aria-label*="Add card"]') + .first().click() + cy.get('.stack__card-add form input#new-stack-input-main') + .type(newCardTitle) + cy.get('.stack__card-add form input[type=submit]') + .first().click() + + cy.get(`.card:contains("${newCardTitle}")`).should('be.visible') + .click() + + cy.get('.app-sidebar-header .action-item__menutoggle').click() + cy.get('.v-popper__popper button:contains("Change card color")').click() + cy.get('.color-picker__simple-color-circle').first().should('be.visible') + .click() + cy.get('.color-picker__navigation').find('button:contains("Choose")') + .click() + + cy.get(`.card:contains("${newCardTitle}")`).should('have.css', 'background-color', 'rgb(182, 70, 157)') + }) +}) diff --git a/cypress/e2e/cardFeatures.js b/cypress/e2e/cardFeatures.js index fbc08fa9b7..c98b776a88 100644 --- a/cypress/e2e/cardFeatures.js +++ b/cypress/e2e/cardFeatures.js @@ -205,10 +205,14 @@ describe('Card', function () { cy.reload() cy.get('.modal__card').should('be.visible') + + // Scroll to the bottom to ensure all content is loaded and visible + cy.get('.modal__card .app-sidebar-tabs, .modal__card .app-sidebar__tab--active').first().scrollTo('bottom', { ensureScrollable: false }) + cy.contains('.modal__card .ProseMirror p', 'Paragraph').scrollIntoView().should('be.visible') + cy.get('.modal__card .ProseMirror h1').contains('Hello world writing more text').should('be.visible') cy.get('.modal__card .ProseMirror li').eq(0).contains('List item').should('be.visible') cy.get('.modal__card .ProseMirror li').eq(1).contains('with entries').should('be.visible') - cy.get('.modal__card .ProseMirror p').contains('Paragraph').should('be.visible') }) it('Smart picker', () => { @@ -266,18 +270,16 @@ describe('Card', function () { cy.get('.card:contains("Card with a due date")').should('be.visible').click() + const now = new Date().setHours(11, 0, 0, 0) + cy.clock(now) cy.get('#app-sidebar-vue [data-cy-due-date-actions]').should('be.visible').click() - + cy.tick(1_000) // Set a due date through shortcut cy.get('[data-cy-due-date-shortcut="tomorrow"] button').should('be.visible').click() const tomorrow = moment().add(1, 'days').hour(8).minutes(0).seconds(0) cy.get('#card-duedate-picker').should('have.value', tomorrow.format('YYYY-MM-DDTHH:mm')) - const now = moment().hour(11).minutes(0).seconds(0).toDate() - cy.clock(now) - cy.log(now) - cy.tick(60_000) cy.get(`.card:contains("${newCardTitle}")`).find('[data-due-state="Now"]').should('be.visible').should('contain', '21 hours') diff --git a/cypress/e2e/swimlanesFeatures.js b/cypress/e2e/swimlanesFeatures.js new file mode 100644 index 0000000000..fc7f8ece9f --- /dev/null +++ b/cypress/e2e/swimlanesFeatures.js @@ -0,0 +1,243 @@ +/** + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +import { randUser } from '../utils/index.js' + +const user = randUser() + +/** + * Builds a board with three stacks, three labels, two cards \u2014 one card + * has two labels so it should render in two lanes when grouped by labels. + */ +function seedSwimlaneBoard() { + const auth = { user: user.userId, password: user.password } + const baseUrl = Cypress.env('baseUrl') + const api = `${baseUrl}/index.php/apps/deck/api/v1.0` + + return cy.request({ + method: 'POST', + url: `${api}/boards`, + auth, + body: { title: 'Swimlanes', color: '00ff00' }, + }).then(({ body: board }) => { + const boardId = board.id + + const stackReq = (title) => cy.request({ + method: 'POST', + url: `${api}/boards/${boardId}/stacks`, + auth, + body: { title, order: 0 }, + }) + const labelReq = (title, color) => cy.request({ + method: 'POST', + url: `${api}/boards/${boardId}/labels`, + auth, + body: { title, color }, + }).then(({ body }) => body) + + // Cypress chainables are not promises, so the requests are chained + // sequentially instead of via Promise.all + const ids = {} + return stackReq('Todo').then(({ body }) => { + ids.todo = body.id + }).then(() => stackReq('Doing')) + .then(() => stackReq('Done')) + .then(() => labelReq('Bug', 'ff0000')) + .then((label) => { + ids.bug = label.id + }) + .then(() => labelReq('Feature', '00ff00')) + .then((label) => { + ids.feature = label.id + }) + .then(() => labelReq('Backend', '0000ff')) + .then((label) => { + ids.backend = label.id + }) + .then(() => { + const mk = (title) => cy.request({ + method: 'POST', + url: `${api}/boards/${boardId}/stacks/${ids.todo}/cards`, + auth, + body: { title, description: '' }, + }).then(({ body }) => body) + const assignLabel = (cardId, labelId) => cy.request({ + method: 'PUT', + url: `${api}/boards/${boardId}/stacks/${ids.todo}/cards/${cardId}/assignLabel`, + auth, + body: { labelId }, + }) + return mk('Fix login bug').then((card) => + // two labels on this card + assignLabel(card.id, ids.bug).then(() => assignLabel(card.id, ids.backend)), + ).then(() => + mk('Ship feature').then((card) => assignLabel(card.id, ids.feature)), + ).then(() => mk('Unlabeled work')) + .then(() => cy.wrap({ boardId })) + }) + }) +} + +const viewer = randUser() + +describe('Swimlane grouping — editor-only restriction', function() { + const owner = randUser() + let restrictedBoardId + + before(function() { + cy.createUser(owner) + cy.createUser(viewer) + const ownerAuth = { user: owner.userId, password: owner.password } + const base = `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0` + cy.request({ + method: 'POST', + url: `${base}/boards`, + auth: ownerAuth, + body: { title: 'Restricted board', color: '0000ff' }, + }).then(({ body }) => { + restrictedBoardId = body.id + // Share via API with all permission flags explicitly false; the + // share dialog grants edit by default, which would invalidate this + // "read-only" suite. PERMISSION_TYPE_USER = 0. + cy.request({ + method: 'POST', + url: `${base}/boards/${restrictedBoardId}/acl`, + auth: ownerAuth, + body: { + type: 0, + participant: viewer.userId, + permissionEdit: false, + permissionShare: false, + permissionManage: false, + }, + }) + }) + }) + + it('read-only user cannot set swimlaneMode via the API (403)', function() { + // Clear cookies so the basic-auth credentials below aren't silently + // overridden by a logged-in session left over from cy.createUser / + // cy.shareBoardWithUi (which authenticate as admin and would make + // the request succeed as admin, masking the permission check). + cy.clearCookies() + cy.request({ + method: 'POST', + failOnStatusCode: false, + url: `${Cypress.env('baseUrl')}/ocs/v2.php/apps/deck/api/v1.0/config/board:${restrictedBoardId}:swimlaneMode?format=json`, + auth: { user: viewer.userId, password: viewer.password }, + headers: { 'OCS-APIRequest': 'true' }, + body: { value: 'labels' }, + }).then((response) => { + expect(response.status).to.equal(403) + }) + }) + + it('swimlane grouping controls are disabled in the UI for a read-only user', function() { + cy.login(viewer) + cy.visit(`/apps/deck/board/${restrictedBoardId}`) + cy.get('button[aria-label="View Modes"]', { timeout: 10000 }).first().click() + cy.get('input[name="swimlaneMode"]').each(($input) => { + cy.wrap($input).should('be.disabled') + }) + }) +}) + +describe('Swimlane grouping', function() { + let boardId + + before(function() { + cy.createUser(user) + cy.login(user) + seedSwimlaneBoard().then((ctx) => { boardId = ctx.boardId }) + }) + + beforeEach(function() { + // Reset the board to flat view before each test so the tests are + // independent (done here rather than in afterEach so that a config + // request still in flight when the previous test ends cannot undo it) + cy.request({ + method: 'POST', + url: `${Cypress.env('baseUrl')}/ocs/v2.php/apps/deck/api/v1.0/config/board:${boardId}:swimlaneMode?format=json`, + auth: { user: user.userId, password: user.password }, + body: { value: 'none' }, + }) + cy.login(user) + cy.visit(`/apps/deck/board/${boardId}`) + cy.get('.stack', { timeout: 10000 }).should('have.length', 3) + }) + + // Selects a grouping mode in the View Modes menu and waits for the + // config request to be persisted, so the next test cannot race it + const setModeViaMenu = (label) => { + cy.intercept('POST', '**/apps/deck/api/v1.0/config/**').as('saveSwimlaneMode') + cy.get('button[aria-label="View Modes"]').first().click() + // {force: true} is needed because the NcActions menu has a brief + // CSS visibility:hidden phase on the action-radio span while it + // animates open, which is what an end user would see as a normal + // click target + cy.contains('.action-radio__label', label).click({ force: true }) + cy.wait('@saveSwimlaneMode') + } + + it('flat view shows no swimlanes initially', function() { + cy.get('.swimlane').should('not.exist') + cy.get('.card').should('have.length.at.least', 3) + }) + + it('groups cards by labels', function() { + setModeViaMenu('Labels') + + cy.get('.swimlane', { timeout: 8000 }).should('have.length.at.least', 4) + cy.get('.swimlane-header__title, .swimlane-header__label').should('contain.text', 'Bug') + cy.get('.swimlane-header__title, .swimlane-header__label').should('contain.text', 'Feature') + cy.get('.swimlane-header__title, .swimlane-header__label').should('contain.text', 'Backend') + cy.get('.swimlane-header__title, .swimlane-header__label').last().should('contain.text', 'No label') + }) + + it('renders a multi-label card in every matching lane', function() { + setModeViaMenu('Labels') + cy.get('.swimlane', { timeout: 8000 }).should('have.length.at.least', 4) + + // "Fix login bug" has Bug + Backend labels \u2014 must appear in both lanes. + // Use cy.contains() to avoid embedding lane names into a CSS selector string. + const expectCardInLane = (laneName, cardTitle) => { + cy.contains('.swimlane-header', laneName) + .parents('.swimlane') + .find('.card') + .contains(cardTitle) + .should('exist') + } + expectCardInLane('Bug', 'Fix login bug') + expectCardInLane('Backend', 'Fix login bug') + }) + + it('groups cards by assignees with Unassigned catchall last', function() { + setModeViaMenu('Assignees') + + cy.get('.swimlane', { timeout: 8000 }).should('have.length.at.least', 1) + cy.get('.swimlane-header__title').last().should('contain.text', 'Unassigned') + }) + + it('returns to flat view when No grouping is selected', function() { + setModeViaMenu('Labels') + cy.get('.swimlane', { timeout: 8000 }).should('exist') + + setModeViaMenu('No grouping') + + cy.get('.swimlane').should('not.exist') + cy.get('.stack').should('have.length', 3) + }) + + it('persists the grouping mode across reload', function() { + setModeViaMenu('Labels') + cy.get('.swimlane', { timeout: 8000 }).should('exist') + + cy.reload() + cy.get('.swimlane', { timeout: 10000 }).should('have.length.at.least', 4) + + // Radio reflects the persisted mode after reload + cy.get('button[aria-label="View Modes"]').first().click() + cy.get('input[name="swimlaneMode"][value="labels"]').should('be.checked') + }) +}) diff --git a/l10n/af.js b/l10n/af.js index 7e10edba1c..8041d01947 100644 --- a/l10n/af.js +++ b/l10n/af.js @@ -28,23 +28,25 @@ OC.L10N.register( "Edit" : "Wysig", "Download" : "Laai af", "Comments" : "Kommentare", + "Submit" : "Dien in", "Created:" : "Geskep:", "Reply" : "Antwoord", "Update" : "Werk by", "Description" : "Beskrywing", "Select Date" : "Kies Datum", - "seconds ago" : "sekondes gelede", "Shared with you" : "Met u gedeel", "An error occurred" : "'n Fout het voorgekom", "No notifications" : "Geen kennisgewings", "Advanced options" : "Gevorderde opsies", "Export" : "Voer uit", + "Close" : "Close", "Due date" : "Sperdatum", "Created" : "Geskep", "Modified" : "Gewysig", "Share" : "Deel", "No participants found" : "Geen deelnemers gevind", "Save" : "Stoor", + "seconds ago" : "sekondes gelede", "Today" : "Vandag", "Tomorrow" : "Môre" }, diff --git a/l10n/af.json b/l10n/af.json index 16f7ebb5a8..69d533d20c 100644 --- a/l10n/af.json +++ b/l10n/af.json @@ -26,23 +26,25 @@ "Edit" : "Wysig", "Download" : "Laai af", "Comments" : "Kommentare", + "Submit" : "Dien in", "Created:" : "Geskep:", "Reply" : "Antwoord", "Update" : "Werk by", "Description" : "Beskrywing", "Select Date" : "Kies Datum", - "seconds ago" : "sekondes gelede", "Shared with you" : "Met u gedeel", "An error occurred" : "'n Fout het voorgekom", "No notifications" : "Geen kennisgewings", "Advanced options" : "Gevorderde opsies", "Export" : "Voer uit", + "Close" : "Close", "Due date" : "Sperdatum", "Created" : "Geskep", "Modified" : "Gewysig", "Share" : "Deel", "No participants found" : "Geen deelnemers gevind", "Save" : "Stoor", + "seconds ago" : "sekondes gelede", "Today" : "Vandag", "Tomorrow" : "Môre" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/l10n/ar.js b/l10n/ar.js index 41db6d358a..b0e7fdb2d5 100644 --- a/l10n/ar.js +++ b/l10n/ar.js @@ -211,6 +211,11 @@ OC.L10N.register( "Deleted lists" : "القوائم المحذوفة", "Undo" : "تراجع", "Deleted cards" : "البطاقات المحذوفة", + "Hours" : "ساعات", + "Days" : "أيام", + "Weeks" : "أسابيع", + "Months" : "شهور", + "No cards yet" : "لا توجد بطاقات حتى الآن", "Failed to create share with {displayName}" : "فشل في إنشاء المشاركة مع {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "هل أنت متأكد أنك تريد نقل اللوحة {title} إلى {user} ؟", "Transfer the board." : "نقل اللوحة.", @@ -262,11 +267,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "لا يوجد تعليقات بعد, ابدأ النقاش الآن!", "The comment cannot be empty." : "التعليق لايمكن ان يكون فارغا.", "The comment cannot be longer than 1000 characters." : "التعليق لا يمكن ان يكون اطول من 1000 حرف.", + "Submit" : "إرسال ", "Created:" : "تاريخ الإنشاء :", "In reply to" : "يقوم بالرد على", "Cancel reply" : "إلغاء الرد", "Reply" : "رد", "Update" : "تحديث", + "Mark as done" : "تمييز كمُنجَز", + "Mark as not done" : "تمييز كـ \"غير منتهٍ\"", "Write a description …" : "كتابة وصف...", "Description" : "الوصف", "(Unsaved)" : "(غير محفوظ)", @@ -290,7 +298,6 @@ OC.L10N.register( "Add due date" : "إضافة تاريخ الاستحقاق", "Choose a date" : "إختَر تاريخاً", "Remove due date" : "ازالة تاريخ الانجاز", - "Mark as done" : "تمييز كمُنجَز", "Due at:" : "تاريخ الاستحقاق:", "Not done" : "غير مُنجَزة", "Unarchive card" : "إلغاء أرشفة البطاقة ", @@ -307,9 +314,7 @@ OC.L10N.register( "Edit title" : "تحرير عنوان", "Assign to me" : "ينسب لي", "Unassign myself" : "إلغاء تعييني ", - "Mark as not done" : "تمييز كـ \"غير منتهٍ\"", "Delete card" : "حذف البطاقة", - "seconds ago" : "ثوانٍ مضت", "All boards" : "جميع الالواح", "Archived boards" : "الالواح المؤرشفة", "Shared with you" : "تم مشاركتها معك", @@ -387,6 +392,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "البحث عن مستخدِمين، أو مجموعات، أو فرق", "No participants found" : "لم يتم العثور على مشاركين", "Save" : "حفظ", + "seconds ago" : "ثوانٍ مضت", "Today" : "اليوم", "Tomorrow" : "غدا", "No due" : "غير محدد" diff --git a/l10n/ar.json b/l10n/ar.json index 52119a1a68..1c784964de 100644 --- a/l10n/ar.json +++ b/l10n/ar.json @@ -209,6 +209,11 @@ "Deleted lists" : "القوائم المحذوفة", "Undo" : "تراجع", "Deleted cards" : "البطاقات المحذوفة", + "Hours" : "ساعات", + "Days" : "أيام", + "Weeks" : "أسابيع", + "Months" : "شهور", + "No cards yet" : "لا توجد بطاقات حتى الآن", "Failed to create share with {displayName}" : "فشل في إنشاء المشاركة مع {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "هل أنت متأكد أنك تريد نقل اللوحة {title} إلى {user} ؟", "Transfer the board." : "نقل اللوحة.", @@ -260,11 +265,14 @@ "No comments yet. Begin the discussion!" : "لا يوجد تعليقات بعد, ابدأ النقاش الآن!", "The comment cannot be empty." : "التعليق لايمكن ان يكون فارغا.", "The comment cannot be longer than 1000 characters." : "التعليق لا يمكن ان يكون اطول من 1000 حرف.", + "Submit" : "إرسال ", "Created:" : "تاريخ الإنشاء :", "In reply to" : "يقوم بالرد على", "Cancel reply" : "إلغاء الرد", "Reply" : "رد", "Update" : "تحديث", + "Mark as done" : "تمييز كمُنجَز", + "Mark as not done" : "تمييز كـ \"غير منتهٍ\"", "Write a description …" : "كتابة وصف...", "Description" : "الوصف", "(Unsaved)" : "(غير محفوظ)", @@ -288,7 +296,6 @@ "Add due date" : "إضافة تاريخ الاستحقاق", "Choose a date" : "إختَر تاريخاً", "Remove due date" : "ازالة تاريخ الانجاز", - "Mark as done" : "تمييز كمُنجَز", "Due at:" : "تاريخ الاستحقاق:", "Not done" : "غير مُنجَزة", "Unarchive card" : "إلغاء أرشفة البطاقة ", @@ -305,9 +312,7 @@ "Edit title" : "تحرير عنوان", "Assign to me" : "ينسب لي", "Unassign myself" : "إلغاء تعييني ", - "Mark as not done" : "تمييز كـ \"غير منتهٍ\"", "Delete card" : "حذف البطاقة", - "seconds ago" : "ثوانٍ مضت", "All boards" : "جميع الالواح", "Archived boards" : "الالواح المؤرشفة", "Shared with you" : "تم مشاركتها معك", @@ -385,6 +390,7 @@ "Searching for users, groups and teams …" : "البحث عن مستخدِمين، أو مجموعات، أو فرق", "No participants found" : "لم يتم العثور على مشاركين", "Save" : "حفظ", + "seconds ago" : "ثوانٍ مضت", "Today" : "اليوم", "Tomorrow" : "غدا", "No due" : "غير محدد" diff --git a/l10n/ast.js b/l10n/ast.js index bca924cadf..894a0746b5 100644 --- a/l10n/ast.js +++ b/l10n/ast.js @@ -44,6 +44,11 @@ OC.L10N.register( "Deleted lists" : "Llistes desaniciaes", "Undo" : "Desfacer", "Deleted cards" : "Tarxetes desaniciaes", + "Hours" : "Hores", + "Days" : "Díes", + "Weeks" : "Selmanes", + "Months" : "Meses", + "No cards yet" : "Nun hai nenguna tarxeta", "Transfer" : "Tresferir", "(Group)" : "(Grupu)", "(Team)" : "(Equipu)", @@ -71,10 +76,12 @@ OC.L10N.register( "Failed to load comments" : "Nun se puen cargar los comentarios", "No comments yet. Begin the discussion!" : "Nun hai nengún comentariu. ¡Comienza'l discutiniu!", "The comment cannot be empty." : "El comentariu nun pue tar baleru.", + "Submit" : "Unviar", "Created:" : "Creóse'l", "In reply to" : "En rempuesta a", "Reply" : "Responder", "Update" : "Anovar", + "Mark as done" : "Marcar como fecha", "Description" : "Descripción", "(Unsaved)" : "(ensin guardar)", "(Saving…)" : "(Guardando…)", @@ -84,12 +91,10 @@ OC.L10N.register( "Tomorrow – {timeLocale}" : "Mañana – {timeLocale}", "This weekend – {timeLocale}" : "Esta fin de selmana – {timeLocale}", "Next week – {timeLocale}" : "La próxima selmana – {timeLocale}", - "Mark as done" : "Marcar como fecha", "Archive card" : "Archivar la tarxeta", "(group)" : "(grupu)", "Edit title" : "Editar el títulu", "Delete card" : "Desaniciar la tarxeta", - "seconds ago" : "hai segundos", "Shared with you" : "Compartióse contigo", "Cancel edit" : "Anular la edición", "All cards" : "Toles tarxetes", @@ -108,6 +113,7 @@ OC.L10N.register( "Error creating the share" : "Hebo un error al crear la compartición", "Share" : "Compartir", "Save" : "Guardar", + "seconds ago" : "hai segundos", "Today" : "Güei", "Tomorrow" : "Mañana" }, diff --git a/l10n/ast.json b/l10n/ast.json index 5be619d2dd..4a49afad27 100644 --- a/l10n/ast.json +++ b/l10n/ast.json @@ -42,6 +42,11 @@ "Deleted lists" : "Llistes desaniciaes", "Undo" : "Desfacer", "Deleted cards" : "Tarxetes desaniciaes", + "Hours" : "Hores", + "Days" : "Díes", + "Weeks" : "Selmanes", + "Months" : "Meses", + "No cards yet" : "Nun hai nenguna tarxeta", "Transfer" : "Tresferir", "(Group)" : "(Grupu)", "(Team)" : "(Equipu)", @@ -69,10 +74,12 @@ "Failed to load comments" : "Nun se puen cargar los comentarios", "No comments yet. Begin the discussion!" : "Nun hai nengún comentariu. ¡Comienza'l discutiniu!", "The comment cannot be empty." : "El comentariu nun pue tar baleru.", + "Submit" : "Unviar", "Created:" : "Creóse'l", "In reply to" : "En rempuesta a", "Reply" : "Responder", "Update" : "Anovar", + "Mark as done" : "Marcar como fecha", "Description" : "Descripción", "(Unsaved)" : "(ensin guardar)", "(Saving…)" : "(Guardando…)", @@ -82,12 +89,10 @@ "Tomorrow – {timeLocale}" : "Mañana – {timeLocale}", "This weekend – {timeLocale}" : "Esta fin de selmana – {timeLocale}", "Next week – {timeLocale}" : "La próxima selmana – {timeLocale}", - "Mark as done" : "Marcar como fecha", "Archive card" : "Archivar la tarxeta", "(group)" : "(grupu)", "Edit title" : "Editar el títulu", "Delete card" : "Desaniciar la tarxeta", - "seconds ago" : "hai segundos", "Shared with you" : "Compartióse contigo", "Cancel edit" : "Anular la edición", "All cards" : "Toles tarxetes", @@ -106,6 +111,7 @@ "Error creating the share" : "Hebo un error al crear la compartición", "Share" : "Compartir", "Save" : "Guardar", + "seconds ago" : "hai segundos", "Today" : "Güei", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/l10n/az.js b/l10n/az.js index 45fea92bba..10efdafd1c 100644 --- a/l10n/az.js +++ b/l10n/az.js @@ -19,6 +19,7 @@ OC.L10N.register( "Sharing" : "Paylaşılır", "Tags" : "Işarələr", "Activity" : "Fəallıq", + "Hours" : "Saatlar", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Owner", @@ -31,13 +32,13 @@ OC.L10N.register( "Update" : "Yenilənmə", "Description" : "Açıqlanma", "(group)" : "(qrup)", - "seconds ago" : "saniyələr öncə", "Shared with you" : "Shared with you", "Export" : "Çıxarış", "Close" : "Bağla", "Modified" : "Dəyişdirildi", "Share" : "Paylaş", "Save" : "Saxla", + "seconds ago" : "saniyələr öncə", "Today" : "Bu gün", "Tomorrow" : "Sabah" }, diff --git a/l10n/az.json b/l10n/az.json index fd115e7b04..8e1c6e6faa 100644 --- a/l10n/az.json +++ b/l10n/az.json @@ -17,6 +17,7 @@ "Sharing" : "Paylaşılır", "Tags" : "Işarələr", "Activity" : "Fəallıq", + "Hours" : "Saatlar", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Owner", @@ -29,13 +30,13 @@ "Update" : "Yenilənmə", "Description" : "Açıqlanma", "(group)" : "(qrup)", - "seconds ago" : "saniyələr öncə", "Shared with you" : "Shared with you", "Export" : "Çıxarış", "Close" : "Bağla", "Modified" : "Dəyişdirildi", "Share" : "Paylaş", "Save" : "Saxla", + "seconds ago" : "saniyələr öncə", "Today" : "Bu gün", "Tomorrow" : "Sabah" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/l10n/be.js b/l10n/be.js index 07d1c87317..06e729033d 100644 --- a/l10n/be.js +++ b/l10n/be.js @@ -53,6 +53,7 @@ OC.L10N.register( "Show in Files" : "Паказаць у Файлах", "Download" : "Спампаваць", "Comments" : "Каментарыі", + "Submit" : "Адправіць", "Created:" : "Створана:", "Cancel reply" : "Скасаваць адказ", "Reply" : "Адказаць", @@ -71,7 +72,6 @@ OC.L10N.register( "Todo items" : "Элементы спісу задач", "Open link" : "Адкрыць спасылку", "Edit title" : "Рэдагаваць загаловак", - "seconds ago" : "с таму", "Shared with you" : "Абагулена з вамі", "Cancel edit" : "Скасаваць рэдагаванне", "An error occurred" : "Узнікла памылка", @@ -86,6 +86,7 @@ OC.L10N.register( "Modified" : "Зменены", "Share" : "Абагуліць", "Save" : "Захаваць", + "seconds ago" : "с таму", "Today" : "Сёння", "Tomorrow" : "Заўтра" }, diff --git a/l10n/be.json b/l10n/be.json index 6016d81657..cce8287c39 100644 --- a/l10n/be.json +++ b/l10n/be.json @@ -51,6 +51,7 @@ "Show in Files" : "Паказаць у Файлах", "Download" : "Спампаваць", "Comments" : "Каментарыі", + "Submit" : "Адправіць", "Created:" : "Створана:", "Cancel reply" : "Скасаваць адказ", "Reply" : "Адказаць", @@ -69,7 +70,6 @@ "Todo items" : "Элементы спісу задач", "Open link" : "Адкрыць спасылку", "Edit title" : "Рэдагаваць загаловак", - "seconds ago" : "с таму", "Shared with you" : "Абагулена з вамі", "Cancel edit" : "Скасаваць рэдагаванне", "An error occurred" : "Узнікла памылка", @@ -84,6 +84,7 @@ "Modified" : "Зменены", "Share" : "Абагуліць", "Save" : "Захаваць", + "seconds ago" : "с таму", "Today" : "Сёння", "Tomorrow" : "Заўтра" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" diff --git a/l10n/bg.js b/l10n/bg.js index 2c1b079b86..6ebf196b61 100644 --- a/l10n/bg.js +++ b/l10n/bg.js @@ -172,6 +172,10 @@ OC.L10N.register( "Deleted lists" : "Изтрити списъци", "Undo" : "Отмяна", "Deleted cards" : "Изтрити карти", + "Hours" : "Часа", + "Weeks" : "Седмици", + "Months" : "Месеци", + "No cards yet" : "Все още няма карти", "Failed to create share with {displayName}" : "Създаването на споделяне с {displayName} не бе успешно", "Are you sure you want to transfer the board {title} to {user}?" : "Сигурни ли сте че искате да прехвърлите таблото {title} на {user}?", "Transfer the board." : "Прехвърлете таблото.", @@ -220,11 +224,13 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Все още няма коментари. Започнете дискусията!", "The comment cannot be empty." : "Коментарът не може да бъде празен.", "The comment cannot be longer than 1000 characters." : "Коментарът не може да бъде по-дълъг от 1000 знака.", + "Submit" : "Изпращане", "Created:" : "Създадено:", "In reply to" : "В отговор на", "Cancel reply" : "Отказ на отговор", "Reply" : "Отговори", "Update" : "Обновяване", + "Mark as done" : "Маркирай като готово", "Write a description …" : "Напишете описание ...", "Description" : "Описание", "(Unsaved)" : " (Незаписан)", @@ -241,7 +247,6 @@ OC.L10N.register( "Next week – {timeLocale}" : "Следващата седмица - {timeLocale}", "Set a due date" : "Задаване на крайна дата", "Remove due date" : "Премахни крайната дата", - "Mark as done" : "Маркирай като готово", "Not done" : "Незавършен", "Unarchive card" : "Разархивиране на карта", "Archive card" : "Архивиране на карта", @@ -255,7 +260,6 @@ OC.L10N.register( "Assign to me" : "Зачисляване към мен", "Unassign myself" : "Отмяна на зачисляването към мен", "Delete card" : "Изтриване на карта", - "seconds ago" : "преди секунди", "All boards" : "Всички табла", "Archived boards" : "Архивирани табла", "Shared with you" : "Споделени с вас", @@ -321,6 +325,7 @@ OC.L10N.register( "The card \"%s\" on \"%s\" has reached its due date." : "Картата \"%s\" on \"%s\" е достигнала датата на падежа си.", "No participants found" : "Няма намерени участници", "Save" : "Запазване", + "seconds ago" : "преди секунди", "Today" : "Днес", "Tomorrow" : "Утре", "No due" : "Не се дължи" diff --git a/l10n/bg.json b/l10n/bg.json index abc0f79d24..e101c5826f 100644 --- a/l10n/bg.json +++ b/l10n/bg.json @@ -170,6 +170,10 @@ "Deleted lists" : "Изтрити списъци", "Undo" : "Отмяна", "Deleted cards" : "Изтрити карти", + "Hours" : "Часа", + "Weeks" : "Седмици", + "Months" : "Месеци", + "No cards yet" : "Все още няма карти", "Failed to create share with {displayName}" : "Създаването на споделяне с {displayName} не бе успешно", "Are you sure you want to transfer the board {title} to {user}?" : "Сигурни ли сте че искате да прехвърлите таблото {title} на {user}?", "Transfer the board." : "Прехвърлете таблото.", @@ -218,11 +222,13 @@ "No comments yet. Begin the discussion!" : "Все още няма коментари. Започнете дискусията!", "The comment cannot be empty." : "Коментарът не може да бъде празен.", "The comment cannot be longer than 1000 characters." : "Коментарът не може да бъде по-дълъг от 1000 знака.", + "Submit" : "Изпращане", "Created:" : "Създадено:", "In reply to" : "В отговор на", "Cancel reply" : "Отказ на отговор", "Reply" : "Отговори", "Update" : "Обновяване", + "Mark as done" : "Маркирай като готово", "Write a description …" : "Напишете описание ...", "Description" : "Описание", "(Unsaved)" : " (Незаписан)", @@ -239,7 +245,6 @@ "Next week – {timeLocale}" : "Следващата седмица - {timeLocale}", "Set a due date" : "Задаване на крайна дата", "Remove due date" : "Премахни крайната дата", - "Mark as done" : "Маркирай като готово", "Not done" : "Незавършен", "Unarchive card" : "Разархивиране на карта", "Archive card" : "Архивиране на карта", @@ -253,7 +258,6 @@ "Assign to me" : "Зачисляване към мен", "Unassign myself" : "Отмяна на зачисляването към мен", "Delete card" : "Изтриване на карта", - "seconds ago" : "преди секунди", "All boards" : "Всички табла", "Archived boards" : "Архивирани табла", "Shared with you" : "Споделени с вас", @@ -319,6 +323,7 @@ "The card \"%s\" on \"%s\" has reached its due date." : "Картата \"%s\" on \"%s\" е достигнала датата на падежа си.", "No participants found" : "Няма намерени участници", "Save" : "Запазване", + "seconds ago" : "преди секунди", "Today" : "Днес", "Tomorrow" : "Утре", "No due" : "Не се дължи" diff --git a/l10n/bn_BD.js b/l10n/bn_BD.js index 1e6ba3237d..6616f34186 100644 --- a/l10n/bn_BD.js +++ b/l10n/bn_BD.js @@ -13,6 +13,7 @@ OC.L10N.register( "Sharing" : "ভাগাভাগিরত", "Tags" : "ট্যাগ", "Activity" : "সক্রিয়তা", + "Hours" : "ঘন্টা", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Owner", @@ -24,13 +25,13 @@ OC.L10N.register( "Update" : "পরিবর্ধন", "Description" : "বিবরণ", "(group)" : "(গোষ্ঠি)", - "seconds ago" : "সেকেন্ড পূর্বে", "Shared with you" : "Shared with you", "Export" : "রপ্তানি", "Close" : "বন্ধ", "Modified" : "পরিবর্তিত", "Share" : "ভাগাভাগি কর", "Save" : "সংরক্ষণ", + "seconds ago" : "সেকেন্ড পূর্বে", "Today" : "আজ", "Tomorrow" : "আগামীকাল" }, diff --git a/l10n/bn_BD.json b/l10n/bn_BD.json index f0b5077850..0ca6ba928a 100644 --- a/l10n/bn_BD.json +++ b/l10n/bn_BD.json @@ -11,6 +11,7 @@ "Sharing" : "ভাগাভাগিরত", "Tags" : "ট্যাগ", "Activity" : "সক্রিয়তা", + "Hours" : "ঘন্টা", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Owner", @@ -22,13 +23,13 @@ "Update" : "পরিবর্ধন", "Description" : "বিবরণ", "(group)" : "(গোষ্ঠি)", - "seconds ago" : "সেকেন্ড পূর্বে", "Shared with you" : "Shared with you", "Export" : "রপ্তানি", "Close" : "বন্ধ", "Modified" : "পরিবর্তিত", "Share" : "ভাগাভাগি কর", "Save" : "সংরক্ষণ", + "seconds ago" : "সেকেন্ড পূর্বে", "Today" : "আজ", "Tomorrow" : "আগামীকাল" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/l10n/br.js b/l10n/br.js index 8a70c99928..43e9842edc 100644 --- a/l10n/br.js +++ b/l10n/br.js @@ -19,6 +19,9 @@ OC.L10N.register( "Sharing" : "Rannan", "Tags" : "Klavioù", "Activity" : "Obererezh", + "Days" : "Deiz", + "Weeks" : "Sizun", + "Months" : "Miz", "Transfer" : "Treuzkas", "Can edit" : "Posuple eo embann", "Can share" : "Galout a ra rannañ", @@ -31,12 +34,12 @@ OC.L10N.register( "Share from Files" : "Rannañ diouzh Restroù", "Download" : "Pellgargañ", "Comments" : "Displegadennoù", + "Submit" : "Kinnig", "Created:" : "Krouet :", "Reply" : "Respont", "Update" : "Adnevesaat", "Description" : "Diskrivadur", "(group)" : "(strollad)", - "seconds ago" : "eilenn zo", "Shared with you" : "Rannet ganeoc'h", "No notifications" : "Kemennadenn ebet", "Close" : "Serriñ", @@ -44,6 +47,7 @@ OC.L10N.register( "Modified" : "Cheñchet", "Share" : "Rannan", "Save" : "Enrollañ", + "seconds ago" : "eilenn zo", "Today" : "Hiziv", "Tomorrow" : "Warc'hoaz" }, diff --git a/l10n/br.json b/l10n/br.json index 5d21e2014f..690496ce25 100644 --- a/l10n/br.json +++ b/l10n/br.json @@ -17,6 +17,9 @@ "Sharing" : "Rannan", "Tags" : "Klavioù", "Activity" : "Obererezh", + "Days" : "Deiz", + "Weeks" : "Sizun", + "Months" : "Miz", "Transfer" : "Treuzkas", "Can edit" : "Posuple eo embann", "Can share" : "Galout a ra rannañ", @@ -29,12 +32,12 @@ "Share from Files" : "Rannañ diouzh Restroù", "Download" : "Pellgargañ", "Comments" : "Displegadennoù", + "Submit" : "Kinnig", "Created:" : "Krouet :", "Reply" : "Respont", "Update" : "Adnevesaat", "Description" : "Diskrivadur", "(group)" : "(strollad)", - "seconds ago" : "eilenn zo", "Shared with you" : "Rannet ganeoc'h", "No notifications" : "Kemennadenn ebet", "Close" : "Serriñ", @@ -42,6 +45,7 @@ "Modified" : "Cheñchet", "Share" : "Rannan", "Save" : "Enrollañ", + "seconds ago" : "eilenn zo", "Today" : "Hiziv", "Tomorrow" : "Warc'hoaz" },"pluralForm" :"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);" diff --git a/l10n/bs.js b/l10n/bs.js index d136a42df3..3b35b6bb3e 100644 --- a/l10n/bs.js +++ b/l10n/bs.js @@ -10,6 +10,7 @@ OC.L10N.register( "Search" : "Search", "Sharing" : "Dijeljenje", "Activity" : "Aktivnost", + "Hours" : "Sati", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Vlasnik", diff --git a/l10n/bs.json b/l10n/bs.json index 3a45aefe68..a1d1bf92fa 100644 --- a/l10n/bs.json +++ b/l10n/bs.json @@ -8,6 +8,7 @@ "Search" : "Search", "Sharing" : "Dijeljenje", "Activity" : "Aktivnost", + "Hours" : "Sati", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Vlasnik", diff --git a/l10n/ca.js b/l10n/ca.js index bc3d9836ae..ab5c2b4f52 100644 --- a/l10n/ca.js +++ b/l10n/ca.js @@ -210,6 +210,11 @@ OC.L10N.register( "Deleted lists" : "Llistes suprimides", "Undo" : "Desfés", "Deleted cards" : "Targetes suprimides", + "Hours" : "Hores", + "Days" : "Dies", + "Weeks" : "Setmanes", + "Months" : "Mesos", + "No cards yet" : "Encara no hi ha cap targeta.", "Failed to create share with {displayName}" : "Ha fallat la creació de la compartició amb {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Esteu segur que voleu transferir el tauler {title} a {user}?", "Transfer the board." : "Transfereix el tauler.", @@ -261,11 +266,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "No hi ha comentaris encara. Començar la discussió!", "The comment cannot be empty." : "El comentari no pot estar buit.", "The comment cannot be longer than 1000 characters." : "El comentari no pot ser més llarg que 1000 caràcters.", + "Submit" : "Envia", "Created:" : "Data de creació:", "In reply to" : "En resposta a", "Cancel reply" : "Cancel·la la resposta", "Reply" : "Respon", "Update" : "Actualitza", + "Mark as done" : "Marcat com a fet", + "Mark as not done" : "Marca com no fet", "Write a description …" : "Escriviu una descripció …", "Description" : "Descripció", "(Unsaved)" : "(No desat)", @@ -289,7 +297,6 @@ OC.L10N.register( "Add due date" : "Afegeix una data de caducitat", "Choose a date" : "Trieu una data", "Remove due date" : "Suprimeix la data de caducitat", - "Mark as done" : "Marcat com a fet", "Due at:" : "Venciment a:", "Not done" : "No s'ha fet", "Unarchive card" : "Desarxiva targeta", @@ -306,9 +313,7 @@ OC.L10N.register( "Edit title" : "Edició del títol", "Assign to me" : "Assigna'm a mi", "Unassign myself" : "Desasignar a mi mateix", - "Mark as not done" : "Marca com no fet", "Delete card" : "Suprimeix targeta", - "seconds ago" : "fa uns segons", "All boards" : "Tots els taulers", "Archived boards" : "Taulers arxivats", "Shared with you" : "Us han compartit", @@ -386,6 +391,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Cercant usuaris, grups i equips …", "No participants found" : "No s'han trobat participants", "Save" : "Desa", + "seconds ago" : "fa uns segons", "Today" : "Avui", "Tomorrow" : "Demà", "No due" : "Sense venciment" diff --git a/l10n/ca.json b/l10n/ca.json index d2f65a5479..a6a0cc1271 100644 --- a/l10n/ca.json +++ b/l10n/ca.json @@ -208,6 +208,11 @@ "Deleted lists" : "Llistes suprimides", "Undo" : "Desfés", "Deleted cards" : "Targetes suprimides", + "Hours" : "Hores", + "Days" : "Dies", + "Weeks" : "Setmanes", + "Months" : "Mesos", + "No cards yet" : "Encara no hi ha cap targeta.", "Failed to create share with {displayName}" : "Ha fallat la creació de la compartició amb {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Esteu segur que voleu transferir el tauler {title} a {user}?", "Transfer the board." : "Transfereix el tauler.", @@ -259,11 +264,14 @@ "No comments yet. Begin the discussion!" : "No hi ha comentaris encara. Començar la discussió!", "The comment cannot be empty." : "El comentari no pot estar buit.", "The comment cannot be longer than 1000 characters." : "El comentari no pot ser més llarg que 1000 caràcters.", + "Submit" : "Envia", "Created:" : "Data de creació:", "In reply to" : "En resposta a", "Cancel reply" : "Cancel·la la resposta", "Reply" : "Respon", "Update" : "Actualitza", + "Mark as done" : "Marcat com a fet", + "Mark as not done" : "Marca com no fet", "Write a description …" : "Escriviu una descripció …", "Description" : "Descripció", "(Unsaved)" : "(No desat)", @@ -287,7 +295,6 @@ "Add due date" : "Afegeix una data de caducitat", "Choose a date" : "Trieu una data", "Remove due date" : "Suprimeix la data de caducitat", - "Mark as done" : "Marcat com a fet", "Due at:" : "Venciment a:", "Not done" : "No s'ha fet", "Unarchive card" : "Desarxiva targeta", @@ -304,9 +311,7 @@ "Edit title" : "Edició del títol", "Assign to me" : "Assigna'm a mi", "Unassign myself" : "Desasignar a mi mateix", - "Mark as not done" : "Marca com no fet", "Delete card" : "Suprimeix targeta", - "seconds ago" : "fa uns segons", "All boards" : "Tots els taulers", "Archived boards" : "Taulers arxivats", "Shared with you" : "Us han compartit", @@ -384,6 +389,7 @@ "Searching for users, groups and teams …" : "Cercant usuaris, grups i equips …", "No participants found" : "No s'han trobat participants", "Save" : "Desa", + "seconds ago" : "fa uns segons", "Today" : "Avui", "Tomorrow" : "Demà", "No due" : "Sense venciment" diff --git a/l10n/cs.js b/l10n/cs.js index 622f12f091..020a1581b9 100644 --- a/l10n/cs.js +++ b/l10n/cs.js @@ -218,6 +218,11 @@ OC.L10N.register( "Deleted lists" : "Smazané seznamy", "Undo" : "Vrátit zpět", "Deleted cards" : "Smazané karty", + "Hours" : "Hodiny", + "Days" : "Dny", + "Weeks" : "Týdnů", + "Months" : "Měsíců", + "No cards yet" : "Zatím žádné karty", "Failed to create share with {displayName}" : "Nepodařilo se vytvořit sdílení s {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Opravdu chcete předat vlastnictví tabule {title} uživateli {user}?", "Transfer the board." : "Předat vlastnictví tabule.", @@ -272,11 +277,15 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Zatím bez komentářů. Zahajte diskuzi!", "The comment cannot be empty." : "Komentář je třeba vyplnit.", "The comment cannot be longer than 1000 characters." : "Délka komentáře může být nejvýše 1 000 znaků.", + "Submit" : "Odeslat", "Created:" : "Vytvořeno:", "In reply to" : "V odpověď na", "Cancel reply" : "Zrušit odpověď", "Reply" : "Odpovědět", "Update" : "Aktualizovat", + "Mark as done" : "Označit jako hotové", + "Mark as not done" : "Označit jako nehotové", + "Remove dependency" : "Odebrat závislost", "Write a description …" : "Zadejte popis …", "Could not save description" : "Nebylo možné uložit popis", "Description" : "Popis", @@ -301,7 +310,6 @@ OC.L10N.register( "Add due date" : "Přidat termín", "Choose a date" : "Zvolit datum", "Remove due date" : "Odstranit termín", - "Mark as done" : "Označit jako hotové", "Due at:" : "Termín v:", "Not done" : "Nehotové", "Unarchive card" : "Zrušit archivaci karty", @@ -318,9 +326,7 @@ OC.L10N.register( "Edit title" : "Upravit nadpis", "Assign to me" : "Přiřadit mě", "Unassign myself" : "Zrušit přiřazení sobě", - "Mark as not done" : "Označit jako nehotové", "Delete card" : "Smazat kartu", - "seconds ago" : "před několika sekundami", "All boards" : "Všechny tabule", "Archived boards" : "Archivované tabule", "Shared with you" : "Sdíleno s vámi", @@ -413,6 +419,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Hledání v uživatelích, skupinách a týmech …", "No participants found" : "Nenalezeni žádní účastníci", "Save" : "Uložit", + "seconds ago" : "před několika sekundami", "Today" : "Dnes", "Tomorrow" : "Zítra", "No due" : "Žádný termín" diff --git a/l10n/cs.json b/l10n/cs.json index 3b7f09759e..3f9a528a99 100644 --- a/l10n/cs.json +++ b/l10n/cs.json @@ -216,6 +216,11 @@ "Deleted lists" : "Smazané seznamy", "Undo" : "Vrátit zpět", "Deleted cards" : "Smazané karty", + "Hours" : "Hodiny", + "Days" : "Dny", + "Weeks" : "Týdnů", + "Months" : "Měsíců", + "No cards yet" : "Zatím žádné karty", "Failed to create share with {displayName}" : "Nepodařilo se vytvořit sdílení s {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Opravdu chcete předat vlastnictví tabule {title} uživateli {user}?", "Transfer the board." : "Předat vlastnictví tabule.", @@ -270,11 +275,15 @@ "No comments yet. Begin the discussion!" : "Zatím bez komentářů. Zahajte diskuzi!", "The comment cannot be empty." : "Komentář je třeba vyplnit.", "The comment cannot be longer than 1000 characters." : "Délka komentáře může být nejvýše 1 000 znaků.", + "Submit" : "Odeslat", "Created:" : "Vytvořeno:", "In reply to" : "V odpověď na", "Cancel reply" : "Zrušit odpověď", "Reply" : "Odpovědět", "Update" : "Aktualizovat", + "Mark as done" : "Označit jako hotové", + "Mark as not done" : "Označit jako nehotové", + "Remove dependency" : "Odebrat závislost", "Write a description …" : "Zadejte popis …", "Could not save description" : "Nebylo možné uložit popis", "Description" : "Popis", @@ -299,7 +308,6 @@ "Add due date" : "Přidat termín", "Choose a date" : "Zvolit datum", "Remove due date" : "Odstranit termín", - "Mark as done" : "Označit jako hotové", "Due at:" : "Termín v:", "Not done" : "Nehotové", "Unarchive card" : "Zrušit archivaci karty", @@ -316,9 +324,7 @@ "Edit title" : "Upravit nadpis", "Assign to me" : "Přiřadit mě", "Unassign myself" : "Zrušit přiřazení sobě", - "Mark as not done" : "Označit jako nehotové", "Delete card" : "Smazat kartu", - "seconds ago" : "před několika sekundami", "All boards" : "Všechny tabule", "Archived boards" : "Archivované tabule", "Shared with you" : "Sdíleno s vámi", @@ -411,6 +417,7 @@ "Searching for users, groups and teams …" : "Hledání v uživatelích, skupinách a týmech …", "No participants found" : "Nenalezeni žádní účastníci", "Save" : "Uložit", + "seconds ago" : "před několika sekundami", "Today" : "Dnes", "Tomorrow" : "Zítra", "No due" : "Žádný termín" diff --git a/l10n/cy_GB.js b/l10n/cy_GB.js index c2a819bf8b..210e13a97c 100644 --- a/l10n/cy_GB.js +++ b/l10n/cy_GB.js @@ -24,7 +24,6 @@ OC.L10N.register( "Update" : "Diweddaru", "Description" : "Disgrifiad", "Select Date" : "Dewis Dyddiad", - "seconds ago" : "eiliad yn ôl", "Shared with you" : "Shared with you", "No reminder" : "Dim nodyn atgoffa", "An error occurred" : "Digwyddodd gwall", @@ -33,6 +32,7 @@ OC.L10N.register( "Modified" : "Addaswyd", "Share" : "Rhannu", "Save" : "Cadw", + "seconds ago" : "eiliad yn ôl", "Today" : "Heddiw" }, "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"); diff --git a/l10n/cy_GB.json b/l10n/cy_GB.json index 566f7e45a4..978b29378b 100644 --- a/l10n/cy_GB.json +++ b/l10n/cy_GB.json @@ -22,7 +22,6 @@ "Update" : "Diweddaru", "Description" : "Disgrifiad", "Select Date" : "Dewis Dyddiad", - "seconds ago" : "eiliad yn ôl", "Shared with you" : "Shared with you", "No reminder" : "Dim nodyn atgoffa", "An error occurred" : "Digwyddodd gwall", @@ -31,6 +30,7 @@ "Modified" : "Addaswyd", "Share" : "Rhannu", "Save" : "Cadw", + "seconds ago" : "eiliad yn ôl", "Today" : "Heddiw" },"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;" } \ No newline at end of file diff --git a/l10n/da.js b/l10n/da.js index b9f2b5b3ea..3eb275ddf6 100644 --- a/l10n/da.js +++ b/l10n/da.js @@ -146,6 +146,11 @@ OC.L10N.register( "Deleted lists" : "Slettede lister", "Undo" : "Fortryd", "Deleted cards" : "Sletttede kort", + "Hours" : "Timer", + "Days" : "Dage", + "Weeks" : "Uger", + "Months" : "Måneder", + "No cards yet" : "Endnu ingen kort", "Failed to create share with {displayName}" : "Kunne ikke oprette deling med {displayName}", "Transfer" : "Overførsel", "Board owner" : "Ejer af tavlen", @@ -184,11 +189,13 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Ingen kommentarer endnu. Begynd diskussionen!", "The comment cannot be empty." : "Kommentaren må ikke være tom.", "The comment cannot be longer than 1000 characters." : "Kommentaren må ikke være længere end 1000 tegn.", + "Submit" : "Send", "Created:" : "Oprettet:", "In reply to" : "Som svar til", "Cancel reply" : "Annuller svar", "Reply" : "Besvar", "Update" : "Opdatér", + "Mark as done" : "Marker som færdig", "Write a description …" : "Skriv en beskrivelse...", "Description" : "Beskrivelse", "(Unsaved)" : "(Ikke gemt)", @@ -205,7 +212,6 @@ OC.L10N.register( "Next week – {timeLocale}" : "Næste uge – {timeLocale}", "Set a due date" : "Angiv en forfaldsdato", "Remove due date" : "Fjern forfaldsdato", - "Mark as done" : "Marker som færdig", "Not done" : "Ikke færdig", "Unarchive card" : "Genaktiver kort", "Archive card" : "Arkiver kort", @@ -219,7 +225,6 @@ OC.L10N.register( "Assign to me" : "Tildel til mig", "Unassign myself" : "Fjern mig selv", "Delete card" : "Slet kort", - "seconds ago" : "få sekunder siden", "All boards" : "Alle tavler", "Archived boards" : "Arkiverede lister", "Shared with you" : "Delt med dig", @@ -278,6 +283,7 @@ OC.L10N.register( "The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.", "No participants found" : "Ingen deltagere fundet", "Save" : "Gem", + "seconds ago" : "få sekunder siden", "Today" : "I dag", "Tomorrow" : "I morgen", "No due" : "Ikke forfalden" diff --git a/l10n/da.json b/l10n/da.json index 4e66f6c09c..3439b33470 100644 --- a/l10n/da.json +++ b/l10n/da.json @@ -144,6 +144,11 @@ "Deleted lists" : "Slettede lister", "Undo" : "Fortryd", "Deleted cards" : "Sletttede kort", + "Hours" : "Timer", + "Days" : "Dage", + "Weeks" : "Uger", + "Months" : "Måneder", + "No cards yet" : "Endnu ingen kort", "Failed to create share with {displayName}" : "Kunne ikke oprette deling med {displayName}", "Transfer" : "Overførsel", "Board owner" : "Ejer af tavlen", @@ -182,11 +187,13 @@ "No comments yet. Begin the discussion!" : "Ingen kommentarer endnu. Begynd diskussionen!", "The comment cannot be empty." : "Kommentaren må ikke være tom.", "The comment cannot be longer than 1000 characters." : "Kommentaren må ikke være længere end 1000 tegn.", + "Submit" : "Send", "Created:" : "Oprettet:", "In reply to" : "Som svar til", "Cancel reply" : "Annuller svar", "Reply" : "Besvar", "Update" : "Opdatér", + "Mark as done" : "Marker som færdig", "Write a description …" : "Skriv en beskrivelse...", "Description" : "Beskrivelse", "(Unsaved)" : "(Ikke gemt)", @@ -203,7 +210,6 @@ "Next week – {timeLocale}" : "Næste uge – {timeLocale}", "Set a due date" : "Angiv en forfaldsdato", "Remove due date" : "Fjern forfaldsdato", - "Mark as done" : "Marker som færdig", "Not done" : "Ikke færdig", "Unarchive card" : "Genaktiver kort", "Archive card" : "Arkiver kort", @@ -217,7 +223,6 @@ "Assign to me" : "Tildel til mig", "Unassign myself" : "Fjern mig selv", "Delete card" : "Slet kort", - "seconds ago" : "få sekunder siden", "All boards" : "Alle tavler", "Archived boards" : "Arkiverede lister", "Shared with you" : "Delt med dig", @@ -276,6 +281,7 @@ "The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.", "No participants found" : "Ingen deltagere fundet", "Save" : "Gem", + "seconds ago" : "få sekunder siden", "Today" : "I dag", "Tomorrow" : "I morgen", "No due" : "Ikke forfalden" diff --git a/l10n/de.js b/l10n/de.js index 43a46f8f45..c0aaeb4d28 100644 --- a/l10n/de.js +++ b/l10n/de.js @@ -129,6 +129,7 @@ OC.L10N.register( "Card not found" : "Karte nicht gefunden", "Path is already shared with this card" : "Pfad wurde bereits mit dieser Karte geteilt", "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Alle Boards, die dir gehören, einschließlich Stapeln, Karten, Etiketten, Zuordnungen und Kommentaren", "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 ist.\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 den Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere dein Projekt", "Add board" : "Board hinzufügen", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Filter zurücksetzen", "View Modes" : "Ansichtsmodi", "Toggle View Modes" : "Ansichtsmodi wechseln", + "Kanban view" : "Kanban Ansicht", + "Gantt view" : "Gantt Ansicht", "Hide archived cards" : "Archivierte Karten ausblenden", "Show archived cards" : "Archivierte Karten anzeigen", "Toggle compact mode" : "Kompaktmodus umschalten", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "Gelöschte Listen", "Undo" : "Rückgängig", "Deleted cards" : "Gelöschte Karten", + "Hours" : "Stunden", + "Days" : "Tage", + "Weeks" : "Wochen", + "Months" : "Monate", + "No cards yet" : "Bislang keine Karten", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Ein Start- und Zieldatum auf deinen Karten setzen, um dieses in der Gantt-Ansicht zu anzuzeigen", + "Cards without dates ({count})" : "Karten ohne Datum ({count})", "Failed to create share with {displayName}" : "Freigabe mit dem Namen {displayName} konnte nicht erstellt werden", "Are you sure you want to transfer the board {title} to {user}?" : "Möchtest du wirklich das Board {title} an {user} übertragen?", "Transfer the board." : "Board übertragen", @@ -275,11 +285,19 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginne die Diskussion!", "The comment cannot be empty." : "Der Kommentar darf nicht leer sein.", "The comment cannot be longer than 1000 characters." : "Der Kommentar darf nicht länger als 1000 Zeichen sein.", + "Submit" : "Übermitteln", "Created:" : "Erstellt:", "In reply to" : "Als Antwort auf", "Cancel reply" : "Antwort abbrechen", "Reply" : "Antworten", "Update" : "Aktualisieren", + "Assign dependent cards" : "Abhängige Karten zuweisen", + "Mark as done" : "Als erledigt markieren", + "Mark as not done" : "Als nicht erledigt markieren", + "Remove dependency" : "Abhängigkeit entfernen", + "Add dependent card" : "Abhängige Karte hinzufügen", + "Assign a dependent card…" : "Eine abhängige Karte zuweisen …", + "Select a dependent card…" : "Eine abhängige Karte auswählen …", "Write a description …" : "Beschreibung schreiben …", "The description has been changed by another user." : "Die Beschreibung wurde von einem anderen Benutzer geändert.", "Could not save description" : "Beschreibung konnte nicht gespeichert werden", @@ -305,7 +323,6 @@ OC.L10N.register( "Add due date" : "Fälligkeitsdatum hinzufügen", "Choose a date" : "Datum auswählen", "Remove due date" : "Fälligkeitsdatum entfernen", - "Mark as done" : "Als erledigt markieren", "Due at:" : "Fällig am:", "Not done" : "Nicht erledigt", "Unarchive card" : "Karte dearchivieren", @@ -323,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Kartentitel bearbeiten", "Open link" : "Link öffnen", "Card deleted" : "Karte gelöscht", + "Change card color" : "Kartenfarbe ändern", "Edit title" : "Titel bearbeiten", "Assign to me" : "Mir zuweisen", "Unassign myself" : "Nicht mehr mir zuweisen", - "Mark as not done" : "Als nicht erledigt markieren", "Delete card" : "Karte löschen", - "seconds ago" : "Gerade eben", "All boards" : "Alle Boards", "Archived boards" : "Archivierte Boards", "Shared with you" : "Mit dir geteilt", @@ -421,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Suche nach Benutzern, Gruppen und Teams …", "No participants found" : "Keine Teilnehmer gefunden", "Save" : "Speichern", + "seconds ago" : "Gerade eben", "Today" : "Heute", "Tomorrow" : "Morgen", "No due" : "Kein Fälligkeitsdatum" diff --git a/l10n/de.json b/l10n/de.json index 3943a0dda2..14b046a1a9 100644 --- a/l10n/de.json +++ b/l10n/de.json @@ -127,6 +127,7 @@ "Card not found" : "Karte nicht gefunden", "Path is already shared with this card" : "Pfad wurde bereits mit dieser Karte geteilt", "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Alle Boards, die dir gehören, einschließlich Stapeln, Karten, Etiketten, Zuordnungen und Kommentaren", "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 ist.\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 den Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere dein Projekt", "Add board" : "Board hinzufügen", @@ -173,6 +174,8 @@ "Clear filter" : "Filter zurücksetzen", "View Modes" : "Ansichtsmodi", "Toggle View Modes" : "Ansichtsmodi wechseln", + "Kanban view" : "Kanban Ansicht", + "Gantt view" : "Gantt Ansicht", "Hide archived cards" : "Archivierte Karten ausblenden", "Show archived cards" : "Archivierte Karten anzeigen", "Toggle compact mode" : "Kompaktmodus umschalten", @@ -216,6 +219,13 @@ "Deleted lists" : "Gelöschte Listen", "Undo" : "Rückgängig", "Deleted cards" : "Gelöschte Karten", + "Hours" : "Stunden", + "Days" : "Tage", + "Weeks" : "Wochen", + "Months" : "Monate", + "No cards yet" : "Bislang keine Karten", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Ein Start- und Zieldatum auf deinen Karten setzen, um dieses in der Gantt-Ansicht zu anzuzeigen", + "Cards without dates ({count})" : "Karten ohne Datum ({count})", "Failed to create share with {displayName}" : "Freigabe mit dem Namen {displayName} konnte nicht erstellt werden", "Are you sure you want to transfer the board {title} to {user}?" : "Möchtest du wirklich das Board {title} an {user} übertragen?", "Transfer the board." : "Board übertragen", @@ -273,11 +283,19 @@ "No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginne die Diskussion!", "The comment cannot be empty." : "Der Kommentar darf nicht leer sein.", "The comment cannot be longer than 1000 characters." : "Der Kommentar darf nicht länger als 1000 Zeichen sein.", + "Submit" : "Übermitteln", "Created:" : "Erstellt:", "In reply to" : "Als Antwort auf", "Cancel reply" : "Antwort abbrechen", "Reply" : "Antworten", "Update" : "Aktualisieren", + "Assign dependent cards" : "Abhängige Karten zuweisen", + "Mark as done" : "Als erledigt markieren", + "Mark as not done" : "Als nicht erledigt markieren", + "Remove dependency" : "Abhängigkeit entfernen", + "Add dependent card" : "Abhängige Karte hinzufügen", + "Assign a dependent card…" : "Eine abhängige Karte zuweisen …", + "Select a dependent card…" : "Eine abhängige Karte auswählen …", "Write a description …" : "Beschreibung schreiben …", "The description has been changed by another user." : "Die Beschreibung wurde von einem anderen Benutzer geändert.", "Could not save description" : "Beschreibung konnte nicht gespeichert werden", @@ -303,7 +321,6 @@ "Add due date" : "Fälligkeitsdatum hinzufügen", "Choose a date" : "Datum auswählen", "Remove due date" : "Fälligkeitsdatum entfernen", - "Mark as done" : "Als erledigt markieren", "Due at:" : "Fällig am:", "Not done" : "Nicht erledigt", "Unarchive card" : "Karte dearchivieren", @@ -321,12 +338,11 @@ "Edit card title" : "Kartentitel bearbeiten", "Open link" : "Link öffnen", "Card deleted" : "Karte gelöscht", + "Change card color" : "Kartenfarbe ändern", "Edit title" : "Titel bearbeiten", "Assign to me" : "Mir zuweisen", "Unassign myself" : "Nicht mehr mir zuweisen", - "Mark as not done" : "Als nicht erledigt markieren", "Delete card" : "Karte löschen", - "seconds ago" : "Gerade eben", "All boards" : "Alle Boards", "Archived boards" : "Archivierte Boards", "Shared with you" : "Mit dir geteilt", @@ -419,6 +435,7 @@ "Searching for users, groups and teams …" : "Suche nach Benutzern, Gruppen und Teams …", "No participants found" : "Keine Teilnehmer gefunden", "Save" : "Speichern", + "seconds ago" : "Gerade eben", "Today" : "Heute", "Tomorrow" : "Morgen", "No due" : "Kein Fälligkeitsdatum" diff --git a/l10n/de_DE.js b/l10n/de_DE.js index 55eef896a2..162c7a3d77 100644 --- a/l10n/de_DE.js +++ b/l10n/de_DE.js @@ -129,6 +129,7 @@ OC.L10N.register( "Card not found" : "Karte nicht gefunden", "Path is already shared with this card" : "Pfad wurde bereits mit dieser Karte geteilt", "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Alle Boards, die Ihnen gehören, einschließlich Stapeln, Karten, Etiketten, Zuordnungen und Kommentaren", "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ügen Sie Ihre Aufgaben zu den Karten hinzu und ordnen Sie diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teilen Sie mit Ihrem Team, Ihren Freunden oder Ihrer Familie\n- 📎 Fügen Sie Dateien hinzu und verwende diese in Ihren Markdown-Beschreibungen\n- 💬 Diskutieren Sie mit Ihrem Team mit Kommentaren\n- ⚡ Behalten Sie Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisieren Sie Ihr Projekt", "Add board" : "Board hinzufügen", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Filter zurücksetzen", "View Modes" : "Ansichtsmodi", "Toggle View Modes" : "Ansichtsmodi wechseln", + "Kanban view" : "Kanban Ansicht", + "Gantt view" : "Gantt Ansicht", "Hide archived cards" : "Archivierte Karten ausblenden", "Show archived cards" : "Archivierte Karten anzeigen", "Toggle compact mode" : "Kompaktmodus umschalten", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "Gelöschte Listen", "Undo" : "Rückgängig", "Deleted cards" : "Gelöschte Karten", + "Hours" : "Stunden", + "Days" : "Tage", + "Weeks" : "Wochen", + "Months" : "Monate", + "No cards yet" : "Bislang keine Karten", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Ein Start- und Zieldatum auf Ihren Karten setzen, um dieses in der Gantt-Ansicht zu anzuzeigen", + "Cards without dates ({count})" : "Karten ohne Datum ({count})", "Failed to create share with {displayName}" : "Freigabe mit dem Namen {displayName} konnte nicht erstellt werden", "Are you sure you want to transfer the board {title} to {user}?" : "Möchten Sie das Board {title} auf {user} übertragen?", "Transfer the board." : "Board übertragen.", @@ -275,11 +285,19 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginnen Sie die Diskussion!", "The comment cannot be empty." : "Der Kommentar darf nicht leer sein.", "The comment cannot be longer than 1000 characters." : "Der Kommentar darf nicht länger als 1000 Zeichen sein.", + "Submit" : "Übermitteln", "Created:" : "Erstellt:", "In reply to" : "Als Antwort auf", "Cancel reply" : "Antwort abbrechen", "Reply" : "Antworten", "Update" : "Aktualisieren", + "Assign dependent cards" : "Abhängige Karten zuweisen", + "Mark as done" : "Als erledigt markieren", + "Mark as not done" : "Als unerledigt markieren", + "Remove dependency" : "Abhängigkeit entfernen", + "Add dependent card" : "Abhängige Karte hinzufügen", + "Assign a dependent card…" : "Eine abhängige Karte zuweisen …", + "Select a dependent card…" : "Eine abhängige Karte auswählen …", "Write a description …" : "Beschreibung schreiben …", "The description has been changed by another user." : "Die Beschreibung wurde von einem anderen Benutzer geändert.", "Could not save description" : "Beschreibung konnte nicht gespeichert werden", @@ -305,8 +323,7 @@ OC.L10N.register( "Add due date" : "Fälligkeitsdatum hinzufügen", "Choose a date" : "Datum auswählen", "Remove due date" : "Fälligkeitsdatum entfernen", - "Mark as done" : "Als erledigt markieren", - "Due at:" : "Fallig am:", + "Due at:" : "Fällig am:", "Not done" : "Nicht erledigt", "Unarchive card" : "Karte dearchivieren", "Archive card" : "Karte archivieren", @@ -323,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Kartentitel bearbeiten", "Open link" : "Link öffnen", "Card deleted" : "Karte gelöscht", + "Change card color" : "Kartenfarbe ändern", "Edit title" : "Titel bearbeiten", "Assign to me" : "Mir zuweisen", "Unassign myself" : "Nicht mehr mir zuweisen", - "Mark as not done" : "Als unerledigt markieren", "Delete card" : "Karte löschen", - "seconds ago" : "Gerade eben", "All boards" : "Alle Boards", "Archived boards" : "Archivierte Boards", "Shared with you" : "Mit Ihnen geteilt", @@ -421,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Suche nach Benutzern, Gruppen und Teams …", "No participants found" : "Keine Teilnehmer gefunden", "Save" : "Speichern", + "seconds ago" : "Gerade eben", "Today" : "Heute", "Tomorrow" : "Morgen", "No due" : "Kein Fälligkeitsdatum" diff --git a/l10n/de_DE.json b/l10n/de_DE.json index b1646da26e..c6f01694c2 100644 --- a/l10n/de_DE.json +++ b/l10n/de_DE.json @@ -127,6 +127,7 @@ "Card not found" : "Karte nicht gefunden", "Path is already shared with this card" : "Pfad wurde bereits mit dieser Karte geteilt", "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Alle Boards, die Ihnen gehören, einschließlich Stapeln, Karten, Etiketten, Zuordnungen und Kommentaren", "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ügen Sie Ihre Aufgaben zu den Karten hinzu und ordnen Sie diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teilen Sie mit Ihrem Team, Ihren Freunden oder Ihrer Familie\n- 📎 Fügen Sie Dateien hinzu und verwende diese in Ihren Markdown-Beschreibungen\n- 💬 Diskutieren Sie mit Ihrem Team mit Kommentaren\n- ⚡ Behalten Sie Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisieren Sie Ihr Projekt", "Add board" : "Board hinzufügen", @@ -173,6 +174,8 @@ "Clear filter" : "Filter zurücksetzen", "View Modes" : "Ansichtsmodi", "Toggle View Modes" : "Ansichtsmodi wechseln", + "Kanban view" : "Kanban Ansicht", + "Gantt view" : "Gantt Ansicht", "Hide archived cards" : "Archivierte Karten ausblenden", "Show archived cards" : "Archivierte Karten anzeigen", "Toggle compact mode" : "Kompaktmodus umschalten", @@ -216,6 +219,13 @@ "Deleted lists" : "Gelöschte Listen", "Undo" : "Rückgängig", "Deleted cards" : "Gelöschte Karten", + "Hours" : "Stunden", + "Days" : "Tage", + "Weeks" : "Wochen", + "Months" : "Monate", + "No cards yet" : "Bislang keine Karten", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Ein Start- und Zieldatum auf Ihren Karten setzen, um dieses in der Gantt-Ansicht zu anzuzeigen", + "Cards without dates ({count})" : "Karten ohne Datum ({count})", "Failed to create share with {displayName}" : "Freigabe mit dem Namen {displayName} konnte nicht erstellt werden", "Are you sure you want to transfer the board {title} to {user}?" : "Möchten Sie das Board {title} auf {user} übertragen?", "Transfer the board." : "Board übertragen.", @@ -273,11 +283,19 @@ "No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginnen Sie die Diskussion!", "The comment cannot be empty." : "Der Kommentar darf nicht leer sein.", "The comment cannot be longer than 1000 characters." : "Der Kommentar darf nicht länger als 1000 Zeichen sein.", + "Submit" : "Übermitteln", "Created:" : "Erstellt:", "In reply to" : "Als Antwort auf", "Cancel reply" : "Antwort abbrechen", "Reply" : "Antworten", "Update" : "Aktualisieren", + "Assign dependent cards" : "Abhängige Karten zuweisen", + "Mark as done" : "Als erledigt markieren", + "Mark as not done" : "Als unerledigt markieren", + "Remove dependency" : "Abhängigkeit entfernen", + "Add dependent card" : "Abhängige Karte hinzufügen", + "Assign a dependent card…" : "Eine abhängige Karte zuweisen …", + "Select a dependent card…" : "Eine abhängige Karte auswählen …", "Write a description …" : "Beschreibung schreiben …", "The description has been changed by another user." : "Die Beschreibung wurde von einem anderen Benutzer geändert.", "Could not save description" : "Beschreibung konnte nicht gespeichert werden", @@ -303,8 +321,7 @@ "Add due date" : "Fälligkeitsdatum hinzufügen", "Choose a date" : "Datum auswählen", "Remove due date" : "Fälligkeitsdatum entfernen", - "Mark as done" : "Als erledigt markieren", - "Due at:" : "Fallig am:", + "Due at:" : "Fällig am:", "Not done" : "Nicht erledigt", "Unarchive card" : "Karte dearchivieren", "Archive card" : "Karte archivieren", @@ -321,12 +338,11 @@ "Edit card title" : "Kartentitel bearbeiten", "Open link" : "Link öffnen", "Card deleted" : "Karte gelöscht", + "Change card color" : "Kartenfarbe ändern", "Edit title" : "Titel bearbeiten", "Assign to me" : "Mir zuweisen", "Unassign myself" : "Nicht mehr mir zuweisen", - "Mark as not done" : "Als unerledigt markieren", "Delete card" : "Karte löschen", - "seconds ago" : "Gerade eben", "All boards" : "Alle Boards", "Archived boards" : "Archivierte Boards", "Shared with you" : "Mit Ihnen geteilt", @@ -419,6 +435,7 @@ "Searching for users, groups and teams …" : "Suche nach Benutzern, Gruppen und Teams …", "No participants found" : "Keine Teilnehmer gefunden", "Save" : "Speichern", + "seconds ago" : "Gerade eben", "Today" : "Heute", "Tomorrow" : "Morgen", "No due" : "Kein Fälligkeitsdatum" diff --git a/l10n/el.js b/l10n/el.js index 998aab8517..8e02d4091c 100644 --- a/l10n/el.js +++ b/l10n/el.js @@ -188,6 +188,7 @@ OC.L10N.register( "Show boards in calendar/tasks" : "Εμφάνιση πινάκων στο ημερολόγιο / εργασίες", "Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες", "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.", + "Enable federation" : "Ενεργοποίηση ομοσπονδίας", "Board actions" : "Ενέργειες πίνακα", "Scroll sideways" : "Κύλιση οριζόντια", "Navigate between cards" : "Πλοήγηση μεταξύ καρτών", @@ -214,6 +215,11 @@ OC.L10N.register( "Deleted lists" : "Διαγραμμένες λίστες", "Undo" : "Αναίρεση", "Deleted cards" : "Διαγραμμένες καρτέλες", + "Hours" : "Ώρες", + "Days" : "Ημέρες", + "Weeks" : "Εβδομάδες", + "Months" : "Μήνες", + "No cards yet" : "Καμία κάρτα ακόμη", "Failed to create share with {displayName}" : "Αποτυχία δημιουργίας κοινής χρήσης με το {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Είστε σίγουροι ότι θέλετε να μεταφέρετε τον πίνακα {title} στον {user}? ", "Transfer the board." : "Μεταφορά του πίνακα.", @@ -266,11 +272,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Χωρίς σχόλια ακόμη. Ξεκινήστε την συζήτηση!", "The comment cannot be empty." : "Το σχόλιο δεν μπορεί να είναι κενό.", "The comment cannot be longer than 1000 characters." : "Το σχόλιο δεν μπορεί να έχι περισσότερους από 1000 χαρακτήρες.", + "Submit" : "Υποβολή", "Created:" : "Δημιουργήθηκε:", "In reply to" : "Σε απάντηση σε", "Cancel reply" : "Ακύρωση απάντησης", "Reply" : "Απάντηση", "Update" : "Ενημέρωση", + "Mark as done" : "Σήμανση ως ολοκληρωμένου", + "Mark as not done" : "Σήμανση ως ολοκληρωμένου", "Write a description …" : "Γράψτε μια περιγραφή…", "Could not save description" : "Αδυναμία αποθήκευσης της περιγραφής", "Description" : "Περιγραφή", @@ -295,7 +304,6 @@ OC.L10N.register( "Add due date" : "Προσθήκη ημερομηνίας λήξης", "Choose a date" : "Επιλέξτε ημερομηνίας", "Remove due date" : "Αφαίρεση ημερομηνίας λήξης", - "Mark as done" : "Σήμανση ως ολοκληρωμένου", "Due at:" : "Λήγει στις:", "Not done" : "Μη ολοκληρωμένο", "Unarchive card" : "Αναίρεση αρχειοθέτησης καρτέλας", @@ -312,9 +320,7 @@ OC.L10N.register( "Edit title" : "Επεξεργασία τίτλου", "Assign to me" : "Ανάθεση σε εμένα", "Unassign myself" : "Αποδέσμευσή μου", - "Mark as not done" : "Σήμανση ως ολοκληρωμένου", "Delete card" : "Διαγραφή καρτέλας", - "seconds ago" : " δευτερόλεπτα πριν ", "All boards" : "Όλοι οι πίνακες", "Archived boards" : "Αρχειοθέτηση πινάκων ", "Shared with you" : "Διαμοιρασμένα μαζί σας", @@ -401,6 +407,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Αναζήτηση χρηστών, ομάδων και teams …", "No participants found" : "Δε βρέθηκαν συμμετέχοντες", "Save" : "Αποθήκευση", + "seconds ago" : " δευτερόλεπτα πριν ", "Today" : "Σήμερα", "Tomorrow" : "Αύριο", "No due" : "Χωρίς λήξη" diff --git a/l10n/el.json b/l10n/el.json index c7a3fe02f1..0b3794d9e0 100644 --- a/l10n/el.json +++ b/l10n/el.json @@ -186,6 +186,7 @@ "Show boards in calendar/tasks" : "Εμφάνιση πινάκων στο ημερολόγιο / εργασίες", "Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες", "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.", + "Enable federation" : "Ενεργοποίηση ομοσπονδίας", "Board actions" : "Ενέργειες πίνακα", "Scroll sideways" : "Κύλιση οριζόντια", "Navigate between cards" : "Πλοήγηση μεταξύ καρτών", @@ -212,6 +213,11 @@ "Deleted lists" : "Διαγραμμένες λίστες", "Undo" : "Αναίρεση", "Deleted cards" : "Διαγραμμένες καρτέλες", + "Hours" : "Ώρες", + "Days" : "Ημέρες", + "Weeks" : "Εβδομάδες", + "Months" : "Μήνες", + "No cards yet" : "Καμία κάρτα ακόμη", "Failed to create share with {displayName}" : "Αποτυχία δημιουργίας κοινής χρήσης με το {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Είστε σίγουροι ότι θέλετε να μεταφέρετε τον πίνακα {title} στον {user}? ", "Transfer the board." : "Μεταφορά του πίνακα.", @@ -264,11 +270,14 @@ "No comments yet. Begin the discussion!" : "Χωρίς σχόλια ακόμη. Ξεκινήστε την συζήτηση!", "The comment cannot be empty." : "Το σχόλιο δεν μπορεί να είναι κενό.", "The comment cannot be longer than 1000 characters." : "Το σχόλιο δεν μπορεί να έχι περισσότερους από 1000 χαρακτήρες.", + "Submit" : "Υποβολή", "Created:" : "Δημιουργήθηκε:", "In reply to" : "Σε απάντηση σε", "Cancel reply" : "Ακύρωση απάντησης", "Reply" : "Απάντηση", "Update" : "Ενημέρωση", + "Mark as done" : "Σήμανση ως ολοκληρωμένου", + "Mark as not done" : "Σήμανση ως ολοκληρωμένου", "Write a description …" : "Γράψτε μια περιγραφή…", "Could not save description" : "Αδυναμία αποθήκευσης της περιγραφής", "Description" : "Περιγραφή", @@ -293,7 +302,6 @@ "Add due date" : "Προσθήκη ημερομηνίας λήξης", "Choose a date" : "Επιλέξτε ημερομηνίας", "Remove due date" : "Αφαίρεση ημερομηνίας λήξης", - "Mark as done" : "Σήμανση ως ολοκληρωμένου", "Due at:" : "Λήγει στις:", "Not done" : "Μη ολοκληρωμένο", "Unarchive card" : "Αναίρεση αρχειοθέτησης καρτέλας", @@ -310,9 +318,7 @@ "Edit title" : "Επεξεργασία τίτλου", "Assign to me" : "Ανάθεση σε εμένα", "Unassign myself" : "Αποδέσμευσή μου", - "Mark as not done" : "Σήμανση ως ολοκληρωμένου", "Delete card" : "Διαγραφή καρτέλας", - "seconds ago" : " δευτερόλεπτα πριν ", "All boards" : "Όλοι οι πίνακες", "Archived boards" : "Αρχειοθέτηση πινάκων ", "Shared with you" : "Διαμοιρασμένα μαζί σας", @@ -399,6 +405,7 @@ "Searching for users, groups and teams …" : "Αναζήτηση χρηστών, ομάδων και teams …", "No participants found" : "Δε βρέθηκαν συμμετέχοντες", "Save" : "Αποθήκευση", + "seconds ago" : " δευτερόλεπτα πριν ", "Today" : "Σήμερα", "Tomorrow" : "Αύριο", "No due" : "Χωρίς λήξη" diff --git a/l10n/en_GB.js b/l10n/en_GB.js index f89ee68dac..e3a521d5e3 100644 --- a/l10n/en_GB.js +++ b/l10n/en_GB.js @@ -129,6 +129,7 @@ OC.L10N.register( "Card not found" : "Card not found", "Path is already shared with this card" : "Path is already shared with this card", "Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "All boards owned by you including stacks, cards, labels, assignments, and comments", "Personal planning and team project organization" : "Personal planning and team project organisation", "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck is a kanban style organisation tool aimed at personal planning and project organisation for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organisation\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organised", "Add board" : "Add board", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Clear filter", "View Modes" : "View Modes", "Toggle View Modes" : "Toggle View Modes", + "Kanban view" : "Kanban view", + "Gantt view" : "Gantt view", "Hide archived cards" : "Hide archived cards", "Show archived cards" : "Show archived cards", "Toggle compact mode" : "Toggle compact mode", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "Deleted lists", "Undo" : "Undo", "Deleted cards" : "Deleted cards", + "Hours" : "Hours", + "Days" : "Days", + "Weeks" : "Weeks", + "Months" : "Months", + "No cards yet" : "No cards yet", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Set a start date and due date on your cards to see them on the Gantt chart", + "Cards without dates ({count})" : "Cards without dates ({count})", "Failed to create share with {displayName}" : "Failed to create share with {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Are you sure you want to transfer the board {title} to {user}?", "Transfer the board." : "Transfer the board.", @@ -263,6 +273,9 @@ OC.L10N.register( "Remove attachment" : "Remove attachment", "Delete Attachment" : "Delete Attachment", "Restore Attachment" : "Restore Attachment", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Modified: {modifiedDate} ⸱ Created: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Modified: {modifiedDate}\nCreated: {createdDate}", "The title cannot be empty." : "The title cannot be empty.", "Cannot close unsaved card!" : "Cannot close unsaved card!", "Open in sidebar view" : "Open in sidebar view", @@ -272,11 +285,19 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "No comments yet. Begin the discussion!", "The comment cannot be empty." : "The comment cannot be empty.", "The comment cannot be longer than 1000 characters." : "The comment cannot be longer than 1000 characters.", + "Submit" : "Submit", "Created:" : "Created:", "In reply to" : "In reply to", "Cancel reply" : "Cancel reply", "Reply" : "Reply", "Update" : "Update", + "Assign dependent cards" : "Assign dependent cards", + "Mark as done" : "Mark as done", + "Mark as not done" : "Mark as not done", + "Remove dependency" : "Remove dependency", + "Add dependent card" : "Add dependent card", + "Assign a dependent card…" : "Assign a dependent card…", + "Select a dependent card…" : "Select a dependent card…", "Write a description …" : "Write a description …", "The description has been changed by another user." : "The description has been changed by another user.", "Could not save description" : "Could not save description", @@ -302,7 +323,6 @@ OC.L10N.register( "Add due date" : "Add due date", "Choose a date" : "Choose a date", "Remove due date" : "Remove due date", - "Mark as done" : "Mark as done", "Due at:" : "Due at:", "Not done" : "Not done", "Unarchive card" : "Unarchive card", @@ -320,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Edit card title", "Open link" : "Open link", "Card deleted" : "Card deleted", + "Change card color" : "Change card colour", "Edit title" : "Edit title", "Assign to me" : "Assign to me", "Unassign myself" : "Unassign myself", - "Mark as not done" : "Mark as not done", "Delete card" : "Delete card", - "seconds ago" : "seconds ago", "All boards" : "All boards", "Archived boards" : "Archived boards", "Shared with you" : "Shared with you", @@ -418,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Searching for users, groups and teams …", "No participants found" : "No participants found", "Save" : "Save", + "seconds ago" : "seconds ago", "Today" : "Today", "Tomorrow" : "Tomorrow", "No due" : "No due" diff --git a/l10n/en_GB.json b/l10n/en_GB.json index 2786687e72..8f53476e86 100644 --- a/l10n/en_GB.json +++ b/l10n/en_GB.json @@ -127,6 +127,7 @@ "Card not found" : "Card not found", "Path is already shared with this card" : "Path is already shared with this card", "Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "All boards owned by you including stacks, cards, labels, assignments, and comments", "Personal planning and team project organization" : "Personal planning and team project organisation", "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck is a kanban style organisation tool aimed at personal planning and project organisation for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organisation\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organised", "Add board" : "Add board", @@ -173,6 +174,8 @@ "Clear filter" : "Clear filter", "View Modes" : "View Modes", "Toggle View Modes" : "Toggle View Modes", + "Kanban view" : "Kanban view", + "Gantt view" : "Gantt view", "Hide archived cards" : "Hide archived cards", "Show archived cards" : "Show archived cards", "Toggle compact mode" : "Toggle compact mode", @@ -216,6 +219,13 @@ "Deleted lists" : "Deleted lists", "Undo" : "Undo", "Deleted cards" : "Deleted cards", + "Hours" : "Hours", + "Days" : "Days", + "Weeks" : "Weeks", + "Months" : "Months", + "No cards yet" : "No cards yet", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Set a start date and due date on your cards to see them on the Gantt chart", + "Cards without dates ({count})" : "Cards without dates ({count})", "Failed to create share with {displayName}" : "Failed to create share with {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Are you sure you want to transfer the board {title} to {user}?", "Transfer the board." : "Transfer the board.", @@ -261,6 +271,9 @@ "Remove attachment" : "Remove attachment", "Delete Attachment" : "Delete Attachment", "Restore Attachment" : "Restore Attachment", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Modified: {modifiedDate} ⸱ Created: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Modified: {modifiedDate}\nCreated: {createdDate}", "The title cannot be empty." : "The title cannot be empty.", "Cannot close unsaved card!" : "Cannot close unsaved card!", "Open in sidebar view" : "Open in sidebar view", @@ -270,11 +283,19 @@ "No comments yet. Begin the discussion!" : "No comments yet. Begin the discussion!", "The comment cannot be empty." : "The comment cannot be empty.", "The comment cannot be longer than 1000 characters." : "The comment cannot be longer than 1000 characters.", + "Submit" : "Submit", "Created:" : "Created:", "In reply to" : "In reply to", "Cancel reply" : "Cancel reply", "Reply" : "Reply", "Update" : "Update", + "Assign dependent cards" : "Assign dependent cards", + "Mark as done" : "Mark as done", + "Mark as not done" : "Mark as not done", + "Remove dependency" : "Remove dependency", + "Add dependent card" : "Add dependent card", + "Assign a dependent card…" : "Assign a dependent card…", + "Select a dependent card…" : "Select a dependent card…", "Write a description …" : "Write a description …", "The description has been changed by another user." : "The description has been changed by another user.", "Could not save description" : "Could not save description", @@ -300,7 +321,6 @@ "Add due date" : "Add due date", "Choose a date" : "Choose a date", "Remove due date" : "Remove due date", - "Mark as done" : "Mark as done", "Due at:" : "Due at:", "Not done" : "Not done", "Unarchive card" : "Unarchive card", @@ -318,12 +338,11 @@ "Edit card title" : "Edit card title", "Open link" : "Open link", "Card deleted" : "Card deleted", + "Change card color" : "Change card colour", "Edit title" : "Edit title", "Assign to me" : "Assign to me", "Unassign myself" : "Unassign myself", - "Mark as not done" : "Mark as not done", "Delete card" : "Delete card", - "seconds ago" : "seconds ago", "All boards" : "All boards", "Archived boards" : "Archived boards", "Shared with you" : "Shared with you", @@ -416,6 +435,7 @@ "Searching for users, groups and teams …" : "Searching for users, groups and teams …", "No participants found" : "No participants found", "Save" : "Save", + "seconds ago" : "seconds ago", "Today" : "Today", "Tomorrow" : "Tomorrow", "No due" : "No due" diff --git a/l10n/eo.js b/l10n/eo.js index db30ebd660..fe02255bae 100644 --- a/l10n/eo.js +++ b/l10n/eo.js @@ -86,6 +86,7 @@ OC.L10N.register( "Activity" : "Aktivaĵoj", "Undo" : "Malfari", "Deleted cards" : "Forigitaj kartoj", + "Hours" : "Horoj", "(Group)" : "(grupo)", "Can edit" : "Povas redakti", "Can share" : "Can share", @@ -95,6 +96,7 @@ OC.L10N.register( "Members" : "Membroj", "Download" : "Elŝuti", "Comments" : "Komentoj", + "Submit" : "Sendi", "Created:" : "Kreita:", "Reply" : "Respondi", "Update" : "Ĝisdatigi", @@ -106,7 +108,6 @@ OC.L10N.register( "Archive card" : "Arĥivigi karton", "(group)" : "(grupo)", "Delete card" : "Forigi karton", - "seconds ago" : "antaŭ kelkaj sekundoj", "Archived boards" : "Arĥivigitaj tabuloj", "Shared with you" : "Kunhavata kun vi", "An error occurred" : "Eraro okazis", @@ -127,6 +128,7 @@ OC.L10N.register( "Share" : "Kunhavigi", "The card \"%s\" on \"%s\" has reached its due date." : "La karto „%s“ sur „%s“ atingis sian limdaton.", "Save" : "Konservi", + "seconds ago" : "antaŭ kelkaj sekundoj", "Today" : "Hodiaŭ", "Tomorrow" : "Morgaŭ" }, diff --git a/l10n/eo.json b/l10n/eo.json index 5fc2e14340..2cb93f19d9 100644 --- a/l10n/eo.json +++ b/l10n/eo.json @@ -84,6 +84,7 @@ "Activity" : "Aktivaĵoj", "Undo" : "Malfari", "Deleted cards" : "Forigitaj kartoj", + "Hours" : "Horoj", "(Group)" : "(grupo)", "Can edit" : "Povas redakti", "Can share" : "Can share", @@ -93,6 +94,7 @@ "Members" : "Membroj", "Download" : "Elŝuti", "Comments" : "Komentoj", + "Submit" : "Sendi", "Created:" : "Kreita:", "Reply" : "Respondi", "Update" : "Ĝisdatigi", @@ -104,7 +106,6 @@ "Archive card" : "Arĥivigi karton", "(group)" : "(grupo)", "Delete card" : "Forigi karton", - "seconds ago" : "antaŭ kelkaj sekundoj", "Archived boards" : "Arĥivigitaj tabuloj", "Shared with you" : "Kunhavata kun vi", "An error occurred" : "Eraro okazis", @@ -125,6 +126,7 @@ "Share" : "Kunhavigi", "The card \"%s\" on \"%s\" has reached its due date." : "La karto „%s“ sur „%s“ atingis sian limdaton.", "Save" : "Konservi", + "seconds ago" : "antaŭ kelkaj sekundoj", "Today" : "Hodiaŭ", "Tomorrow" : "Morgaŭ" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/l10n/es.js b/l10n/es.js index fdd37c74c5..b65a653e4f 100644 --- a/l10n/es.js +++ b/l10n/es.js @@ -215,6 +215,11 @@ OC.L10N.register( "Deleted lists" : "Listas eliminadas", "Undo" : "Deshacer", "Deleted cards" : "Cartas eliminadas", + "Hours" : "Horas", + "Days" : "Días", + "Weeks" : "Semanas", + "Months" : "Meses", + "No cards yet" : "Todavía no hay tarjetas", "Failed to create share with {displayName}" : "Fallo al crear el recurso compartido denominado {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "¿Está seguro de que quiere transferir el tablero {title} a {user}?", "Transfer the board." : "Transfiera el tablero.", @@ -267,11 +272,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Todavía no hay comentarios. ¡Comienza la discusión!", "The comment cannot be empty." : "El comentario no puede estar vacío.", "The comment cannot be longer than 1000 characters." : "El comentario no puede tener más de 1000 caracteres.", + "Submit" : "Enviar", "Created:" : "Creado:", "In reply to" : "En respuesta a", "Cancel reply" : "Cancelar respuesta", "Reply" : "Responder", "Update" : "Actualizar", + "Mark as done" : "Marcar como completado", + "Mark as not done" : "Marcar como no completado", "Write a description …" : "Escribe una descripción...", "Could not save description" : "No se pudo guardar la descripción", "Description" : "Descripción", @@ -296,7 +304,6 @@ OC.L10N.register( "Add due date" : "Añadir fecha de vencimiento", "Choose a date" : "Elija una fecha", "Remove due date" : "Eliminar fecha límite", - "Mark as done" : "Marcar como completado", "Due at:" : "Vence el:", "Not done" : "No está finalizado", "Unarchive card" : "Desarchivar tarjeta", @@ -313,9 +320,7 @@ OC.L10N.register( "Edit title" : "Editar título", "Assign to me" : "Asignarme a mí", "Unassign myself" : "Desasignarme a mí mismo", - "Mark as not done" : "Marcar como no completado", "Delete card" : "Eliminar tarjeta", - "seconds ago" : "hace unos segundos", "All boards" : "Todos los tableros", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido contigo", @@ -402,6 +407,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Buscando usuarios, grupos y equipos …", "No participants found" : "No se encontraron participantes", "Save" : "Guardar", + "seconds ago" : "hace unos segundos", "Today" : "Hoy", "Tomorrow" : "Mañana", "No due" : "Sin finalizar" diff --git a/l10n/es.json b/l10n/es.json index 5c39820221..b2f184fae0 100644 --- a/l10n/es.json +++ b/l10n/es.json @@ -213,6 +213,11 @@ "Deleted lists" : "Listas eliminadas", "Undo" : "Deshacer", "Deleted cards" : "Cartas eliminadas", + "Hours" : "Horas", + "Days" : "Días", + "Weeks" : "Semanas", + "Months" : "Meses", + "No cards yet" : "Todavía no hay tarjetas", "Failed to create share with {displayName}" : "Fallo al crear el recurso compartido denominado {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "¿Está seguro de que quiere transferir el tablero {title} a {user}?", "Transfer the board." : "Transfiera el tablero.", @@ -265,11 +270,14 @@ "No comments yet. Begin the discussion!" : "Todavía no hay comentarios. ¡Comienza la discusión!", "The comment cannot be empty." : "El comentario no puede estar vacío.", "The comment cannot be longer than 1000 characters." : "El comentario no puede tener más de 1000 caracteres.", + "Submit" : "Enviar", "Created:" : "Creado:", "In reply to" : "En respuesta a", "Cancel reply" : "Cancelar respuesta", "Reply" : "Responder", "Update" : "Actualizar", + "Mark as done" : "Marcar como completado", + "Mark as not done" : "Marcar como no completado", "Write a description …" : "Escribe una descripción...", "Could not save description" : "No se pudo guardar la descripción", "Description" : "Descripción", @@ -294,7 +302,6 @@ "Add due date" : "Añadir fecha de vencimiento", "Choose a date" : "Elija una fecha", "Remove due date" : "Eliminar fecha límite", - "Mark as done" : "Marcar como completado", "Due at:" : "Vence el:", "Not done" : "No está finalizado", "Unarchive card" : "Desarchivar tarjeta", @@ -311,9 +318,7 @@ "Edit title" : "Editar título", "Assign to me" : "Asignarme a mí", "Unassign myself" : "Desasignarme a mí mismo", - "Mark as not done" : "Marcar como no completado", "Delete card" : "Eliminar tarjeta", - "seconds ago" : "hace unos segundos", "All boards" : "Todos los tableros", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido contigo", @@ -400,6 +405,7 @@ "Searching for users, groups and teams …" : "Buscando usuarios, grupos y equipos …", "No participants found" : "No se encontraron participantes", "Save" : "Guardar", + "seconds ago" : "hace unos segundos", "Today" : "Hoy", "Tomorrow" : "Mañana", "No due" : "Sin finalizar" diff --git a/l10n/es_419.js b/l10n/es_419.js index cc649bd9a2..8a459d5608 100644 --- a/l10n/es_419.js +++ b/l10n/es_419.js @@ -30,6 +30,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -38,6 +39,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -45,7 +47,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -63,6 +64,7 @@ OC.L10N.register( "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_419.json b/l10n/es_419.json index d022f13515..c76aa77971 100644 --- a/l10n/es_419.json +++ b/l10n/es_419.json @@ -28,6 +28,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -36,6 +37,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -43,7 +45,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -61,6 +62,7 @@ "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_AR.js b/l10n/es_AR.js index c3e790b569..23e137d11f 100644 --- a/l10n/es_AR.js +++ b/l10n/es_AR.js @@ -71,6 +71,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Transfer" : "Transferir", "(remote)" : "(remoto)", "Can edit" : "Puede editar", @@ -81,6 +82,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -89,7 +91,6 @@ OC.L10N.register( "Select Date" : "Seleccionar fecha", "Remove due date" : "Eliminar fecha de vencimiento", "(group)" : "(grupo)", - "seconds ago" : "segundos", "All boards" : "Todos los Tableros", "Shared with you" : "Compartido con usted", "An error occurred" : "Ocurrió un error", @@ -113,6 +114,7 @@ OC.L10N.register( "Share {file} with a Deck card" : "Compartir {file} con una tarjeta del Tablero", "Share" : "Compartir", "Save" : "Guardar", + "seconds ago" : "segundos", "Today" : "Hoy", "Tomorrow" : "Mañana", "No due" : "Sin finalizar" diff --git a/l10n/es_AR.json b/l10n/es_AR.json index 8f901abc17..45e18f6b6b 100644 --- a/l10n/es_AR.json +++ b/l10n/es_AR.json @@ -69,6 +69,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Transfer" : "Transferir", "(remote)" : "(remoto)", "Can edit" : "Puede editar", @@ -79,6 +80,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -87,7 +89,6 @@ "Select Date" : "Seleccionar fecha", "Remove due date" : "Eliminar fecha de vencimiento", "(group)" : "(grupo)", - "seconds ago" : "segundos", "All boards" : "Todos los Tableros", "Shared with you" : "Compartido con usted", "An error occurred" : "Ocurrió un error", @@ -111,6 +112,7 @@ "Share {file} with a Deck card" : "Compartir {file} con una tarjeta del Tablero", "Share" : "Compartir", "Save" : "Guardar", + "seconds ago" : "segundos", "Today" : "Hoy", "Tomorrow" : "Mañana", "No due" : "Sin finalizar" diff --git a/l10n/es_CL.js b/l10n/es_CL.js index 7059e5ec96..0f819aa252 100644 --- a/l10n/es_CL.js +++ b/l10n/es_CL.js @@ -34,6 +34,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -42,6 +43,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -49,7 +51,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -60,12 +61,14 @@ OC.L10N.register( "Delete board" : "Borrar tableros", "Advanced options" : "Opciones avanzadas", "Export" : "Exportar", + "Close" : "Close", "Due date" : "Fecha de vencimiento", "Created" : "Creado", "Modified" : "Modificado", "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_CL.json b/l10n/es_CL.json index 0be5a3270c..f67f5cf082 100644 --- a/l10n/es_CL.json +++ b/l10n/es_CL.json @@ -32,6 +32,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -40,6 +41,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -47,7 +49,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -58,12 +59,14 @@ "Delete board" : "Borrar tableros", "Advanced options" : "Opciones avanzadas", "Export" : "Exportar", + "Close" : "Close", "Due date" : "Fecha de vencimiento", "Created" : "Creado", "Modified" : "Modificado", "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_CO.js b/l10n/es_CO.js index e17421f64e..0a7cf3e12f 100644 --- a/l10n/es_CO.js +++ b/l10n/es_CO.js @@ -34,6 +34,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Transfer" : "Transferencia", "Can edit" : "Puede editar", "Can share" : "Puede compartir", @@ -43,6 +44,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -50,7 +52,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Cancel edit" : "Cancelar edición", @@ -69,6 +70,7 @@ OC.L10N.register( "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_CO.json b/l10n/es_CO.json index e1811f0edb..7cb902a5c4 100644 --- a/l10n/es_CO.json +++ b/l10n/es_CO.json @@ -32,6 +32,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Transfer" : "Transferencia", "Can edit" : "Puede editar", "Can share" : "Puede compartir", @@ -41,6 +42,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -48,7 +50,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Cancel edit" : "Cancelar edición", @@ -67,6 +68,7 @@ "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_CR.js b/l10n/es_CR.js index da56e5b41b..a19b792881 100644 --- a/l10n/es_CR.js +++ b/l10n/es_CR.js @@ -33,6 +33,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -41,6 +42,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -48,7 +50,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -59,12 +60,14 @@ OC.L10N.register( "Delete board" : "Borrar tableros", "Advanced options" : "Opciones avanzadas", "Export" : "Exportar", + "Close" : "Close", "Due date" : "Fecha de vencimiento", "Created" : "Creado", "Modified" : "Modificado", "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_CR.json b/l10n/es_CR.json index b3c7c96bdd..bc01da9bd3 100644 --- a/l10n/es_CR.json +++ b/l10n/es_CR.json @@ -31,6 +31,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -39,6 +40,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -46,7 +48,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -57,12 +58,14 @@ "Delete board" : "Borrar tableros", "Advanced options" : "Opciones avanzadas", "Export" : "Exportar", + "Close" : "Close", "Due date" : "Fecha de vencimiento", "Created" : "Creado", "Modified" : "Modificado", "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_DO.js b/l10n/es_DO.js index 0b6645ee9b..4cfd0a9212 100644 --- a/l10n/es_DO.js +++ b/l10n/es_DO.js @@ -33,6 +33,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -41,6 +42,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -48,7 +50,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -66,6 +67,7 @@ OC.L10N.register( "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_DO.json b/l10n/es_DO.json index 820c2b1be9..1e4d95843a 100644 --- a/l10n/es_DO.json +++ b/l10n/es_DO.json @@ -31,6 +31,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -39,6 +40,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -46,7 +48,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -64,6 +65,7 @@ "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_EC.js b/l10n/es_EC.js index 34cecb20b4..f4e958fcfa 100644 --- a/l10n/es_EC.js +++ b/l10n/es_EC.js @@ -168,6 +168,11 @@ OC.L10N.register( "Deleted lists" : "Listas eliminadas", "Undo" : "Deshacer", "Deleted cards" : "Tarjetas eliminadas", + "Hours" : "Horas", + "Days" : "Días", + "Weeks" : "Semanas", + "Months" : "Meses", + "No cards yet" : "Aún no hay tarjetas", "Failed to create share with {displayName}" : "Error al crear el uso compartido con {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "¿Estás seguro de que quieres transferir el tablero {title} a {user}?", "Transfer the board." : "Transferir el tablero.", @@ -216,11 +221,13 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Aún no hay comentarios. ¡Inicia la discusión!", "The comment cannot be empty." : "El comentario no puede estar vacío.", "The comment cannot be longer than 1000 characters." : "El comentario no puede tener más de 1000 caracteres.", + "Submit" : "Enviar", "Created:" : "Creado:", "In reply to" : "En respuesta a", "Cancel reply" : "Cancelar respuesta", "Reply" : "Responder", "Update" : "Actualizar", + "Mark as done" : "Marcar como hecha", "Write a description …" : "Escribir una descripción …", "Description" : "Descripción", "(Unsaved)" : "(No guardado)", @@ -233,7 +240,6 @@ OC.L10N.register( "Select Date" : "Seleccionar fecha", "Set a due date" : "Establecer una fecha de vencimiento", "Remove due date" : "Eliminar fecha de expiración", - "Mark as done" : "Marcar como hecha", "Unarchive card" : "Desarchivar tarjeta", "Archive card" : "Archivar tarjeta", "Assign a tag to this card…" : "Asignar una etiqueta a esta tarjeta…", @@ -246,7 +252,6 @@ OC.L10N.register( "Assign to me" : "Asignarme la tarjeta", "Unassign myself" : "Desasignarme la tarjeta", "Delete card" : "Eliminar tarjeta", - "seconds ago" : "hace segundos", "All boards" : "Todos los tableros", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", @@ -312,6 +317,7 @@ OC.L10N.register( "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "No participants found" : "No se encontraron participantes", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana", "No due" : "Sin vencimiento" diff --git a/l10n/es_EC.json b/l10n/es_EC.json index b43401e322..5e700f592d 100644 --- a/l10n/es_EC.json +++ b/l10n/es_EC.json @@ -166,6 +166,11 @@ "Deleted lists" : "Listas eliminadas", "Undo" : "Deshacer", "Deleted cards" : "Tarjetas eliminadas", + "Hours" : "Horas", + "Days" : "Días", + "Weeks" : "Semanas", + "Months" : "Meses", + "No cards yet" : "Aún no hay tarjetas", "Failed to create share with {displayName}" : "Error al crear el uso compartido con {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "¿Estás seguro de que quieres transferir el tablero {title} a {user}?", "Transfer the board." : "Transferir el tablero.", @@ -214,11 +219,13 @@ "No comments yet. Begin the discussion!" : "Aún no hay comentarios. ¡Inicia la discusión!", "The comment cannot be empty." : "El comentario no puede estar vacío.", "The comment cannot be longer than 1000 characters." : "El comentario no puede tener más de 1000 caracteres.", + "Submit" : "Enviar", "Created:" : "Creado:", "In reply to" : "En respuesta a", "Cancel reply" : "Cancelar respuesta", "Reply" : "Responder", "Update" : "Actualizar", + "Mark as done" : "Marcar como hecha", "Write a description …" : "Escribir una descripción …", "Description" : "Descripción", "(Unsaved)" : "(No guardado)", @@ -231,7 +238,6 @@ "Select Date" : "Seleccionar fecha", "Set a due date" : "Establecer una fecha de vencimiento", "Remove due date" : "Eliminar fecha de expiración", - "Mark as done" : "Marcar como hecha", "Unarchive card" : "Desarchivar tarjeta", "Archive card" : "Archivar tarjeta", "Assign a tag to this card…" : "Asignar una etiqueta a esta tarjeta…", @@ -244,7 +250,6 @@ "Assign to me" : "Asignarme la tarjeta", "Unassign myself" : "Desasignarme la tarjeta", "Delete card" : "Eliminar tarjeta", - "seconds ago" : "hace segundos", "All boards" : "Todos los tableros", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", @@ -310,6 +315,7 @@ "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "No participants found" : "No se encontraron participantes", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana", "No due" : "Sin vencimiento" diff --git a/l10n/es_GT.js b/l10n/es_GT.js index 4b37f057f5..2412d626ca 100644 --- a/l10n/es_GT.js +++ b/l10n/es_GT.js @@ -34,6 +34,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -42,6 +43,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -49,7 +51,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -60,12 +61,14 @@ OC.L10N.register( "Delete board" : "Borrar tableros", "Advanced options" : "Opciones avanzadas", "Export" : "Exportar", + "Close" : "Close", "Due date" : "Fecha de vencimiento", "Created" : "Creado", "Modified" : "Modificado", "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_GT.json b/l10n/es_GT.json index 0e63127765..4756059f60 100644 --- a/l10n/es_GT.json +++ b/l10n/es_GT.json @@ -32,6 +32,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -40,6 +41,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -47,7 +49,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -58,12 +59,14 @@ "Delete board" : "Borrar tableros", "Advanced options" : "Opciones avanzadas", "Export" : "Exportar", + "Close" : "Close", "Due date" : "Fecha de vencimiento", "Created" : "Creado", "Modified" : "Modificado", "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_HN.js b/l10n/es_HN.js index bafa557014..aaa6dcc42a 100644 --- a/l10n/es_HN.js +++ b/l10n/es_HN.js @@ -29,6 +29,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -37,6 +38,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -44,7 +46,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -62,6 +63,7 @@ OC.L10N.register( "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_HN.json b/l10n/es_HN.json index b4caf64413..a4535f0c4a 100644 --- a/l10n/es_HN.json +++ b/l10n/es_HN.json @@ -27,6 +27,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -35,6 +36,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -42,7 +44,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -60,6 +61,7 @@ "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_MX.js b/l10n/es_MX.js index 80ee6a9bdd..6cb8cfda40 100644 --- a/l10n/es_MX.js +++ b/l10n/es_MX.js @@ -131,6 +131,11 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", + "Days" : "Días", + "Weeks" : "Semanas", + "Months" : "Meses", + "No cards yet" : "Aún no hay tarjetas", "Failed to create share with {displayName}" : "Fallo al crear el recurso compartido denominado {displayName}", "Transfer" : "Transferir", "(Group)" : "(Grupo)", @@ -149,19 +154,19 @@ OC.L10N.register( "Show in Files" : "Mostrar en Archivos", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", + "Mark as done" : "Marcar como hecho", "Description" : "Descripción", "Formatting help" : "Ayuda de formato", "Edit description" : "Editar descripción", "Remove due date" : "Eliminar fecha de expiración", - "Mark as done" : "Marcar como hecho", "Not done" : "No está finalizado", "Archive card" : "Archivar tarjeta", "(group)" : "(grupo)", "Delete card" : "Eliminar tarjeta", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Cancel edit" : "Cancelar edición", @@ -187,6 +192,7 @@ OC.L10N.register( "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "No participants found" : "No se encontraron participantes", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_MX.json b/l10n/es_MX.json index 5c804c06b2..e322e75972 100644 --- a/l10n/es_MX.json +++ b/l10n/es_MX.json @@ -129,6 +129,11 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", + "Days" : "Días", + "Weeks" : "Semanas", + "Months" : "Meses", + "No cards yet" : "Aún no hay tarjetas", "Failed to create share with {displayName}" : "Fallo al crear el recurso compartido denominado {displayName}", "Transfer" : "Transferir", "(Group)" : "(Grupo)", @@ -147,19 +152,19 @@ "Show in Files" : "Mostrar en Archivos", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", + "Mark as done" : "Marcar como hecho", "Description" : "Descripción", "Formatting help" : "Ayuda de formato", "Edit description" : "Editar descripción", "Remove due date" : "Eliminar fecha de expiración", - "Mark as done" : "Marcar como hecho", "Not done" : "No está finalizado", "Archive card" : "Archivar tarjeta", "(group)" : "(grupo)", "Delete card" : "Eliminar tarjeta", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Cancel edit" : "Cancelar edición", @@ -185,6 +190,7 @@ "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "No participants found" : "No se encontraron participantes", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_NI.js b/l10n/es_NI.js index bafa557014..aaa6dcc42a 100644 --- a/l10n/es_NI.js +++ b/l10n/es_NI.js @@ -29,6 +29,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -37,6 +38,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -44,7 +46,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -62,6 +63,7 @@ OC.L10N.register( "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_NI.json b/l10n/es_NI.json index b4caf64413..a4535f0c4a 100644 --- a/l10n/es_NI.json +++ b/l10n/es_NI.json @@ -27,6 +27,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -35,6 +36,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -42,7 +44,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -60,6 +61,7 @@ "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_PA.js b/l10n/es_PA.js index bafa557014..aaa6dcc42a 100644 --- a/l10n/es_PA.js +++ b/l10n/es_PA.js @@ -29,6 +29,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -37,6 +38,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -44,7 +46,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -62,6 +63,7 @@ OC.L10N.register( "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_PA.json b/l10n/es_PA.json index b4caf64413..a4535f0c4a 100644 --- a/l10n/es_PA.json +++ b/l10n/es_PA.json @@ -27,6 +27,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -35,6 +36,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -42,7 +44,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -60,6 +61,7 @@ "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_PE.js b/l10n/es_PE.js index b30b04f247..bc65ed9b88 100644 --- a/l10n/es_PE.js +++ b/l10n/es_PE.js @@ -31,6 +31,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -39,6 +40,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -46,7 +48,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -64,6 +65,7 @@ OC.L10N.register( "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_PE.json b/l10n/es_PE.json index 37d036ed1f..ae171ccf64 100644 --- a/l10n/es_PE.json +++ b/l10n/es_PE.json @@ -29,6 +29,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -37,6 +38,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -44,7 +46,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -62,6 +63,7 @@ "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_PR.js b/l10n/es_PR.js index bafa557014..aaa6dcc42a 100644 --- a/l10n/es_PR.js +++ b/l10n/es_PR.js @@ -29,6 +29,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -37,6 +38,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -44,7 +46,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -62,6 +63,7 @@ OC.L10N.register( "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_PR.json b/l10n/es_PR.json index b4caf64413..a4535f0c4a 100644 --- a/l10n/es_PR.json +++ b/l10n/es_PR.json @@ -27,6 +27,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -35,6 +36,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -42,7 +44,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -60,6 +61,7 @@ "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_PY.js b/l10n/es_PY.js index bc5ed61c89..b7c14c1c51 100644 --- a/l10n/es_PY.js +++ b/l10n/es_PY.js @@ -31,6 +31,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -39,6 +40,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -46,7 +48,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "An error occurred" : "Se presentó un error", @@ -65,6 +66,7 @@ OC.L10N.register( "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_PY.json b/l10n/es_PY.json index 6f9494b463..69c09854e2 100644 --- a/l10n/es_PY.json +++ b/l10n/es_PY.json @@ -29,6 +29,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -37,6 +38,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -44,7 +46,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "An error occurred" : "Se presentó un error", @@ -63,6 +64,7 @@ "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_SV.js b/l10n/es_SV.js index 0b6645ee9b..4cfd0a9212 100644 --- a/l10n/es_SV.js +++ b/l10n/es_SV.js @@ -33,6 +33,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -41,6 +42,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -48,7 +50,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -66,6 +67,7 @@ OC.L10N.register( "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_SV.json b/l10n/es_SV.json index 820c2b1be9..1e4d95843a 100644 --- a/l10n/es_SV.json +++ b/l10n/es_SV.json @@ -31,6 +31,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -39,6 +40,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -46,7 +48,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -64,6 +65,7 @@ "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/es_UY.js b/l10n/es_UY.js index ee98300cfe..0af4a63383 100644 --- a/l10n/es_UY.js +++ b/l10n/es_UY.js @@ -29,6 +29,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -37,6 +38,7 @@ OC.L10N.register( "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -44,7 +46,6 @@ OC.L10N.register( "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -55,12 +56,14 @@ OC.L10N.register( "Delete board" : "Borrar tableros", "Advanced options" : "Opciones avanzadas", "Export" : "Exportar", + "Close" : "Close", "Due date" : "Fecha de vencimiento", "Created" : "Creado", "Modified" : "Modificado", "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" }, diff --git a/l10n/es_UY.json b/l10n/es_UY.json index f92fb27cc6..952f61654e 100644 --- a/l10n/es_UY.json +++ b/l10n/es_UY.json @@ -27,6 +27,7 @@ "Tags" : "Etiquetas", "Activity" : "Actividad", "Undo" : "Deshacer", + "Hours" : "Horas", "Can edit" : "Puede editar", "Can share" : "Puede compartir", "Owner" : "Dueño", @@ -35,6 +36,7 @@ "Members" : "Miembros", "Download" : "Descargar", "Comments" : "Comentarios", + "Submit" : "Enviar", "Created:" : "Creado:", "Reply" : "Responder", "Update" : "Actualizar", @@ -42,7 +44,6 @@ "Formatting help" : "Ayuda de formato", "Remove due date" : "Eliminar fecha de expiración", "(group)" : "(grupo)", - "seconds ago" : "hace segundos", "Archived boards" : "Tableros archivados", "Shared with you" : "Compartido con usted", "Board details" : "Detalles del tablero", @@ -53,12 +54,14 @@ "Delete board" : "Borrar tableros", "Advanced options" : "Opciones avanzadas", "Export" : "Exportar", + "Close" : "Close", "Due date" : "Fecha de vencimiento", "Created" : "Creado", "Modified" : "Modificado", "Share" : "Compartir", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "Save" : "Guardar", + "seconds ago" : "hace segundos", "Today" : "Hoy", "Tomorrow" : "Mañana" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/l10n/et_EE.js b/l10n/et_EE.js index 2c0003a7ac..9f205895d2 100644 --- a/l10n/et_EE.js +++ b/l10n/et_EE.js @@ -60,14 +60,14 @@ OC.L10N.register( "You have added the attachment {attachment} to card {card}" : "Sa oled lisanud „{card}“ kaardile „{attachment}“ manuse", "{user} has added the attachment {attachment} to card {card}" : "{user} on lisanud „{card}“ kaardile „{attachment}“ manuse", "You have updated the attachment {attachment} on card {card}" : "Sina oled uuendanud „{card}“ kaardil „{attachment}“ manust", - "{user} has updated the attachment {attachment} on card {card}" : "{user} on uuendanud „{card}“ kaardil „{attachment}“ manust", + "{user} has updated the attachment {attachment} on card {card}" : "{user} on uuendanud „{card}“ kaardi „{attachment}“ manust", "You have deleted the attachment {attachment} from card {card}" : "Sina oled kustutanud „{card}“ kaardilt „{attachment}“ manuse", "{user} has deleted the attachment {attachment} from card {card}" : "{user} on kustutanud „{card}“ kaardilt „{attachment}“ manuse", "You have restored the attachment {attachment} to card {card}" : "Sa oled taastanud „{card}“ kaardile „{attachment}“ manuse", "{user} has restored the attachment {attachment} to card {card}" : "{user} on taastanud „{card}“ kaardi „{attachment}“ manuse", "You have commented on card {card}" : "Sina oled kommenteerinud „{card}“ kaarti", "{user} has commented on card {card}" : "{user} on kommenteerinud „{card}“ kaarti", - "Deck" : "Deck", + "Deck" : "Kanban", "Changes in the Deck app" : "Muudatused Kanbani rakenduses", "A board, list or card was changed" : "Tahvel, loend või kaart on muutunud", "A comment was created on a card" : "Kaardile on lisatudkommentaar", @@ -129,8 +129,9 @@ OC.L10N.register( "Card not found" : "Kaarti ei leidu", "Path is already shared with this card" : "Asukoht on juba selle kaardiga jagatud", "Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Kõik tahvlid, mille omanik sa oled, sealhulgas loendid, kaardid, sildid, ülesannete jagamised ja kommentaarid.", "Personal planning and team project organization" : "Projektijuhtimise lahendus sulle ja sinu tiimile", - "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" : "Kanbani rakendus „Deck“ on Nextcloudi lõimitud haldustarvik, mis sobib nii sinu oma tegemiste, kui tiimide ülesannete haldamiseks.\n\n\n- 📥 Lisa oma ülesanded kaartidele ja sea nad õigesse järjestusse\n- 📄 Koosta Markdown-vormingus märkmeid\n- 🔖 Tõhustama halduse nimel kasuta silte\n- 👥 Jaga oma tiimiga, sõpradega või perega\n- 📎 Lisa manuseid ja kasutades Markdown-vormingut lõimi neid teksti\n- 💬 Kasutades kommentaare saad vestelda oma tiimi liikmetega\n- ⚡ Tegevuste voost näed kõiki toimunud muudatusi\n- 🚀 Sinu projekt saab hallatud parimal viisil", + "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" : "Kanbani rakendus „Deck“ on Nextcloudi lõimitud haldustarvik, mis sobib nii sinu oma tegemiste, kui tiimide ülesannete haldamiseks.\n\n\n- 📥 Lisa oma ülesanded kaartidele ja sea nad õigesse järjestusse\n- 📄 Koosta Markdown-vormingus märkmeid\n- 🔖 Tõhusama halduse nimel kasuta silte\n- 👥 Jaga oma tiimiga, sõpradega või perega\n- 📎 Lisa manuseid ja kasutades Markdown-vormingut lõimi neid teksti\n- 💬 Kasutades kommentaare saad vestelda oma tiimi liikmetega\n- ⚡ Tegevuste voost näed kõiki toimunud muudatusi\n- 🚀 Sinu projekt saab hallatud parimal viisil", "Add board" : "Lisa tahvel", "Card details" : "Kaardi üksikasjad", "Select the board to link to a project" : "Vali projektiga seotav tahvel", @@ -146,7 +147,7 @@ OC.L10N.register( "Link to card" : "Lisa link kaardile", "Select a card" : "Vali kaart", "Cancel" : "Katkesta", - "This board is read only" : "See tahvle on vaid loetav", + "This board is read only" : "See tahvel on vaid loetav", "Drop your files to upload" : "Üleslaadimiseks lohista failid siia", "File already exists" : "Fail on juba olemas", "A file with the name {filename} already exists." : "„{filename}“ nimega fail on juba olemas.", @@ -164,7 +165,7 @@ OC.L10N.register( "Unassigned" : "Täitja on määramata", "Filter by status" : "Filtreeri oleku järgi", "Open and completed" : "Avatud ja lõpetatud", - "Open" : "Ava", + "Open" : "Avatud", "Completed" : "Lõpetatud", "Filter by due date" : "Filtreeri tähtaja alusel", "Overdue" : "Üle tähtaja", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Tühjenda filter", "View Modes" : "Vaadete liigid", "Toggle View Modes" : "Lülita vaadete liike sisse/välja", + "Kanban view" : "Kanbani vaade", + "Gantt view" : "Gantti vaade", "Hide archived cards" : "Peida arhiveeritud kaardid", "Show archived cards" : "Näita arhiveeritud kaarte", "Toggle compact mode" : "Lülita kompaktne vaade sisse/välja", @@ -215,13 +218,20 @@ OC.L10N.register( "Tags" : "Sildid", "Deleted items" : "Kustutatud kirjed", "Activity" : "Tegevus", - "Deleted lists" : "Kustutatud loendis", + "Deleted lists" : "Kustutatud loendid", "Undo" : "Tühista", - "Deleted cards" : "Kustutatud kaart", - "Failed to create share with {displayName}" : "Jagamine ei õnnestunud: {displayName}", + "Deleted cards" : "Kustutatud kaardid", + "Hours" : "Tunnid", + "Days" : "Päevad", + "Weeks" : "Nädalad", + "Months" : "Kuud", + "No cards yet" : "Kaarte veel pole", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Määra oma kaartidele algus- ja lõppkupäevad ning näed neid Gantti diagrammil", + "Cards without dates ({count})" : "Ilma kuupäevata kaardid ({count})", + "Failed to create share with {displayName}" : "Jagamine ei õnnestunud kasutajaga {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Kas oled kindel et tahad „{title}“ tahvli omandi üle anda kasutajale „{user}“?", - "Transfer the board." : "Anna omand üle.", - "Transfer" : "Teisalda", + "Transfer the board." : "Anna tahvli omand üle.", + "Transfer" : "Anna omand üle.", "The board has been transferred to {user}" : "Tahvli omand on üle antud kasutajale {user}", "Failed to transfer the board to {user}" : "Tahvli omandi üleandmine kasutajale {user} ei õnnestunud", "Board owner" : "Tahvli omanik", @@ -275,11 +285,19 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Kommentaare veel pole. Asu aga keskustelema!", "The comment cannot be empty." : "Kommentaar ei saa olla tühi.", "The comment cannot be longer than 1000 characters." : "Kommentaar ei või olla pikem, kui 1000 tähemärki", + "Submit" : "Saada", "Created:" : "Loodud:", "In reply to" : "Vastuseks:", "Cancel reply" : "Katkesta vastamine", "Reply" : "Vasta", "Update" : "Uuenda", + "Assign dependent cards" : "Määra sõltuvaid kaarte", + "Mark as done" : "Märgi tehtuks", + "Mark as not done" : "Märgi mittetehtuks", + "Remove dependency" : "Eemalda sõltuvus", + "Add dependent card" : "Lisa sõltuv kaart", + "Assign a dependent card…" : "Määra sõltuv kaart…", + "Select a dependent card…" : "Vali sõltuv kaart…", "Write a description …" : "Koosta kirjeldus…", "The description has been changed by another user." : "Teine kasutaja on muutnud kirjeldust.", "Could not save description" : "Kirjelduse salvestamine ei õnnestunud", @@ -305,7 +323,6 @@ OC.L10N.register( "Add due date" : "Lisa tähtaeg", "Choose a date" : "Vali kuupäev", "Remove due date" : "Eemalda tähtaeg", - "Mark as done" : "Märgi tehtuks", "Due at:" : "Tähtaeg:", "Not done" : "Pole valmis", "Unarchive card" : "Eemalda kaart arhiivist", @@ -323,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Muuda kaardi pealkirja", "Open link" : "Ava link", "Card deleted" : "Kaart on kustutatud", + "Change card color" : "Muuda kaardi värvi", "Edit title" : "Muuda pealkirja", "Assign to me" : "Anna täitmiseks mulle", "Unassign myself" : "Võta endalt see ülesanne ära", - "Mark as not done" : "Märgi mittetehtuks", "Delete card" : "Kustuta kaart", - "seconds ago" : "sekundit tagasi", "All boards" : "Kõik tahvlid", "Archived boards" : "Arhiveeritud tahvlid", "Shared with you" : "Sinuga jagatud", @@ -336,11 +352,11 @@ OC.L10N.register( "Save board" : "Salvesta tahvel", "Board {0} deleted" : "„{0}“ tahvel on kustutatud", "All cards" : "Kõik kaardid", - "Only assigned cards" : "Vaid kaardid, kellel on täitja olemas", + "Only assigned cards" : "Vaid kaardid, millel on täitja olemas", "No reminder" : "Meeldetuletust pole", "An error occurred" : "Tekkis viga", "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Kas oled kindel, et soovid „{title}“ tahvli kustutada. Sellega saavad kustutatud kõik selle tahvli andmed, sealhulgas arhiveeritud kaardid.", - "Delete the board?" : "Kas kustutame selle tahvli?", + "Delete the board?" : "Kas kustutad selle tahvli?", "Are you sure you want to leave the board {title}?" : "Kas sa oled kindel, et soovid „{title}“ tahvlilt lahkuda?", "Leave the board?" : "Kas lahkud tahvlilt?", "Leave" : "Lahku", @@ -405,7 +421,7 @@ OC.L10N.register( "Link to a card" : "Lisa link kaardile", "Create a card" : "Koosta kaart", "Message from {author} in {conversationName}" : "Sõnum kasutajalt „{author}“ „{conversationName}“ vestluses", - "Something went wrong" : "Midagi läks valesti", + "Something went wrong" : "Vaat kus lops, midagi läks valesti", "Failed to upload {name}" : "„{name}“ üleslaadimine ei õnnestunud", "Maximum file size of {size} exceeded" : "Failide maksimaalne lubatud suurus {size} on ületatud", "Assigned users" : "Ülesannetega kasutajad", @@ -421,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Otsin kasutajaid, gruppe või tiime…", "No participants found" : "Osalejaid ei leidu", "Save" : "Salvesta", + "seconds ago" : "sekundit tagasi", "Today" : "Täna", "Tomorrow" : "Homme", "No due" : "Tähtaega pole" diff --git a/l10n/et_EE.json b/l10n/et_EE.json index f44f8f7488..39f3508fd6 100644 --- a/l10n/et_EE.json +++ b/l10n/et_EE.json @@ -58,14 +58,14 @@ "You have added the attachment {attachment} to card {card}" : "Sa oled lisanud „{card}“ kaardile „{attachment}“ manuse", "{user} has added the attachment {attachment} to card {card}" : "{user} on lisanud „{card}“ kaardile „{attachment}“ manuse", "You have updated the attachment {attachment} on card {card}" : "Sina oled uuendanud „{card}“ kaardil „{attachment}“ manust", - "{user} has updated the attachment {attachment} on card {card}" : "{user} on uuendanud „{card}“ kaardil „{attachment}“ manust", + "{user} has updated the attachment {attachment} on card {card}" : "{user} on uuendanud „{card}“ kaardi „{attachment}“ manust", "You have deleted the attachment {attachment} from card {card}" : "Sina oled kustutanud „{card}“ kaardilt „{attachment}“ manuse", "{user} has deleted the attachment {attachment} from card {card}" : "{user} on kustutanud „{card}“ kaardilt „{attachment}“ manuse", "You have restored the attachment {attachment} to card {card}" : "Sa oled taastanud „{card}“ kaardile „{attachment}“ manuse", "{user} has restored the attachment {attachment} to card {card}" : "{user} on taastanud „{card}“ kaardi „{attachment}“ manuse", "You have commented on card {card}" : "Sina oled kommenteerinud „{card}“ kaarti", "{user} has commented on card {card}" : "{user} on kommenteerinud „{card}“ kaarti", - "Deck" : "Deck", + "Deck" : "Kanban", "Changes in the Deck app" : "Muudatused Kanbani rakenduses", "A board, list or card was changed" : "Tahvel, loend või kaart on muutunud", "A comment was created on a card" : "Kaardile on lisatudkommentaar", @@ -127,8 +127,9 @@ "Card not found" : "Kaarti ei leidu", "Path is already shared with this card" : "Asukoht on juba selle kaardiga jagatud", "Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Kõik tahvlid, mille omanik sa oled, sealhulgas loendid, kaardid, sildid, ülesannete jagamised ja kommentaarid.", "Personal planning and team project organization" : "Projektijuhtimise lahendus sulle ja sinu tiimile", - "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" : "Kanbani rakendus „Deck“ on Nextcloudi lõimitud haldustarvik, mis sobib nii sinu oma tegemiste, kui tiimide ülesannete haldamiseks.\n\n\n- 📥 Lisa oma ülesanded kaartidele ja sea nad õigesse järjestusse\n- 📄 Koosta Markdown-vormingus märkmeid\n- 🔖 Tõhustama halduse nimel kasuta silte\n- 👥 Jaga oma tiimiga, sõpradega või perega\n- 📎 Lisa manuseid ja kasutades Markdown-vormingut lõimi neid teksti\n- 💬 Kasutades kommentaare saad vestelda oma tiimi liikmetega\n- ⚡ Tegevuste voost näed kõiki toimunud muudatusi\n- 🚀 Sinu projekt saab hallatud parimal viisil", + "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" : "Kanbani rakendus „Deck“ on Nextcloudi lõimitud haldustarvik, mis sobib nii sinu oma tegemiste, kui tiimide ülesannete haldamiseks.\n\n\n- 📥 Lisa oma ülesanded kaartidele ja sea nad õigesse järjestusse\n- 📄 Koosta Markdown-vormingus märkmeid\n- 🔖 Tõhusama halduse nimel kasuta silte\n- 👥 Jaga oma tiimiga, sõpradega või perega\n- 📎 Lisa manuseid ja kasutades Markdown-vormingut lõimi neid teksti\n- 💬 Kasutades kommentaare saad vestelda oma tiimi liikmetega\n- ⚡ Tegevuste voost näed kõiki toimunud muudatusi\n- 🚀 Sinu projekt saab hallatud parimal viisil", "Add board" : "Lisa tahvel", "Card details" : "Kaardi üksikasjad", "Select the board to link to a project" : "Vali projektiga seotav tahvel", @@ -144,7 +145,7 @@ "Link to card" : "Lisa link kaardile", "Select a card" : "Vali kaart", "Cancel" : "Katkesta", - "This board is read only" : "See tahvle on vaid loetav", + "This board is read only" : "See tahvel on vaid loetav", "Drop your files to upload" : "Üleslaadimiseks lohista failid siia", "File already exists" : "Fail on juba olemas", "A file with the name {filename} already exists." : "„{filename}“ nimega fail on juba olemas.", @@ -162,7 +163,7 @@ "Unassigned" : "Täitja on määramata", "Filter by status" : "Filtreeri oleku järgi", "Open and completed" : "Avatud ja lõpetatud", - "Open" : "Ava", + "Open" : "Avatud", "Completed" : "Lõpetatud", "Filter by due date" : "Filtreeri tähtaja alusel", "Overdue" : "Üle tähtaja", @@ -173,6 +174,8 @@ "Clear filter" : "Tühjenda filter", "View Modes" : "Vaadete liigid", "Toggle View Modes" : "Lülita vaadete liike sisse/välja", + "Kanban view" : "Kanbani vaade", + "Gantt view" : "Gantti vaade", "Hide archived cards" : "Peida arhiveeritud kaardid", "Show archived cards" : "Näita arhiveeritud kaarte", "Toggle compact mode" : "Lülita kompaktne vaade sisse/välja", @@ -213,13 +216,20 @@ "Tags" : "Sildid", "Deleted items" : "Kustutatud kirjed", "Activity" : "Tegevus", - "Deleted lists" : "Kustutatud loendis", + "Deleted lists" : "Kustutatud loendid", "Undo" : "Tühista", - "Deleted cards" : "Kustutatud kaart", - "Failed to create share with {displayName}" : "Jagamine ei õnnestunud: {displayName}", + "Deleted cards" : "Kustutatud kaardid", + "Hours" : "Tunnid", + "Days" : "Päevad", + "Weeks" : "Nädalad", + "Months" : "Kuud", + "No cards yet" : "Kaarte veel pole", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Määra oma kaartidele algus- ja lõppkupäevad ning näed neid Gantti diagrammil", + "Cards without dates ({count})" : "Ilma kuupäevata kaardid ({count})", + "Failed to create share with {displayName}" : "Jagamine ei õnnestunud kasutajaga {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Kas oled kindel et tahad „{title}“ tahvli omandi üle anda kasutajale „{user}“?", - "Transfer the board." : "Anna omand üle.", - "Transfer" : "Teisalda", + "Transfer the board." : "Anna tahvli omand üle.", + "Transfer" : "Anna omand üle.", "The board has been transferred to {user}" : "Tahvli omand on üle antud kasutajale {user}", "Failed to transfer the board to {user}" : "Tahvli omandi üleandmine kasutajale {user} ei õnnestunud", "Board owner" : "Tahvli omanik", @@ -273,11 +283,19 @@ "No comments yet. Begin the discussion!" : "Kommentaare veel pole. Asu aga keskustelema!", "The comment cannot be empty." : "Kommentaar ei saa olla tühi.", "The comment cannot be longer than 1000 characters." : "Kommentaar ei või olla pikem, kui 1000 tähemärki", + "Submit" : "Saada", "Created:" : "Loodud:", "In reply to" : "Vastuseks:", "Cancel reply" : "Katkesta vastamine", "Reply" : "Vasta", "Update" : "Uuenda", + "Assign dependent cards" : "Määra sõltuvaid kaarte", + "Mark as done" : "Märgi tehtuks", + "Mark as not done" : "Märgi mittetehtuks", + "Remove dependency" : "Eemalda sõltuvus", + "Add dependent card" : "Lisa sõltuv kaart", + "Assign a dependent card…" : "Määra sõltuv kaart…", + "Select a dependent card…" : "Vali sõltuv kaart…", "Write a description …" : "Koosta kirjeldus…", "The description has been changed by another user." : "Teine kasutaja on muutnud kirjeldust.", "Could not save description" : "Kirjelduse salvestamine ei õnnestunud", @@ -303,7 +321,6 @@ "Add due date" : "Lisa tähtaeg", "Choose a date" : "Vali kuupäev", "Remove due date" : "Eemalda tähtaeg", - "Mark as done" : "Märgi tehtuks", "Due at:" : "Tähtaeg:", "Not done" : "Pole valmis", "Unarchive card" : "Eemalda kaart arhiivist", @@ -321,12 +338,11 @@ "Edit card title" : "Muuda kaardi pealkirja", "Open link" : "Ava link", "Card deleted" : "Kaart on kustutatud", + "Change card color" : "Muuda kaardi värvi", "Edit title" : "Muuda pealkirja", "Assign to me" : "Anna täitmiseks mulle", "Unassign myself" : "Võta endalt see ülesanne ära", - "Mark as not done" : "Märgi mittetehtuks", "Delete card" : "Kustuta kaart", - "seconds ago" : "sekundit tagasi", "All boards" : "Kõik tahvlid", "Archived boards" : "Arhiveeritud tahvlid", "Shared with you" : "Sinuga jagatud", @@ -334,11 +350,11 @@ "Save board" : "Salvesta tahvel", "Board {0} deleted" : "„{0}“ tahvel on kustutatud", "All cards" : "Kõik kaardid", - "Only assigned cards" : "Vaid kaardid, kellel on täitja olemas", + "Only assigned cards" : "Vaid kaardid, millel on täitja olemas", "No reminder" : "Meeldetuletust pole", "An error occurred" : "Tekkis viga", "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Kas oled kindel, et soovid „{title}“ tahvli kustutada. Sellega saavad kustutatud kõik selle tahvli andmed, sealhulgas arhiveeritud kaardid.", - "Delete the board?" : "Kas kustutame selle tahvli?", + "Delete the board?" : "Kas kustutad selle tahvli?", "Are you sure you want to leave the board {title}?" : "Kas sa oled kindel, et soovid „{title}“ tahvlilt lahkuda?", "Leave the board?" : "Kas lahkud tahvlilt?", "Leave" : "Lahku", @@ -403,7 +419,7 @@ "Link to a card" : "Lisa link kaardile", "Create a card" : "Koosta kaart", "Message from {author} in {conversationName}" : "Sõnum kasutajalt „{author}“ „{conversationName}“ vestluses", - "Something went wrong" : "Midagi läks valesti", + "Something went wrong" : "Vaat kus lops, midagi läks valesti", "Failed to upload {name}" : "„{name}“ üleslaadimine ei õnnestunud", "Maximum file size of {size} exceeded" : "Failide maksimaalne lubatud suurus {size} on ületatud", "Assigned users" : "Ülesannetega kasutajad", @@ -419,6 +435,7 @@ "Searching for users, groups and teams …" : "Otsin kasutajaid, gruppe või tiime…", "No participants found" : "Osalejaid ei leidu", "Save" : "Salvesta", + "seconds ago" : "sekundit tagasi", "Today" : "Täna", "Tomorrow" : "Homme", "No due" : "Tähtaega pole" diff --git a/l10n/eu.js b/l10n/eu.js index eae61e1c7b..8cd2eea2cd 100644 --- a/l10n/eu.js +++ b/l10n/eu.js @@ -200,6 +200,11 @@ OC.L10N.register( "Deleted lists" : "Ezabatutako zerrendak", "Undo" : "Desegin", "Deleted cards" : "Ezabatutako txartelak", + "Hours" : "Orduak", + "Days" : "Egunak", + "Weeks" : "Asteak", + "Months" : "Hilabeteak", + "No cards yet" : "Ez dago txartelik oraindik", "Failed to create share with {displayName}" : "Ezin izan da {displayName}-(r)ekin partekatzea sortu", "Are you sure you want to transfer the board {title} to {user}?" : "Ziur {title} taula {user}-(r)i transferitu nahi diozula?", "Transfer the board." : "Transferitu taula.", @@ -251,11 +256,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Ez dago iruzkinik oraindik. Hasi eztabaidatzen!", "The comment cannot be empty." : "Iruzkina ezin da hutsik egon.", "The comment cannot be longer than 1000 characters." : "Iruzkina ezin da 1000 karaktere baino luzeagoa izan.", + "Submit" : "Bidali", "Created:" : "Sortua:", "In reply to" : "Honi erantzunez", "Cancel reply" : "Utzi erantzuna bertan behera", "Reply" : "Erantzun", "Update" : "Eguneratu", + "Mark as done" : "Markatu egindako gisa", + "Mark as not done" : "Markatu ez egindako gisa", "Write a description …" : "Idatzi deskribapen bat ...", "Description" : "Deskribapena", "(Unsaved)" : "(Gorde gabe)", @@ -279,7 +287,6 @@ OC.L10N.register( "Add due date" : "Gehitu epemuga", "Choose a date" : "Aukeratu data", "Remove due date" : "Ezabatu epe-muga", - "Mark as done" : "Markatu egindako gisa", "Due at:" : "Epemuga:", "Not done" : "Egin gabe", "Unarchive card" : "Berreskuratu txartela artxibotik", @@ -296,9 +303,7 @@ OC.L10N.register( "Edit title" : "Editatu izenburua", "Assign to me" : "Esleitu niri", "Unassign myself" : "Niri esleitzeari utzi", - "Mark as not done" : "Markatu ez egindako gisa", "Delete card" : "Ezabatu txartela", - "seconds ago" : "segundo lehenago", "All boards" : "Taula guztiak", "Archived boards" : "Artxibatutako taulak", "Shared with you" : "Zurekin partekatua", @@ -370,6 +375,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Erabiltzaileak, taldeak, lantaldeak... bilatzen", "No participants found" : "Ez da parte-hartzailerik aurkitu", "Save" : "Gorde", + "seconds ago" : "segundo lehenago", "Today" : "Gaur", "Tomorrow" : "Bihar", "No due" : "Epemugarik ez" diff --git a/l10n/eu.json b/l10n/eu.json index 868e7cb368..61f3d925de 100644 --- a/l10n/eu.json +++ b/l10n/eu.json @@ -198,6 +198,11 @@ "Deleted lists" : "Ezabatutako zerrendak", "Undo" : "Desegin", "Deleted cards" : "Ezabatutako txartelak", + "Hours" : "Orduak", + "Days" : "Egunak", + "Weeks" : "Asteak", + "Months" : "Hilabeteak", + "No cards yet" : "Ez dago txartelik oraindik", "Failed to create share with {displayName}" : "Ezin izan da {displayName}-(r)ekin partekatzea sortu", "Are you sure you want to transfer the board {title} to {user}?" : "Ziur {title} taula {user}-(r)i transferitu nahi diozula?", "Transfer the board." : "Transferitu taula.", @@ -249,11 +254,14 @@ "No comments yet. Begin the discussion!" : "Ez dago iruzkinik oraindik. Hasi eztabaidatzen!", "The comment cannot be empty." : "Iruzkina ezin da hutsik egon.", "The comment cannot be longer than 1000 characters." : "Iruzkina ezin da 1000 karaktere baino luzeagoa izan.", + "Submit" : "Bidali", "Created:" : "Sortua:", "In reply to" : "Honi erantzunez", "Cancel reply" : "Utzi erantzuna bertan behera", "Reply" : "Erantzun", "Update" : "Eguneratu", + "Mark as done" : "Markatu egindako gisa", + "Mark as not done" : "Markatu ez egindako gisa", "Write a description …" : "Idatzi deskribapen bat ...", "Description" : "Deskribapena", "(Unsaved)" : "(Gorde gabe)", @@ -277,7 +285,6 @@ "Add due date" : "Gehitu epemuga", "Choose a date" : "Aukeratu data", "Remove due date" : "Ezabatu epe-muga", - "Mark as done" : "Markatu egindako gisa", "Due at:" : "Epemuga:", "Not done" : "Egin gabe", "Unarchive card" : "Berreskuratu txartela artxibotik", @@ -294,9 +301,7 @@ "Edit title" : "Editatu izenburua", "Assign to me" : "Esleitu niri", "Unassign myself" : "Niri esleitzeari utzi", - "Mark as not done" : "Markatu ez egindako gisa", "Delete card" : "Ezabatu txartela", - "seconds ago" : "segundo lehenago", "All boards" : "Taula guztiak", "Archived boards" : "Artxibatutako taulak", "Shared with you" : "Zurekin partekatua", @@ -368,6 +373,7 @@ "Searching for users, groups and teams …" : "Erabiltzaileak, taldeak, lantaldeak... bilatzen", "No participants found" : "Ez da parte-hartzailerik aurkitu", "Save" : "Gorde", + "seconds ago" : "segundo lehenago", "Today" : "Gaur", "Tomorrow" : "Bihar", "No due" : "Epemugarik ez" diff --git a/l10n/fa.js b/l10n/fa.js index 2a695e9805..820f126c36 100644 --- a/l10n/fa.js +++ b/l10n/fa.js @@ -1,328 +1,445 @@ 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} تختهٔ {board} را بایگانی کرد", - "You have unarchived the board {board}" : "تختهٔ {board} را از بایگانی خارج کردید", - "{user} has unarchived the board {before}" : "{user} تختهٔ {board} را از بایگانی خارج کرد", - "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}" : "شما نام برگه را {پیش از} به {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} on board {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} on board {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} را روی {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}" : "شما {کاربر اختصاص یافته} را به برگه {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}" : "شما {تخصیص کاربر} را از برگه {card} در تخته {board} لغو کرده‌اید.", - "{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} تخصیص {assigneduser} را از برگه {card} در تخته لغو کرده است", - "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} نظر داده است", - "Deck" : "برگه‌دان", - "Changes in the Deck app" : "تغییرات در برگه‌دان", - "A comment was created on a card" : "یک نظر روی یک برگه ایجاد شد", - "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" : "حداکثر حجم قابل بار گذاری از طریق HTML MAX_FILE_SIZE است", - "The file was only partially uploaded" : "پرونده فقط به صورت جزئی و ناقص بارگذاری شد", - "No file was uploaded" : "هیچ پرونده‌ای بارگذاری نشد", - "Missing a temporary folder" : "یک پوشه موقت گم شده", - "Could not write file to disk" : "عدم موفقیت در نوشتن پرونده روی حافظه", - "A PHP extension stopped the file upload" : "یک افزونه پی‌اچ‌پی مانع بارگذاری پرونده شد", - "No file uploaded or file size exceeds maximum of %s" : "پرونده‌ای بارگذاری نشد و یا حجم پرونده بیش از بیشینه مجاز %s بود", - "Upcoming cards" : "برگه‌های آینده", - "Load more" : "Load more", - "The card \"%s\" on \"%s\" has been assigned to you by %s." : "The card \"%s\" on \"%s\" has been assigned to you by %s.", - "{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} برگه {deck-card} در {deck-board} را به شما اختصاص داده است.", - "The card {deck-card} on {deck-board} has reached its due date." : "برگه {deck-card} در {deck-board} به تاریخ سررسید خود رسیده است.", - "%s has mentioned you in a comment on \"%s\"." : "%s has mentioned you in a comment on \"%s\".", - "{user} has mentioned you in a comment on {deck-card}." : "{user} از شما در نظری در {deck-card} نام برده است.", - "The board \"%s\" has been shared with you by %s." : "The board \"%s\" has been shared with you by %s.", - "{user} has shared {deck-board} with you." : "{user} {deck-board} را با شما به اشتراک گذاشته است.", - "Deck board" : "تخته deck", - "Owned by %1$s" : "Owned by %1$s", - "Deck boards, cards and comments" : "Deck boards, cards and comments", - "From %1$s, in %2$s/%3$s, owned by %4$s" : "From %1$s, in %2$s/%3$s, owned by %4$s", - "Create a new deck card" : "Create a new deck card", - "Card comments" : "دیدگاه‌های برگه", - "%s on %s" : "%s on %s", - "Deck boards and cards" : "Deck boards and cards", - "No data was provided to create an attachment." : "هیچ داده ای برای ایجاد پیوست ارائه نشد.", + "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 marked the card {card} as done in list {stack} on board {board}" : "شما کارت {card} را در لیست {stack} در بورد {board} به عنوان انجام شده علامت زده‌اید", + "{user} has marked card {card} as done in list {stack} on board {board}" : "{user} کارت {card} را در لیست {stack} در بورد {board} به عنوان انجام شده علامت زده است", + "You have marked the card {card} as undone in list {stack} on board {board}" : "شما کارت {card} را در لیست {stack} در بورد {board} به عنوان انجام نشده علامت زده‌اید", + "{user} has marked the card {card} as undone 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} را به {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}" : "شما روی کارت {card} نظر داده‌اید", + "{user} has commented on card {card}" : "کاربر {user} روی کارت {card} نظر داده است", + "Deck" : "کارتابل", + "Changes in the Deck app" : "تغییرات در برنامه کارتابل", + "A board, list or card was changed" : "یک بورد، لیست یا کارت تغییر کرد", + "A comment was created on a card" : "یک نظر روی یک کارت ایجاد شد", + "A card description has been changed" : "یک توضیحات کارت تغییر کرده است", + "The file was uploaded" : "فایل آپلود شد", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "فایل آپلود شده از دستور upload_max_filesize در php.ini فراتر می‌رود", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "فایل آپلود شده از دستور MAX_FILE_SIZE که در فرم HTML مشخص شده بود فراتر می‌رود", + "The file was only partially uploaded" : "فایل فقط به صورت جزئی آپلود شد", + "No file was uploaded" : "هیچ فایلی آپلود نشد", + "Missing a temporary folder" : "پوشه موقت وجود ندارد", + "Could not write file to disk" : "نمی‌توان فایل را روی دیسک نوشت", + "A PHP extension stopped the file upload" : "یک افزونه PHP آپلود فایل را متوقف کرد", + "No file uploaded or file size exceeds maximum of %s" : "هیچ فایلی آپلود نشد یا اندازه فایل از حداکثر %s فراتر می‌رود", + "Invalid file type. Only JSON files are allowed." : "نوع فایل نامعتبر است. فقط فایل‌های JSON مجاز هستند.", + "Invalid JSON data" : "داده JSON نامعتبر است", + "Failed to import board" : "وارد کردن بورد ناموفق بود", + "Cards due today" : "کارت‌های موعد امروز", + "Cards due tomorrow" : "کارت‌های موعد فردا", + "Upcoming cards" : "کارت‌های آینده", + "Load more" : "بارگذاری بیشتر", + "Welcome to Nextcloud Deck!" : "به کارتابل نکست‌کلود خوش آمدید!", + "The card \"%s\" on \"%s\" has been assigned to you by %s." : "کارت \"%s\" در \"%s\" توسط %s به شما اختصاص داده شده است.", + "{user} has assigned the card {deck-card} on {deck-board} to you." : "کاربر {user} کارت {کارتابل-card} را در {کارتابل-board} به شما اختصاص داده است.", + "The card \"%1$s\" on \"%2$s\" has reached its due date." : "کارت \"%1$s\" در \"%2$s\" به تاریخ سررسید خود رسیده است.", + "The card {deck-card} on {deck-board} has reached its due date." : "کارت {کارتابل-card} در {کارتابل-board} به تاریخ سررسید خود رسیده است.", + "%s has mentioned you in a comment on \"%s\"." : "%s در یک نظر روی \"%s\" از شما نام برده است.", + "{user} has mentioned you in a comment on {deck-card}." : "کاربر {user} در یک نظر روی {کارتابل-card} از شما نام برده است.", + "The board \"%s\" has been shared with you by %s." : "بورد \"%s\" توسط %s با شما به اشتراک گذاشته شده است.", + "{user} has shared {deck-board} with you." : "کاربر {user} بورد {کارتابل-board} را با شما به اشتراک گذاشته است.", + "The remote board %1$s has been shared with you by %2$s" : "بورد راه دور %1$s توسط %2$s با شما به اشتراک گذاشته شده است", + "Deck board" : "بورد کارتابل", + "Owned by %1$s" : "متعلق به %1$s", + "Deck boards, cards and comments" : "بوردها، کارت‌ها و نظرات کارتابل", + "From %1$s, in %2$s/%3$s, owned by %4$s" : "از %1$s، در %2$s/%3$s، متعلق به %4$s", + "Create a new deck card" : "ایجاد کارت جدید کارتابل", + "Card comments" : "نظرات کارت", + "%s on %s" : "%s در %s", + "Deck boards and cards" : "بردها و کارت‌های کارتابل", + "No data was provided to create an attachment." : "داده‌ای برای ایجاد پیوست ارائه نشد.", "Finished" : "تمام شده", - "To review" : "برای بازبینی", - "Action needed" : "نیازمند اقدام", - "Later" : "بعدا", + "To review" : "برای بررسی", + "Action needed" : "نیاز به اقدام", + "Later" : "بعداً", "copy" : "کپی", - "To Do" : "To Do", - "Done" : "انجام شد", - "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s.", + "Read more inside" : "داخل را بیشتر بخوانید", + "Custom lists - click to rename!" : "لیست‌های سفارشی - برای تغییر نام کلیک کنید!", + "To Do" : "انجام دادنی", + "In Progress" : "در حال انجام", + "Done" : "انجام شده", + "1. Open to learn more about boards and cards" : "۱. برای آشنایی بیشتر با بردها و کارت‌ها باز کنید", + "2. Drag cards left and right, up and down" : "۲. کارت‌ها را به چپ و راست، بالا و پایین بکشید", + "3. Apply rich formatting and link content" : "۳. قالب‌بندی پیشرفته و پیوند محتوا اعمال کنید", + "4. Share, comment and collaborate!" : "۴. اشتراک‌گذاری، نظر دهید و همکاری کنید!", + "Create your first card!" : "اولین کارت خود را ایجاد کنید!", + "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "این نظر بیش از %s کاراکتر دارد.", "Attachments" : "پیوست‌ها", - "File" : "پرونده", - "Card not found" : "برگه یافت نشد", - "Path is already shared with this card" : "مسیر قبلاً با این برگه به اشتراک گذاشته شده است", - "Invalid date, date format must be YYYY-MM-DD" : "تاریخ نامعتبر است، قالب تاریخ باید YYYY-MM-DD باشد", - "Personal planning and team project organization" : "برنامه‌ریزی شخصی و سازمان‌دهی کار گروهی", + "File" : "فایل", + "date" : "تاریخ", + "Card not found" : "کارت یافت نشد", + "Path is already shared with this card" : "مسیر قبلاً با این کارت به اشتراک گذاشته شده است", + "Invalid date, date format must be YYYY-MM-DD" : "تاریخ نامعتبر، فرمت تاریخ باید YYYY-MM-DD باشد", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "تمام بردهای متعلق به شما شامل استک‌ها، کارت‌ها، برچسب‌ها، انتساب‌ها و نظرات", + "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" : "برگه‌دان یک ابزار سازمان‌دهی سبک کانبان است که هدف آن برنامه‌ریزی شخصی و سازمان‌دهی پروژه برای گروه‌های مرتبط با Nextcloud است.\n\n\n- 📥 وظایف خود را به برگه‌ها اضافه کنید و آن‌ها را مرتب کنید\n- 📄 یادداشت‌های اضافی را در Markdown یادداشت کنید\n- 🔖 برچسب‌هایی را برای سازمان‌دهی بهتر اختصاص دهید\n- 👥 با گروه، دوستان یا خانوادهٔ خود به اشتراک بگذارید\n- 📎 فایل‌ها را ضمیمه کنید و آنها را در توضیحات Markdown خود قرار دهید\n- 💬 با استفاده از نظرات با تیم خود بحث کنید\n- ⚡ تغییرات در جریان فعالیت را پیگیری کنید\n- 🚀 پروژه خود را سازمان‌دهی کنید", - "Add board" : "افزودن تخته", - "Card details" : "جزئیات برگه", - "Select the board to link to a project" : "تخته‌ای را برای ایجاد پیوند با یک پروژه انتخاب کنید", - "Search by board title" : "جستجو بر اساس عنوان تخته", - "Select board" : "انتخاب تخته", - "Select a board" : "انتخاب یک تخته", - "No lists available" : "هیچ فهرستی در دسترس نیست", - "Select a list" : "یک فهرست برگزینید", - "Move card" : "انتقال برگه", - "Select the card to link to a project" : "برگه‌ای را برای ایجاد پیوند با یک پروژه انتخاب کنید", - "Link to card" : "پیوند به برگه", - "Select a card" : "انتخاب یک برگه", + "Add board" : "افزودن برد", + "Card details" : "جزئیات کارت", + "Select the board to link to a project" : "برد مورد نظر برای پیوند به پروژه را انتخاب کنید", + "Search by board title" : "جستجو بر اساس عنوان برد", + "Select board" : "انتخاب برد", + "Move/copy card" : "جابجایی/کپی کارت", + "Select a board" : "یک برد انتخاب کنید", + "No lists available" : "هیچ لیستی موجود نیست", + "Select a list" : "یک لیست انتخاب کنید", + "Move card" : "جابجایی کارت", + "Copy card" : "کپی کارت", + "Select the card to link to a project" : "کارت مورد نظر برای پیوند به پروژه را انتخاب کنید", + "Link to card" : "پیوند به کارت", + "Select a card" : "یک کارت انتخاب کنید", "Cancel" : "لغو", - "This board is read only" : "تخته، فقط خواندنی است", - "Drop your files to upload" : "برای بارگذاری، پرونده‌ها را اینجا رها کنید", - "File already exists" : "پرونده از قبل موجود است", - "A file with the name {filename} already exists." : "پرونده‌ای با نام {filename} از قبل موجود است.", - "Do you want to overwrite it?" : "می‌خواهید روی آن بازنویسی شود؟", - "Overwrite file" : "بازنویسی پرونده", - "Keep existing file" : "پرونده موجود حفظ شود", - "Add card" : "افزودن برگه", + "This board is read only" : "این برد فقط خواندنی است", + "Drop your files to upload" : "فایل‌های خود را برای بارگذاری رها کنید", + "File already exists" : "فایل از قبل وجود دارد", + "A file with the name {filename} already exists." : "فایلی با نام {filename} از قبل وجود دارد.", + "Do you want to overwrite it?" : "آیا می‌خواهید آن را بازنویسی کنید؟", + "Overwrite file" : "بازنویسی فایل", + "Keep existing file" : "نگه‌داشتن فایل موجود", + "Add card" : "افزودن کارت", "Archived cards" : "کارت‌های بایگانی‌شده", - "Add list" : "افزودن فهرست", - "List name" : "نام فهرست", - "Active filters" : "Active filters", - "Apply filter" : "اعمال پالایه", - "Filter by tag" : "پالایش برحسب برچسب", - "Filter by assigned user" : "فیلتر بر اساس کاربر اختصاص داده شده", - "Unassigned" : "اختصاص داده نشده است", - "Open" : "باز کردن", - "Completed" : "نکمیل شده", - "Filter by due date" : "فیلتر بر اساس تاریخ مقرر", - "Overdue" : "تاریخ گذشته", + "Add list" : "افزودن لیست", + "List name" : "نام لیست", + "Active filters" : "فیلترهای فعال", + "Apply filter" : "اعمال فیلتر", + "Filter by tag" : "فیلتر بر اساس برچسب", + "Filter by assigned user" : "فیلتر بر اساس کاربر تعیین‌شده", + "Unassigned" : "تعیین‌نشده", + "Filter by status" : "فیلتر بر اساس وضعیت", + "Open and completed" : "باز و تکمیل‌شده", + "Open" : "باز", + "Completed" : "تکمیل‌شده", + "Filter by due date" : "فیلتر بر اساس تاریخ سررسید", + "Overdue" : "عقب‌افتاده", "Next 24 hours" : "۲۴ ساعت آینده", "Next 7 days" : "۷ روز آینده", "Next 30 days" : "۳۰ روز آینده", "No due date" : "بدون تاریخ سررسید", - "Clear filter" : "پاک کردن پالایه", - "Hide archived cards" : "برگه‌های بایگانی شده را مخفی کنید", - "Show archived cards" : "نمایش کارت‌های بایگانی شده", + "Clear filter" : "پاک کردن فیلتر", + "View Modes" : "حالت‌های نمایش", + "Toggle View Modes" : "تغییر حالت نمایش", + "Kanban view" : "نمای Kanban", + "Gantt view" : "نمای Gantt", + "Hide archived cards" : "مخفی‌سازی کارت‌های بایگانی‌شده", + "Show archived cards" : "نمایش کارت‌های بایگانی‌شده", "Toggle compact mode" : "تغییر حالت فشرده", + "Hide card cover images" : "مخفی‌سازی تصاویر جلد کارت", + "Show card cover images" : "نمایش تصاویر جلد کارت", "Open details" : "باز کردن جزئیات", "Details" : "جزئیات", - "Deck settings" : "Deck settings", + "Deck settings" : "تنظیمات کارتابل", "General" : "عمومی", - "Use bigger card view" : "از نمای برگهٔ بزرگتر استفاده کنید", + "Use bigger card view" : "استفاده از نمای بزرگ‌تر کارت", "Appearance" : "ظاهر", - "Show card ID badge" : "Show card ID badge", - "Show boards in calendar/tasks" : "نمایش تابلوها در تقویم/ وظایف", + "Show card ID badge" : "نمایش نشان شناسه کارت", + "Show boards in calendar/tasks" : "نمایش بوردها در تقویم/وظایف", + "Admin settings" : "تنظیمات مدیر", + "Limit board creation to some groups" : "محدود کردن ایجاد بورد به برخی گروه‌ها", + "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "کاربران خارج از آن گروه‌ها نمی‌توانند بوردهای خود را ایجاد کنند، اما همچنان می‌توانند روی بوردهایی که با آن‌ها به اشتراک گذاشته شده کار کنند.", + "Enable federation" : "فعال‌سازی فدراسیون", + "Board actions" : "اقدامات بورد", + "Scroll sideways" : "پیمایش به پهلو", + "Navigate between cards" : "حرکت بین کارت‌ها", + "Close card details" : "بستن جزئیات کارت", "Search" : "جستجو", - "Show those shortcuts" : "نمایش میانبرها", - "Currently present people" : "Currently present people", - "Loading board" : "بارکردن تخته", - "Board not found" : "تخته یافت نشد", - "Create a new list to add cards to this board" : "یک فهرست جدید برای افزود برگه به این تابلو ایجاد کنید", - "Sharing" : "هم‌رسانی", + "Show card filters" : "نمایش فیلترهای کارت", + "Clear card filters" : "پاک کردن فیلترهای کارت", + "Show those shortcuts" : "نمایش میانبرهای موجود", + "Card actions" : "عملیات کارت", + "Open card details" : "باز کردن جزئیات کارت", + "Edit the card title" : "ویرایش عنوان کارت", + "Assign yourself to the current card" : "اختصاص خود به کارت فعلی", + "Archive/unarchive the current card" : "بایگانی/خروج از بایگانی کارت فعلی", + "Mark card as completed/not completed" : "علامت‌گذاری کارت به عنوان تکمیل‌شده/تکمیل‌نشده", + "Open card menu" : "باز کردن منوی کارت", + "Currently present people" : "افراد حاضر در حال حاضر", + "Loading board" : "در حال بارگذاری برد", + "Board not found" : "برد پیدا نشد", + "Create a new list to add cards to this board" : "یک لیست جدید برای افزودن کارت به این برد ایجاد کنید", + "Sharing" : "اشتراک‌گذاری", "Tags" : "برچسب‌ها", - "Deleted items" : "موارد حذف شده", - "Activity" : "فعالیت", - "Deleted lists" : "فهرست‌های پاک شده", - "Undo" : "برگرداندن", - "Deleted cards" : "کارت‌های پاک شده", - "Failed to create share with {displayName}" : "اشتراک‌گذاری با {displayName} ایجاد نشد", - "Are you sure you want to transfer the board {title} to {user}?" : "Are you sure you want to transfer the board {title} to {user}?", - "Transfer the board." : "Transfer the board.", + "Deleted items" : "موارد حذف‌شده", + "Activity" : "فعالیت‌ها", + "Deleted lists" : "لیست‌های حذف‌شده", + "Undo" : "بازگردانی", + "Deleted cards" : "کارت‌های حذف‌شده", + "Hours" : "ساعت‌ها", + "Days" : "روزها", + "Weeks" : "هفته‌ها", + "Months" : "ماه‌ها", + "No cards yet" : "هنوز کارتی وجود ندارد", + "Set a start date and due date on your cards to see them on the Gantt chart" : "برای مشاهده کارت‌ها در نمودار گانت، تاریخ شروع و سررسید را روی کارت‌های خود تنظیم کنید", + "Cards without dates ({count})" : "کارت‌های بدون تاریخ ({count})", + "Failed to create share with {displayName}" : "ایجاد اشتراک با {displayName} انجام نشد", + "Are you sure you want to transfer the board {title} to {user}?" : "آیا مطمئن هستید که می‌خواهید برد {title} را به {user} منتقل کنید؟", + "Transfer the board." : "انتقال برد.", "Transfer" : "انتقال", - "The board has been transferred to {user}" : "The board has been transferred to {user}", - "Failed to transfer the board to {user}" : "Failed to transfer the board to {user}", - "Board owner" : "مالک تخته", + "The board has been transferred to {user}" : "برد به {user} منتقل شد", + "Failed to transfer the board to {user}" : "انتقال برد به {user} انجام نشد", + "Board owner" : "مالک برد", "(Group)" : "(گروه)", + "(Team)" : "(تیم)", "(remote)" : "(از راه دور)", - "Can edit" : "می‌تواند ویرایش کند", - "Can share" : "می‌تواند هم‌رسانی کند", - "Can manage" : "می‌تواند مدیریت کند", + "Can edit" : "قابلیت ویرایش", + "Can share" : "قابلیت اشتراک‌گذاری", + "Can manage" : "قابلیت مدیریت", "Owner" : "مالک", "Delete" : "حذف", - "List deleted" : "فهرست پاک شد", - "Edit list title" : "Edit list title", - "Archive all cards" : "همهٔ برگه‌ها را بایگانی کنید!", - "Unarchive all cards" : "Unarchive all cards", - "Delete list" : "حذف فهرست", - "Archive all cards in this list" : "تمام برگه‌های موجود در این فهرست را بایگانی کنید", - "Unarchive all cards in this list" : "Unarchive all cards in this list", - "Add a new card" : "افزودن یک کارت جدید", - "Card name" : "نام برگه", - "title and color value must be provided" : "نام و رنگ باید مشخص شود", + "List deleted" : "لیست حذف شد", + "Edit list title" : "ویرایش عنوان لیست", + "Archive all cards" : "بایگانی همه کارت‌ها", + "Unarchive all cards" : "خروج همه کارت‌ها از بایگانی", + "Do not set cards as \"done\"" : "کارت‌ها را به عنوان «انجام‌شده» تنظیم نکن", + "Set cards as \"done\"" : "کارت‌ها را به عنوان «انجام‌شده» تنظیم کن", + "Delete list" : "حذف لیست", + "Archive all cards in this list" : "بایگانی همه کارت‌های این لیست", + "Unarchive all cards in this list" : "خارج کردن همه کارت‌ها از بایگانی در این لیست", + "Add a new card" : "افزودن کارت جدید", + "Card name" : "نام کارت", + "title and color value must be provided" : "عنوان و مقدار رنگ باید ارائه شود", "Edit" : "ویرایش", - "Add a new tag" : "افزودن یک برچسب جدید", - "Board name" : "نامِ تخته", + "Add a new tag" : "افزودن برچسب جدید", + "Board name" : "نام بورد", "Members" : "اعضا", + "Assign to users/groups/team" : "اختصاص به کاربران/گروه‌ها/تیم", "Assign a user to this card…" : "اختصاص یک کاربر به این برگه…", + "Select a user to assign to this card…" : "یک کاربر برای تخصیص به این کارت انتخاب کنید…", "File to share" : "فایل برای اشتراک‌گذاری", - "Invalid path selected" : "مسیر نامعتبر انتخاب شده است", - "Upload new files" : "فایل‌های جدید را آپلود کنید", + "Invalid path selected" : "مسیر نامعتبر انتخاب شد", + "Upload new files" : "بارگذاری فایل‌های جدید", "Share from Files" : "اشتراک‌گذاری از فایل‌ها", - "Pending share" : "سهم معلق", + "Pending share" : "اشتراک در انتظار", "Add this attachment" : "افزودن این پیوست", "Show in Files" : "نمایش در فایل‌ها", - "Download" : "بارگیری", + "Download" : "دانلود", "Remove attachment" : "حذف پیوست", "Delete Attachment" : "حذف پیوست", "Restore Attachment" : "بازیابی پیوست", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "تغییر‌یافته: {modifiedDate} ⸱ ایجاد‌شده: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "تغییر یافته: {modifiedDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "تغییر یافته: {modifiedDate}", "The title cannot be empty." : "عنوان نمی‌تواند خالی باشد.", - "Open in sidebar view" : "در نمای نوار کناری باز کنید", - "Open in bigger view" : "در نمای بزرگتر باز کنید", + "Cannot close unsaved card!" : "نمی‌توان کارت ذخیره‌نشده را بست!", + "Open in sidebar view" : "باز کردن در نمای کناری", + "Open in bigger view" : "باز کردن در نمای بزرگ‌تر", "Comments" : "نظرات", - "Failed to load comments" : "نظرات بارگیری نشد", - "No comments yet. Begin the discussion!" : "هنوز نظری وجود ندارد. بحثی را آغاز کنید!", + "Failed to load comments" : "بارگذاری نظرات ناموفق بود", + "No comments yet. Begin the discussion!" : "هنوز نظری وجود ندارد. بحث را شروع کنید!", "The comment cannot be empty." : "نظر نمی‌تواند خالی باشد.", - "The comment cannot be longer than 1000 characters." : "نظر نمی‌تواند طولانی‌تر از ۱۰۰۰ حرف باشد.", - "Created:" : "ایجاد شده توسط:", + "The comment cannot be longer than 1000 characters." : "نظر نمی‌تواند بیش از ۱۰۰۰ کاراکتر باشد.", + "Submit" : "ارسال", + "Created:" : "ایجاد شده:", "In reply to" : "در پاسخ به", "Cancel reply" : "لغو پاسخ", "Reply" : "پاسخ", "Update" : "به‌روزرسانی", + "Assign dependent cards" : "اختصاص کارت‌های وابسته", + "Mark as done" : "علامت‌گذاری به عنوان انجام شده", + "Mark as not done" : "علامت‌گذاری به عنوان انجام نشده", + "Remove dependency" : "حذف وابستگی", + "Add dependent card" : "افزودن کارت وابسته", + "Assign a dependent card…" : "تخصیص یک کارت وابسته…", + "Select a dependent card…" : "یک کارت وابسته انتخاب کنید…", "Write a description …" : "توضیح بنویس…", + "The description has been changed by another user." : "توضیحات توسط کاربر دیگری تغییر یافته است.", + "Could not save description" : "ذخیره توضیحات ممکن نشد", "Description" : "توضیحات", "(Unsaved)" : "(ذخیره نشده)", "(Saving…)" : "(در حال ذخیره...)", "Formatting help" : "راهنمای قالب‌بندی", "Edit description" : "ویرایش توضیحات", - "View description" : "نمایش توضیحات", + "View description" : "مشاهده توضیحات", "Add Attachment" : "افزودن پیوست", "Choose attachment" : "انتخاب پیوست", - "Select Date" : "تاریخ را انتخاب کنید", - "Later today – {timeLocale}" : "Later today – {timeLocale}", - "Tomorrow – {timeLocale}" : "Tomorrow – {timeLocale}", - "This weekend – {timeLocale}" : "This weekend – {timeLocale}", - "Next week – {timeLocale}" : "Next week – {timeLocale}", - "Assign a due date to this card…" : "Assign a due date to this card…", - "Set a due date" : "تاریخ سررسید را تعیین کنید", - "Remove due date" : "تاریخ سررسید را حذف کنید", - "Mark as done" : "علامت گذاری به عنوان انجام شده", - "Unarchive card" : "برگه را از بایگانی خارج کنید", - "Archive card" : "بایگانی برگه", + "Select Date" : "انتخاب تاریخ", + "Later today – {timeLocale}" : "امروز دیرتر – {timeLocale}", + "Set due date for later today" : "تنظیم مهلت برای امروز بعداً", + "Tomorrow – {timeLocale}" : "فردا – {timeLocale}", + "Set due date for tomorrow" : "تنظیم مهلت برای فردا", + "This weekend – {timeLocale}" : "این آخر هفته – {timeLocale}", + "Set due date for this weekend" : "تنظیم مهلت برای این آخر هفته", + "Next week – {timeLocale}" : "هفتهٔ آینده – {timeLocale}", + "Set due date for next week" : "تنظیم مهلت برای هفته آینده", + "Assign a due date to this card…" : "تعیین مهلت برای این کارت…", + "Set a due date" : "تنظیم مهلت", + "Add due date" : "افزودن مهلت", + "Choose a date" : "انتخاب تاریخ", + "Remove due date" : "حذف مهلت", + "Due at:" : "مهلت در:", + "Not done" : "انجام نشده", + "Unarchive card" : "خارج کردن کارت از بایگانی", + "Archive card" : "بایگانی کارت", + "Assign a start date to this card…" : "تعیین تاریخ شروع برای این کارت…", + "Set a start date" : "تنظیم تاریخ شروع", + "Add start date" : "افزودن تاریخ شروع", + "Remove start date" : "حذف تاریخ شروع", "Assign a tag to this card…" : "یک برچسب به این برگه اختصاص دهید…", + "Select or create a tag…" : "یک برچسب انتخاب یا ایجاد کنید…", + "Create a new tag:" : "ایجاد برچسب جدید:", "(group)" : "(گروه)", - "{count} comments, {unread} unread" : "{count} نظر، { خوانده نشده} خوانده نشده", - "Todo items" : "Todo items", - "Edit card title" : "Edit card title", - "Open link" : "لینک را باز کنید", - "Card deleted" : "برگه پاک شد", + "{count} comments, {unread} unread" : "{count} نظر، {unread} خوانده نشده", + "Todo items" : "موارد انجام دادنی", + "Edit card title" : "ویرایش عنوان کارت", + "Open link" : "باز کردن پیوند", + "Card deleted" : "کارت حذف شد", + "Change card color" : "تغییر رنگ کارت", "Edit title" : "ویرایش عنوان", - "Assign to me" : "به من اختصاص دهید", - "Unassign myself" : "واگذاری به خودم را لغو می‌کنم", - "Delete card" : "حذف برگه", - "seconds ago" : "ثانیه‌هایی پیش", - "All boards" : "همه تخته‌ها", - "Archived boards" : "تخته‌های بایگانی شده", - "Shared with you" : "با شما به اشتراک گذاشته شده است", - "Cancel edit" : "Cancel edit", - "Board {0} deleted" : "Board {0} deleted", - "All cards" : "All cards", - "Only assigned cards" : "Only assigned cards", - "No reminder" : "No reminder", - "An error occurred" : "خطایی روی داد", - "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards.", - "Delete the board?" : "Delete the board?", - "Leave" : "خروج", - "Board details" : "Board details", + "Assign to me" : "اختصاص به من", + "Unassign myself" : "لغو اختصاص خودم", + "Delete card" : "حذف کارت", + "All boards" : "همه بوردها", + "Archived boards" : "بوردهای بایگانی شده", + "Shared with you" : "اشتراک‌گذاری شده با شما", + "Cancel edit" : "لغو ویرایش", + "Save board" : "ذخیره بورد", + "Board {0} deleted" : "تخته {0} حذف شد", + "All cards" : "همه کارت‌ها", + "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 including archived cards." : "آیا مطمئن هستید که می‌خواهید تخته {title} را حذف کنید؟ این کار تمام داده‌های این تخته از جمله کارت‌های بایگانی‌شده را پاک می‌کند.", + "Delete the board?" : "تخته حذف شود؟", + "Are you sure you want to leave the board {title}?" : "آیا مطمئن هستید که می‌خواهید تخته {title} را ترک کنید؟", + "Leave the board?" : "تخته ترک شود؟", + "Leave" : "ترک", + "Failed to leave the board" : "ترک تخته انجام نشد", + "Exporting board..." : "در حال خروجی گرفتن از تخته...", + "Board details" : "جزئیات تخته", "Edit board" : "ویرایش تخته", - "Clone board" : "تخته شبیه‌سازی", - "Unarchive board" : "Unarchive board", - "Archive board" : "تخته", - "Export board" : "Export board", - "Turn on due date reminders" : "Turn on due date reminders", - "Turn off due date reminders" : "Turn off due date reminders", - "Due date reminders" : "Due date reminders", - "Assigned cards" : "Assigned cards", + "Clone board" : "کپی کردن تخته", + "Unarchive board" : "خارج کردن تخته از بایگانی", + "Archive board" : "بایگانی تخته", + "Export board" : "خروجی گرفتن از تخته", + "Turn on due date reminders" : "فعال‌سازی یادآوری مهلت‌ها", + "Turn off due date reminders" : "غیرفعال‌سازی یادآوری مهلت‌ها", + "Remove as default board" : "حذف به‌عنوان تخته پیش‌فرض", + "Set as default board" : "تنظیم به‌عنوان تخته پیش‌فرض", + "Due date reminders" : "یادآوری مهلت‌ها", + "Assigned cards" : "کارت‌های تعیین‌شده", "No notifications" : "بدون اعلان", "Delete board" : "حذف تخته", - "Clone cards" : "شبیه سازی کارت", - "Advanced options" : "گزینه‌های پیش‌رفته", - "Clone" : "شبیه سازی", - "Export as CSV" : "Export as CSV", - "Export" : "دریافت خروجی", - "Loading filtered view" : "Loading filtered view", - "Search for {searchQuery} in all boards" : "Search for {searchQuery} in all boards", - "No results found" : "هیچ نتیجه ای یافت نشد", - "Deck board {name}\n* Last modified on {lastMod}" : "Deck board {name}\n* Last modified on {lastMod}", - "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments", - "{nbCards} cards" : "{nbCards} cards", - "Due on {date}" : "Due on {date}", - "{stack} in {board}" : "{stack} in {board}", - "Click to expand description" : "Click to expand description", - "Click to expand comment" : "Click to expand comment", - "Create card" : "ایجاد برگه", - "Create a new card" : "یک برگهٔ جدید بسازید", - "Card title" : "عنوان برگه", + "Leave board" : "ترک تخته", + "Importing board..." : "در حال وارد کردن تخته...", + "Board imported successfully" : "تخته با موفقیت وارد شد", + "Import board" : "وارد کردن تخته", + "Clone {boardTitle}" : "کپی {boardTitle}", + "Clone cards" : "کپی کارت‌ها", + "Clone assignments" : "کپی انتساب‌ها", + "Clone labels" : "کپی برچسب‌ها", + "Clone due dates" : "کپی مهلت‌ها", + "Advanced options" : "گزینه‌های پیشرفته", + "Move all cards to the first list" : "انتقال همه کارت‌ها به اولین لیست", + "Restore archived cards" : "بازیابی کارت‌های بایگانی‌شده", + "Clone" : "کپی", + "Export {boardTitle}" : "خروجی {boardTitle}", + "Export as JSON" : "خروجی به‌صورت JSON", + "Export as CSV" : "خروجی به‌صورت CSV", + "Note: Only the JSON format is supported for importing back into the Deck app." : "توجه: فقط فرمت JSON برای وارد کردن مجدد به برنامه کارتابلپشتیبانی می‌شود.", + "Export" : "خروجی", + "Loading filtered view" : "در حال بارگذاری نمای فیلترشده", + "Search for {searchQuery} in other boards" : "جستجوی {searchQuery} در سایر تخته‌ها", + "Search for {searchQuery} in all boards" : "جستجوی {searchQuery} در همه تخته‌ها", + "No results found" : "نتیجه‌ای یافت نشد", + "Deck board {name}\n* Last modified on {lastMod}" : "تخته نکست‌کلود {name}", + "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* ایجاد شده در {created}", + "{nbCards} cards" : "{nbCards} کارت", + "Due on {date}" : "موعد سررسید: {date}", + "{stack} in {board}" : "{stack} در {board}", + "Click to expand description" : "برای مشاهده توضیحات کلیک کنید", + "Click to expand comment" : "برای مشاهده نظر کلیک کنید", + "Create card" : "ایجاد کارت", + "Create a new card" : "ایجاد کارت جدید", + "Card title" : "عنوان کارت", "Creating the new card …" : "ساختن برگهٔ جدید ...", - "Card \"{card}\" was added to \"{board}\"" : "برگه \"{card}\" به \"{board}\" اضافه شد", - "Open card" : "بازکردن برگه", + "Card \"{card}\" was added to \"{board}\"" : "کارت «{card}» به «{board}» اضافه شد", + "Open card" : "باز کردن کارت", "Close" : "بستن", - "No upcoming cards" : "No upcoming cards", - "upcoming cards" : "upcoming cards", - "New card" : "New card", - "Link to a board" : "Link to a board", - "Link to a card" : "Link to a card", - "Create a card" : "Create a card", + "No upcoming cards" : "کارت آتی وجود ندارد", + "upcoming cards today" : "کارت‌های امروز", + "upcoming cards tomorrow" : "کارت‌های فردا", + "upcoming cards" : "کارت‌های آتی", + "New card" : "کارت جدید", + "Link to a board" : "پیوند به یک بورد", + "Link to a card" : "پیوند به یک کارت", + "Create a card" : "ایجاد یک کارت", "Message from {author} in {conversationName}" : "پیام از {author} در {conversationName}", - "Something went wrong" : "Something went wrong", - "Failed to upload {name}" : "Failed to upload {name}", - "Maximum file size of {size} exceeded" : "Maximum file size of {size} exceeded", + "Something went wrong" : "خطایی رخ داد", + "Failed to upload {name}" : "بارگذاری {name} ناموفق بود", + "Maximum file size of {size} exceeded" : "حداکثر حجم فایل {size} بیش از حد مجاز است", + "Assigned users" : "کاربران تعیین‌شده", "Due date" : "تاریخ سررسید", "Created" : "ایجاد شده", - "Modified" : "تغییر یافته", - "Error creating the share" : "خطایی در ایجاد اشتراک", - "Share with a Deck card" : "Share with a Deck card", - "Share {file} with a Deck card" : "Share {file} with a Deck card", - "Share" : "هم‌رسانی", - "The card \"%s\" on \"%s\" has reached its due date." : "The card \"%s\" on \"%s\" has reached its due date.", - "No participants found" : "هیچ شرکتی پیدا نشد", + "Modified" : "ویرایش شده", + "Error creating the share" : "خطا در ایجاد اشتراک‌گذاری", + "Share with a Deck card" : "اشتراک‌گذاری با یک کارت کارتابل", + "Share {file} with a Deck card" : "اشتراک‌گذاری {file} با یک کارت کارتابل", + "Share" : "اشتراک‌گذاری", + "The card \"%s\" on \"%s\" has reached its due date." : "کارت «%s» در «%s» به تاریخ سررسید خود رسیده است.", + "Share board with a user, group or team …" : "هم‌رسانی تخته با یک کاربر، گروه یا تیم …", + "Searching for users, groups and teams …" : "در حال جستجوی کاربران، گروه‌ها و تیم‌ها …", + "No participants found" : "هیچ شرکت‌کننده‌ای یافت نشد", "Save" : "ذخیره", - "Today" : "Today", + "seconds ago" : "ثانیه پیش", + "Today" : "امروز", "Tomorrow" : "فردا", - "No due" : "No due" + "No due" : "بدون سررسید" }, "nplurals=2; plural=(n > 1);"); diff --git a/l10n/fa.json b/l10n/fa.json index 70073e6a03..b5190bb92b 100644 --- a/l10n/fa.json +++ b/l10n/fa.json @@ -1,326 +1,443 @@ { "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} تختهٔ {board} را بایگانی کرد", - "You have unarchived the board {board}" : "تختهٔ {board} را از بایگانی خارج کردید", - "{user} has unarchived the board {before}" : "{user} تختهٔ {board} را از بایگانی خارج کرد", - "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}" : "شما نام برگه را {پیش از} به {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} on board {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} on board {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} را روی {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}" : "شما {کاربر اختصاص یافته} را به برگه {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}" : "شما {تخصیص کاربر} را از برگه {card} در تخته {board} لغو کرده‌اید.", - "{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} تخصیص {assigneduser} را از برگه {card} در تخته لغو کرده است", - "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} نظر داده است", - "Deck" : "برگه‌دان", - "Changes in the Deck app" : "تغییرات در برگه‌دان", - "A comment was created on a card" : "یک نظر روی یک برگه ایجاد شد", - "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" : "حداکثر حجم قابل بار گذاری از طریق HTML MAX_FILE_SIZE است", - "The file was only partially uploaded" : "پرونده فقط به صورت جزئی و ناقص بارگذاری شد", - "No file was uploaded" : "هیچ پرونده‌ای بارگذاری نشد", - "Missing a temporary folder" : "یک پوشه موقت گم شده", - "Could not write file to disk" : "عدم موفقیت در نوشتن پرونده روی حافظه", - "A PHP extension stopped the file upload" : "یک افزونه پی‌اچ‌پی مانع بارگذاری پرونده شد", - "No file uploaded or file size exceeds maximum of %s" : "پرونده‌ای بارگذاری نشد و یا حجم پرونده بیش از بیشینه مجاز %s بود", - "Upcoming cards" : "برگه‌های آینده", - "Load more" : "Load more", - "The card \"%s\" on \"%s\" has been assigned to you by %s." : "The card \"%s\" on \"%s\" has been assigned to you by %s.", - "{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} برگه {deck-card} در {deck-board} را به شما اختصاص داده است.", - "The card {deck-card} on {deck-board} has reached its due date." : "برگه {deck-card} در {deck-board} به تاریخ سررسید خود رسیده است.", - "%s has mentioned you in a comment on \"%s\"." : "%s has mentioned you in a comment on \"%s\".", - "{user} has mentioned you in a comment on {deck-card}." : "{user} از شما در نظری در {deck-card} نام برده است.", - "The board \"%s\" has been shared with you by %s." : "The board \"%s\" has been shared with you by %s.", - "{user} has shared {deck-board} with you." : "{user} {deck-board} را با شما به اشتراک گذاشته است.", - "Deck board" : "تخته deck", - "Owned by %1$s" : "Owned by %1$s", - "Deck boards, cards and comments" : "Deck boards, cards and comments", - "From %1$s, in %2$s/%3$s, owned by %4$s" : "From %1$s, in %2$s/%3$s, owned by %4$s", - "Create a new deck card" : "Create a new deck card", - "Card comments" : "دیدگاه‌های برگه", - "%s on %s" : "%s on %s", - "Deck boards and cards" : "Deck boards and cards", - "No data was provided to create an attachment." : "هیچ داده ای برای ایجاد پیوست ارائه نشد.", + "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 marked the card {card} as done in list {stack} on board {board}" : "شما کارت {card} را در لیست {stack} در بورد {board} به عنوان انجام شده علامت زده‌اید", + "{user} has marked card {card} as done in list {stack} on board {board}" : "{user} کارت {card} را در لیست {stack} در بورد {board} به عنوان انجام شده علامت زده است", + "You have marked the card {card} as undone in list {stack} on board {board}" : "شما کارت {card} را در لیست {stack} در بورد {board} به عنوان انجام نشده علامت زده‌اید", + "{user} has marked the card {card} as undone 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} را به {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}" : "شما روی کارت {card} نظر داده‌اید", + "{user} has commented on card {card}" : "کاربر {user} روی کارت {card} نظر داده است", + "Deck" : "کارتابل", + "Changes in the Deck app" : "تغییرات در برنامه کارتابل", + "A board, list or card was changed" : "یک بورد، لیست یا کارت تغییر کرد", + "A comment was created on a card" : "یک نظر روی یک کارت ایجاد شد", + "A card description has been changed" : "یک توضیحات کارت تغییر کرده است", + "The file was uploaded" : "فایل آپلود شد", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "فایل آپلود شده از دستور upload_max_filesize در php.ini فراتر می‌رود", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "فایل آپلود شده از دستور MAX_FILE_SIZE که در فرم HTML مشخص شده بود فراتر می‌رود", + "The file was only partially uploaded" : "فایل فقط به صورت جزئی آپلود شد", + "No file was uploaded" : "هیچ فایلی آپلود نشد", + "Missing a temporary folder" : "پوشه موقت وجود ندارد", + "Could not write file to disk" : "نمی‌توان فایل را روی دیسک نوشت", + "A PHP extension stopped the file upload" : "یک افزونه PHP آپلود فایل را متوقف کرد", + "No file uploaded or file size exceeds maximum of %s" : "هیچ فایلی آپلود نشد یا اندازه فایل از حداکثر %s فراتر می‌رود", + "Invalid file type. Only JSON files are allowed." : "نوع فایل نامعتبر است. فقط فایل‌های JSON مجاز هستند.", + "Invalid JSON data" : "داده JSON نامعتبر است", + "Failed to import board" : "وارد کردن بورد ناموفق بود", + "Cards due today" : "کارت‌های موعد امروز", + "Cards due tomorrow" : "کارت‌های موعد فردا", + "Upcoming cards" : "کارت‌های آینده", + "Load more" : "بارگذاری بیشتر", + "Welcome to Nextcloud Deck!" : "به کارتابل نکست‌کلود خوش آمدید!", + "The card \"%s\" on \"%s\" has been assigned to you by %s." : "کارت \"%s\" در \"%s\" توسط %s به شما اختصاص داده شده است.", + "{user} has assigned the card {deck-card} on {deck-board} to you." : "کاربر {user} کارت {کارتابل-card} را در {کارتابل-board} به شما اختصاص داده است.", + "The card \"%1$s\" on \"%2$s\" has reached its due date." : "کارت \"%1$s\" در \"%2$s\" به تاریخ سررسید خود رسیده است.", + "The card {deck-card} on {deck-board} has reached its due date." : "کارت {کارتابل-card} در {کارتابل-board} به تاریخ سررسید خود رسیده است.", + "%s has mentioned you in a comment on \"%s\"." : "%s در یک نظر روی \"%s\" از شما نام برده است.", + "{user} has mentioned you in a comment on {deck-card}." : "کاربر {user} در یک نظر روی {کارتابل-card} از شما نام برده است.", + "The board \"%s\" has been shared with you by %s." : "بورد \"%s\" توسط %s با شما به اشتراک گذاشته شده است.", + "{user} has shared {deck-board} with you." : "کاربر {user} بورد {کارتابل-board} را با شما به اشتراک گذاشته است.", + "The remote board %1$s has been shared with you by %2$s" : "بورد راه دور %1$s توسط %2$s با شما به اشتراک گذاشته شده است", + "Deck board" : "بورد کارتابل", + "Owned by %1$s" : "متعلق به %1$s", + "Deck boards, cards and comments" : "بوردها، کارت‌ها و نظرات کارتابل", + "From %1$s, in %2$s/%3$s, owned by %4$s" : "از %1$s، در %2$s/%3$s، متعلق به %4$s", + "Create a new deck card" : "ایجاد کارت جدید کارتابل", + "Card comments" : "نظرات کارت", + "%s on %s" : "%s در %s", + "Deck boards and cards" : "بردها و کارت‌های کارتابل", + "No data was provided to create an attachment." : "داده‌ای برای ایجاد پیوست ارائه نشد.", "Finished" : "تمام شده", - "To review" : "برای بازبینی", - "Action needed" : "نیازمند اقدام", - "Later" : "بعدا", + "To review" : "برای بررسی", + "Action needed" : "نیاز به اقدام", + "Later" : "بعداً", "copy" : "کپی", - "To Do" : "To Do", - "Done" : "انجام شد", - "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s.", + "Read more inside" : "داخل را بیشتر بخوانید", + "Custom lists - click to rename!" : "لیست‌های سفارشی - برای تغییر نام کلیک کنید!", + "To Do" : "انجام دادنی", + "In Progress" : "در حال انجام", + "Done" : "انجام شده", + "1. Open to learn more about boards and cards" : "۱. برای آشنایی بیشتر با بردها و کارت‌ها باز کنید", + "2. Drag cards left and right, up and down" : "۲. کارت‌ها را به چپ و راست، بالا و پایین بکشید", + "3. Apply rich formatting and link content" : "۳. قالب‌بندی پیشرفته و پیوند محتوا اعمال کنید", + "4. Share, comment and collaborate!" : "۴. اشتراک‌گذاری، نظر دهید و همکاری کنید!", + "Create your first card!" : "اولین کارت خود را ایجاد کنید!", + "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "این نظر بیش از %s کاراکتر دارد.", "Attachments" : "پیوست‌ها", - "File" : "پرونده", - "Card not found" : "برگه یافت نشد", - "Path is already shared with this card" : "مسیر قبلاً با این برگه به اشتراک گذاشته شده است", - "Invalid date, date format must be YYYY-MM-DD" : "تاریخ نامعتبر است، قالب تاریخ باید YYYY-MM-DD باشد", - "Personal planning and team project organization" : "برنامه‌ریزی شخصی و سازمان‌دهی کار گروهی", + "File" : "فایل", + "date" : "تاریخ", + "Card not found" : "کارت یافت نشد", + "Path is already shared with this card" : "مسیر قبلاً با این کارت به اشتراک گذاشته شده است", + "Invalid date, date format must be YYYY-MM-DD" : "تاریخ نامعتبر، فرمت تاریخ باید YYYY-MM-DD باشد", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "تمام بردهای متعلق به شما شامل استک‌ها، کارت‌ها، برچسب‌ها، انتساب‌ها و نظرات", + "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" : "برگه‌دان یک ابزار سازمان‌دهی سبک کانبان است که هدف آن برنامه‌ریزی شخصی و سازمان‌دهی پروژه برای گروه‌های مرتبط با Nextcloud است.\n\n\n- 📥 وظایف خود را به برگه‌ها اضافه کنید و آن‌ها را مرتب کنید\n- 📄 یادداشت‌های اضافی را در Markdown یادداشت کنید\n- 🔖 برچسب‌هایی را برای سازمان‌دهی بهتر اختصاص دهید\n- 👥 با گروه، دوستان یا خانوادهٔ خود به اشتراک بگذارید\n- 📎 فایل‌ها را ضمیمه کنید و آنها را در توضیحات Markdown خود قرار دهید\n- 💬 با استفاده از نظرات با تیم خود بحث کنید\n- ⚡ تغییرات در جریان فعالیت را پیگیری کنید\n- 🚀 پروژه خود را سازمان‌دهی کنید", - "Add board" : "افزودن تخته", - "Card details" : "جزئیات برگه", - "Select the board to link to a project" : "تخته‌ای را برای ایجاد پیوند با یک پروژه انتخاب کنید", - "Search by board title" : "جستجو بر اساس عنوان تخته", - "Select board" : "انتخاب تخته", - "Select a board" : "انتخاب یک تخته", - "No lists available" : "هیچ فهرستی در دسترس نیست", - "Select a list" : "یک فهرست برگزینید", - "Move card" : "انتقال برگه", - "Select the card to link to a project" : "برگه‌ای را برای ایجاد پیوند با یک پروژه انتخاب کنید", - "Link to card" : "پیوند به برگه", - "Select a card" : "انتخاب یک برگه", + "Add board" : "افزودن برد", + "Card details" : "جزئیات کارت", + "Select the board to link to a project" : "برد مورد نظر برای پیوند به پروژه را انتخاب کنید", + "Search by board title" : "جستجو بر اساس عنوان برد", + "Select board" : "انتخاب برد", + "Move/copy card" : "جابجایی/کپی کارت", + "Select a board" : "یک برد انتخاب کنید", + "No lists available" : "هیچ لیستی موجود نیست", + "Select a list" : "یک لیست انتخاب کنید", + "Move card" : "جابجایی کارت", + "Copy card" : "کپی کارت", + "Select the card to link to a project" : "کارت مورد نظر برای پیوند به پروژه را انتخاب کنید", + "Link to card" : "پیوند به کارت", + "Select a card" : "یک کارت انتخاب کنید", "Cancel" : "لغو", - "This board is read only" : "تخته، فقط خواندنی است", - "Drop your files to upload" : "برای بارگذاری، پرونده‌ها را اینجا رها کنید", - "File already exists" : "پرونده از قبل موجود است", - "A file with the name {filename} already exists." : "پرونده‌ای با نام {filename} از قبل موجود است.", - "Do you want to overwrite it?" : "می‌خواهید روی آن بازنویسی شود؟", - "Overwrite file" : "بازنویسی پرونده", - "Keep existing file" : "پرونده موجود حفظ شود", - "Add card" : "افزودن برگه", + "This board is read only" : "این برد فقط خواندنی است", + "Drop your files to upload" : "فایل‌های خود را برای بارگذاری رها کنید", + "File already exists" : "فایل از قبل وجود دارد", + "A file with the name {filename} already exists." : "فایلی با نام {filename} از قبل وجود دارد.", + "Do you want to overwrite it?" : "آیا می‌خواهید آن را بازنویسی کنید؟", + "Overwrite file" : "بازنویسی فایل", + "Keep existing file" : "نگه‌داشتن فایل موجود", + "Add card" : "افزودن کارت", "Archived cards" : "کارت‌های بایگانی‌شده", - "Add list" : "افزودن فهرست", - "List name" : "نام فهرست", - "Active filters" : "Active filters", - "Apply filter" : "اعمال پالایه", - "Filter by tag" : "پالایش برحسب برچسب", - "Filter by assigned user" : "فیلتر بر اساس کاربر اختصاص داده شده", - "Unassigned" : "اختصاص داده نشده است", - "Open" : "باز کردن", - "Completed" : "نکمیل شده", - "Filter by due date" : "فیلتر بر اساس تاریخ مقرر", - "Overdue" : "تاریخ گذشته", + "Add list" : "افزودن لیست", + "List name" : "نام لیست", + "Active filters" : "فیلترهای فعال", + "Apply filter" : "اعمال فیلتر", + "Filter by tag" : "فیلتر بر اساس برچسب", + "Filter by assigned user" : "فیلتر بر اساس کاربر تعیین‌شده", + "Unassigned" : "تعیین‌نشده", + "Filter by status" : "فیلتر بر اساس وضعیت", + "Open and completed" : "باز و تکمیل‌شده", + "Open" : "باز", + "Completed" : "تکمیل‌شده", + "Filter by due date" : "فیلتر بر اساس تاریخ سررسید", + "Overdue" : "عقب‌افتاده", "Next 24 hours" : "۲۴ ساعت آینده", "Next 7 days" : "۷ روز آینده", "Next 30 days" : "۳۰ روز آینده", "No due date" : "بدون تاریخ سررسید", - "Clear filter" : "پاک کردن پالایه", - "Hide archived cards" : "برگه‌های بایگانی شده را مخفی کنید", - "Show archived cards" : "نمایش کارت‌های بایگانی شده", + "Clear filter" : "پاک کردن فیلتر", + "View Modes" : "حالت‌های نمایش", + "Toggle View Modes" : "تغییر حالت نمایش", + "Kanban view" : "نمای Kanban", + "Gantt view" : "نمای Gantt", + "Hide archived cards" : "مخفی‌سازی کارت‌های بایگانی‌شده", + "Show archived cards" : "نمایش کارت‌های بایگانی‌شده", "Toggle compact mode" : "تغییر حالت فشرده", + "Hide card cover images" : "مخفی‌سازی تصاویر جلد کارت", + "Show card cover images" : "نمایش تصاویر جلد کارت", "Open details" : "باز کردن جزئیات", "Details" : "جزئیات", - "Deck settings" : "Deck settings", + "Deck settings" : "تنظیمات کارتابل", "General" : "عمومی", - "Use bigger card view" : "از نمای برگهٔ بزرگتر استفاده کنید", + "Use bigger card view" : "استفاده از نمای بزرگ‌تر کارت", "Appearance" : "ظاهر", - "Show card ID badge" : "Show card ID badge", - "Show boards in calendar/tasks" : "نمایش تابلوها در تقویم/ وظایف", + "Show card ID badge" : "نمایش نشان شناسه کارت", + "Show boards in calendar/tasks" : "نمایش بوردها در تقویم/وظایف", + "Admin settings" : "تنظیمات مدیر", + "Limit board creation to some groups" : "محدود کردن ایجاد بورد به برخی گروه‌ها", + "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "کاربران خارج از آن گروه‌ها نمی‌توانند بوردهای خود را ایجاد کنند، اما همچنان می‌توانند روی بوردهایی که با آن‌ها به اشتراک گذاشته شده کار کنند.", + "Enable federation" : "فعال‌سازی فدراسیون", + "Board actions" : "اقدامات بورد", + "Scroll sideways" : "پیمایش به پهلو", + "Navigate between cards" : "حرکت بین کارت‌ها", + "Close card details" : "بستن جزئیات کارت", "Search" : "جستجو", - "Show those shortcuts" : "نمایش میانبرها", - "Currently present people" : "Currently present people", - "Loading board" : "بارکردن تخته", - "Board not found" : "تخته یافت نشد", - "Create a new list to add cards to this board" : "یک فهرست جدید برای افزود برگه به این تابلو ایجاد کنید", - "Sharing" : "هم‌رسانی", + "Show card filters" : "نمایش فیلترهای کارت", + "Clear card filters" : "پاک کردن فیلترهای کارت", + "Show those shortcuts" : "نمایش میانبرهای موجود", + "Card actions" : "عملیات کارت", + "Open card details" : "باز کردن جزئیات کارت", + "Edit the card title" : "ویرایش عنوان کارت", + "Assign yourself to the current card" : "اختصاص خود به کارت فعلی", + "Archive/unarchive the current card" : "بایگانی/خروج از بایگانی کارت فعلی", + "Mark card as completed/not completed" : "علامت‌گذاری کارت به عنوان تکمیل‌شده/تکمیل‌نشده", + "Open card menu" : "باز کردن منوی کارت", + "Currently present people" : "افراد حاضر در حال حاضر", + "Loading board" : "در حال بارگذاری برد", + "Board not found" : "برد پیدا نشد", + "Create a new list to add cards to this board" : "یک لیست جدید برای افزودن کارت به این برد ایجاد کنید", + "Sharing" : "اشتراک‌گذاری", "Tags" : "برچسب‌ها", - "Deleted items" : "موارد حذف شده", - "Activity" : "فعالیت", - "Deleted lists" : "فهرست‌های پاک شده", - "Undo" : "برگرداندن", - "Deleted cards" : "کارت‌های پاک شده", - "Failed to create share with {displayName}" : "اشتراک‌گذاری با {displayName} ایجاد نشد", - "Are you sure you want to transfer the board {title} to {user}?" : "Are you sure you want to transfer the board {title} to {user}?", - "Transfer the board." : "Transfer the board.", + "Deleted items" : "موارد حذف‌شده", + "Activity" : "فعالیت‌ها", + "Deleted lists" : "لیست‌های حذف‌شده", + "Undo" : "بازگردانی", + "Deleted cards" : "کارت‌های حذف‌شده", + "Hours" : "ساعت‌ها", + "Days" : "روزها", + "Weeks" : "هفته‌ها", + "Months" : "ماه‌ها", + "No cards yet" : "هنوز کارتی وجود ندارد", + "Set a start date and due date on your cards to see them on the Gantt chart" : "برای مشاهده کارت‌ها در نمودار گانت، تاریخ شروع و سررسید را روی کارت‌های خود تنظیم کنید", + "Cards without dates ({count})" : "کارت‌های بدون تاریخ ({count})", + "Failed to create share with {displayName}" : "ایجاد اشتراک با {displayName} انجام نشد", + "Are you sure you want to transfer the board {title} to {user}?" : "آیا مطمئن هستید که می‌خواهید برد {title} را به {user} منتقل کنید؟", + "Transfer the board." : "انتقال برد.", "Transfer" : "انتقال", - "The board has been transferred to {user}" : "The board has been transferred to {user}", - "Failed to transfer the board to {user}" : "Failed to transfer the board to {user}", - "Board owner" : "مالک تخته", + "The board has been transferred to {user}" : "برد به {user} منتقل شد", + "Failed to transfer the board to {user}" : "انتقال برد به {user} انجام نشد", + "Board owner" : "مالک برد", "(Group)" : "(گروه)", + "(Team)" : "(تیم)", "(remote)" : "(از راه دور)", - "Can edit" : "می‌تواند ویرایش کند", - "Can share" : "می‌تواند هم‌رسانی کند", - "Can manage" : "می‌تواند مدیریت کند", + "Can edit" : "قابلیت ویرایش", + "Can share" : "قابلیت اشتراک‌گذاری", + "Can manage" : "قابلیت مدیریت", "Owner" : "مالک", "Delete" : "حذف", - "List deleted" : "فهرست پاک شد", - "Edit list title" : "Edit list title", - "Archive all cards" : "همهٔ برگه‌ها را بایگانی کنید!", - "Unarchive all cards" : "Unarchive all cards", - "Delete list" : "حذف فهرست", - "Archive all cards in this list" : "تمام برگه‌های موجود در این فهرست را بایگانی کنید", - "Unarchive all cards in this list" : "Unarchive all cards in this list", - "Add a new card" : "افزودن یک کارت جدید", - "Card name" : "نام برگه", - "title and color value must be provided" : "نام و رنگ باید مشخص شود", + "List deleted" : "لیست حذف شد", + "Edit list title" : "ویرایش عنوان لیست", + "Archive all cards" : "بایگانی همه کارت‌ها", + "Unarchive all cards" : "خروج همه کارت‌ها از بایگانی", + "Do not set cards as \"done\"" : "کارت‌ها را به عنوان «انجام‌شده» تنظیم نکن", + "Set cards as \"done\"" : "کارت‌ها را به عنوان «انجام‌شده» تنظیم کن", + "Delete list" : "حذف لیست", + "Archive all cards in this list" : "بایگانی همه کارت‌های این لیست", + "Unarchive all cards in this list" : "خارج کردن همه کارت‌ها از بایگانی در این لیست", + "Add a new card" : "افزودن کارت جدید", + "Card name" : "نام کارت", + "title and color value must be provided" : "عنوان و مقدار رنگ باید ارائه شود", "Edit" : "ویرایش", - "Add a new tag" : "افزودن یک برچسب جدید", - "Board name" : "نامِ تخته", + "Add a new tag" : "افزودن برچسب جدید", + "Board name" : "نام بورد", "Members" : "اعضا", + "Assign to users/groups/team" : "اختصاص به کاربران/گروه‌ها/تیم", "Assign a user to this card…" : "اختصاص یک کاربر به این برگه…", + "Select a user to assign to this card…" : "یک کاربر برای تخصیص به این کارت انتخاب کنید…", "File to share" : "فایل برای اشتراک‌گذاری", - "Invalid path selected" : "مسیر نامعتبر انتخاب شده است", - "Upload new files" : "فایل‌های جدید را آپلود کنید", + "Invalid path selected" : "مسیر نامعتبر انتخاب شد", + "Upload new files" : "بارگذاری فایل‌های جدید", "Share from Files" : "اشتراک‌گذاری از فایل‌ها", - "Pending share" : "سهم معلق", + "Pending share" : "اشتراک در انتظار", "Add this attachment" : "افزودن این پیوست", "Show in Files" : "نمایش در فایل‌ها", - "Download" : "بارگیری", + "Download" : "دانلود", "Remove attachment" : "حذف پیوست", "Delete Attachment" : "حذف پیوست", "Restore Attachment" : "بازیابی پیوست", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "تغییر‌یافته: {modifiedDate} ⸱ ایجاد‌شده: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "تغییر یافته: {modifiedDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "تغییر یافته: {modifiedDate}", "The title cannot be empty." : "عنوان نمی‌تواند خالی باشد.", - "Open in sidebar view" : "در نمای نوار کناری باز کنید", - "Open in bigger view" : "در نمای بزرگتر باز کنید", + "Cannot close unsaved card!" : "نمی‌توان کارت ذخیره‌نشده را بست!", + "Open in sidebar view" : "باز کردن در نمای کناری", + "Open in bigger view" : "باز کردن در نمای بزرگ‌تر", "Comments" : "نظرات", - "Failed to load comments" : "نظرات بارگیری نشد", - "No comments yet. Begin the discussion!" : "هنوز نظری وجود ندارد. بحثی را آغاز کنید!", + "Failed to load comments" : "بارگذاری نظرات ناموفق بود", + "No comments yet. Begin the discussion!" : "هنوز نظری وجود ندارد. بحث را شروع کنید!", "The comment cannot be empty." : "نظر نمی‌تواند خالی باشد.", - "The comment cannot be longer than 1000 characters." : "نظر نمی‌تواند طولانی‌تر از ۱۰۰۰ حرف باشد.", - "Created:" : "ایجاد شده توسط:", + "The comment cannot be longer than 1000 characters." : "نظر نمی‌تواند بیش از ۱۰۰۰ کاراکتر باشد.", + "Submit" : "ارسال", + "Created:" : "ایجاد شده:", "In reply to" : "در پاسخ به", "Cancel reply" : "لغو پاسخ", "Reply" : "پاسخ", "Update" : "به‌روزرسانی", + "Assign dependent cards" : "اختصاص کارت‌های وابسته", + "Mark as done" : "علامت‌گذاری به عنوان انجام شده", + "Mark as not done" : "علامت‌گذاری به عنوان انجام نشده", + "Remove dependency" : "حذف وابستگی", + "Add dependent card" : "افزودن کارت وابسته", + "Assign a dependent card…" : "تخصیص یک کارت وابسته…", + "Select a dependent card…" : "یک کارت وابسته انتخاب کنید…", "Write a description …" : "توضیح بنویس…", + "The description has been changed by another user." : "توضیحات توسط کاربر دیگری تغییر یافته است.", + "Could not save description" : "ذخیره توضیحات ممکن نشد", "Description" : "توضیحات", "(Unsaved)" : "(ذخیره نشده)", "(Saving…)" : "(در حال ذخیره...)", "Formatting help" : "راهنمای قالب‌بندی", "Edit description" : "ویرایش توضیحات", - "View description" : "نمایش توضیحات", + "View description" : "مشاهده توضیحات", "Add Attachment" : "افزودن پیوست", "Choose attachment" : "انتخاب پیوست", - "Select Date" : "تاریخ را انتخاب کنید", - "Later today – {timeLocale}" : "Later today – {timeLocale}", - "Tomorrow – {timeLocale}" : "Tomorrow – {timeLocale}", - "This weekend – {timeLocale}" : "This weekend – {timeLocale}", - "Next week – {timeLocale}" : "Next week – {timeLocale}", - "Assign a due date to this card…" : "Assign a due date to this card…", - "Set a due date" : "تاریخ سررسید را تعیین کنید", - "Remove due date" : "تاریخ سررسید را حذف کنید", - "Mark as done" : "علامت گذاری به عنوان انجام شده", - "Unarchive card" : "برگه را از بایگانی خارج کنید", - "Archive card" : "بایگانی برگه", + "Select Date" : "انتخاب تاریخ", + "Later today – {timeLocale}" : "امروز دیرتر – {timeLocale}", + "Set due date for later today" : "تنظیم مهلت برای امروز بعداً", + "Tomorrow – {timeLocale}" : "فردا – {timeLocale}", + "Set due date for tomorrow" : "تنظیم مهلت برای فردا", + "This weekend – {timeLocale}" : "این آخر هفته – {timeLocale}", + "Set due date for this weekend" : "تنظیم مهلت برای این آخر هفته", + "Next week – {timeLocale}" : "هفتهٔ آینده – {timeLocale}", + "Set due date for next week" : "تنظیم مهلت برای هفته آینده", + "Assign a due date to this card…" : "تعیین مهلت برای این کارت…", + "Set a due date" : "تنظیم مهلت", + "Add due date" : "افزودن مهلت", + "Choose a date" : "انتخاب تاریخ", + "Remove due date" : "حذف مهلت", + "Due at:" : "مهلت در:", + "Not done" : "انجام نشده", + "Unarchive card" : "خارج کردن کارت از بایگانی", + "Archive card" : "بایگانی کارت", + "Assign a start date to this card…" : "تعیین تاریخ شروع برای این کارت…", + "Set a start date" : "تنظیم تاریخ شروع", + "Add start date" : "افزودن تاریخ شروع", + "Remove start date" : "حذف تاریخ شروع", "Assign a tag to this card…" : "یک برچسب به این برگه اختصاص دهید…", + "Select or create a tag…" : "یک برچسب انتخاب یا ایجاد کنید…", + "Create a new tag:" : "ایجاد برچسب جدید:", "(group)" : "(گروه)", - "{count} comments, {unread} unread" : "{count} نظر، { خوانده نشده} خوانده نشده", - "Todo items" : "Todo items", - "Edit card title" : "Edit card title", - "Open link" : "لینک را باز کنید", - "Card deleted" : "برگه پاک شد", + "{count} comments, {unread} unread" : "{count} نظر، {unread} خوانده نشده", + "Todo items" : "موارد انجام دادنی", + "Edit card title" : "ویرایش عنوان کارت", + "Open link" : "باز کردن پیوند", + "Card deleted" : "کارت حذف شد", + "Change card color" : "تغییر رنگ کارت", "Edit title" : "ویرایش عنوان", - "Assign to me" : "به من اختصاص دهید", - "Unassign myself" : "واگذاری به خودم را لغو می‌کنم", - "Delete card" : "حذف برگه", - "seconds ago" : "ثانیه‌هایی پیش", - "All boards" : "همه تخته‌ها", - "Archived boards" : "تخته‌های بایگانی شده", - "Shared with you" : "با شما به اشتراک گذاشته شده است", - "Cancel edit" : "Cancel edit", - "Board {0} deleted" : "Board {0} deleted", - "All cards" : "All cards", - "Only assigned cards" : "Only assigned cards", - "No reminder" : "No reminder", - "An error occurred" : "خطایی روی داد", - "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards.", - "Delete the board?" : "Delete the board?", - "Leave" : "خروج", - "Board details" : "Board details", + "Assign to me" : "اختصاص به من", + "Unassign myself" : "لغو اختصاص خودم", + "Delete card" : "حذف کارت", + "All boards" : "همه بوردها", + "Archived boards" : "بوردهای بایگانی شده", + "Shared with you" : "اشتراک‌گذاری شده با شما", + "Cancel edit" : "لغو ویرایش", + "Save board" : "ذخیره بورد", + "Board {0} deleted" : "تخته {0} حذف شد", + "All cards" : "همه کارت‌ها", + "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 including archived cards." : "آیا مطمئن هستید که می‌خواهید تخته {title} را حذف کنید؟ این کار تمام داده‌های این تخته از جمله کارت‌های بایگانی‌شده را پاک می‌کند.", + "Delete the board?" : "تخته حذف شود؟", + "Are you sure you want to leave the board {title}?" : "آیا مطمئن هستید که می‌خواهید تخته {title} را ترک کنید؟", + "Leave the board?" : "تخته ترک شود؟", + "Leave" : "ترک", + "Failed to leave the board" : "ترک تخته انجام نشد", + "Exporting board..." : "در حال خروجی گرفتن از تخته...", + "Board details" : "جزئیات تخته", "Edit board" : "ویرایش تخته", - "Clone board" : "تخته شبیه‌سازی", - "Unarchive board" : "Unarchive board", - "Archive board" : "تخته", - "Export board" : "Export board", - "Turn on due date reminders" : "Turn on due date reminders", - "Turn off due date reminders" : "Turn off due date reminders", - "Due date reminders" : "Due date reminders", - "Assigned cards" : "Assigned cards", + "Clone board" : "کپی کردن تخته", + "Unarchive board" : "خارج کردن تخته از بایگانی", + "Archive board" : "بایگانی تخته", + "Export board" : "خروجی گرفتن از تخته", + "Turn on due date reminders" : "فعال‌سازی یادآوری مهلت‌ها", + "Turn off due date reminders" : "غیرفعال‌سازی یادآوری مهلت‌ها", + "Remove as default board" : "حذف به‌عنوان تخته پیش‌فرض", + "Set as default board" : "تنظیم به‌عنوان تخته پیش‌فرض", + "Due date reminders" : "یادآوری مهلت‌ها", + "Assigned cards" : "کارت‌های تعیین‌شده", "No notifications" : "بدون اعلان", "Delete board" : "حذف تخته", - "Clone cards" : "شبیه سازی کارت", - "Advanced options" : "گزینه‌های پیش‌رفته", - "Clone" : "شبیه سازی", - "Export as CSV" : "Export as CSV", - "Export" : "دریافت خروجی", - "Loading filtered view" : "Loading filtered view", - "Search for {searchQuery} in all boards" : "Search for {searchQuery} in all boards", - "No results found" : "هیچ نتیجه ای یافت نشد", - "Deck board {name}\n* Last modified on {lastMod}" : "Deck board {name}\n* Last modified on {lastMod}", - "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments", - "{nbCards} cards" : "{nbCards} cards", - "Due on {date}" : "Due on {date}", - "{stack} in {board}" : "{stack} in {board}", - "Click to expand description" : "Click to expand description", - "Click to expand comment" : "Click to expand comment", - "Create card" : "ایجاد برگه", - "Create a new card" : "یک برگهٔ جدید بسازید", - "Card title" : "عنوان برگه", + "Leave board" : "ترک تخته", + "Importing board..." : "در حال وارد کردن تخته...", + "Board imported successfully" : "تخته با موفقیت وارد شد", + "Import board" : "وارد کردن تخته", + "Clone {boardTitle}" : "کپی {boardTitle}", + "Clone cards" : "کپی کارت‌ها", + "Clone assignments" : "کپی انتساب‌ها", + "Clone labels" : "کپی برچسب‌ها", + "Clone due dates" : "کپی مهلت‌ها", + "Advanced options" : "گزینه‌های پیشرفته", + "Move all cards to the first list" : "انتقال همه کارت‌ها به اولین لیست", + "Restore archived cards" : "بازیابی کارت‌های بایگانی‌شده", + "Clone" : "کپی", + "Export {boardTitle}" : "خروجی {boardTitle}", + "Export as JSON" : "خروجی به‌صورت JSON", + "Export as CSV" : "خروجی به‌صورت CSV", + "Note: Only the JSON format is supported for importing back into the Deck app." : "توجه: فقط فرمت JSON برای وارد کردن مجدد به برنامه کارتابلپشتیبانی می‌شود.", + "Export" : "خروجی", + "Loading filtered view" : "در حال بارگذاری نمای فیلترشده", + "Search for {searchQuery} in other boards" : "جستجوی {searchQuery} در سایر تخته‌ها", + "Search for {searchQuery} in all boards" : "جستجوی {searchQuery} در همه تخته‌ها", + "No results found" : "نتیجه‌ای یافت نشد", + "Deck board {name}\n* Last modified on {lastMod}" : "تخته نکست‌کلود {name}", + "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* ایجاد شده در {created}", + "{nbCards} cards" : "{nbCards} کارت", + "Due on {date}" : "موعد سررسید: {date}", + "{stack} in {board}" : "{stack} در {board}", + "Click to expand description" : "برای مشاهده توضیحات کلیک کنید", + "Click to expand comment" : "برای مشاهده نظر کلیک کنید", + "Create card" : "ایجاد کارت", + "Create a new card" : "ایجاد کارت جدید", + "Card title" : "عنوان کارت", "Creating the new card …" : "ساختن برگهٔ جدید ...", - "Card \"{card}\" was added to \"{board}\"" : "برگه \"{card}\" به \"{board}\" اضافه شد", - "Open card" : "بازکردن برگه", + "Card \"{card}\" was added to \"{board}\"" : "کارت «{card}» به «{board}» اضافه شد", + "Open card" : "باز کردن کارت", "Close" : "بستن", - "No upcoming cards" : "No upcoming cards", - "upcoming cards" : "upcoming cards", - "New card" : "New card", - "Link to a board" : "Link to a board", - "Link to a card" : "Link to a card", - "Create a card" : "Create a card", + "No upcoming cards" : "کارت آتی وجود ندارد", + "upcoming cards today" : "کارت‌های امروز", + "upcoming cards tomorrow" : "کارت‌های فردا", + "upcoming cards" : "کارت‌های آتی", + "New card" : "کارت جدید", + "Link to a board" : "پیوند به یک بورد", + "Link to a card" : "پیوند به یک کارت", + "Create a card" : "ایجاد یک کارت", "Message from {author} in {conversationName}" : "پیام از {author} در {conversationName}", - "Something went wrong" : "Something went wrong", - "Failed to upload {name}" : "Failed to upload {name}", - "Maximum file size of {size} exceeded" : "Maximum file size of {size} exceeded", + "Something went wrong" : "خطایی رخ داد", + "Failed to upload {name}" : "بارگذاری {name} ناموفق بود", + "Maximum file size of {size} exceeded" : "حداکثر حجم فایل {size} بیش از حد مجاز است", + "Assigned users" : "کاربران تعیین‌شده", "Due date" : "تاریخ سررسید", "Created" : "ایجاد شده", - "Modified" : "تغییر یافته", - "Error creating the share" : "خطایی در ایجاد اشتراک", - "Share with a Deck card" : "Share with a Deck card", - "Share {file} with a Deck card" : "Share {file} with a Deck card", - "Share" : "هم‌رسانی", - "The card \"%s\" on \"%s\" has reached its due date." : "The card \"%s\" on \"%s\" has reached its due date.", - "No participants found" : "هیچ شرکتی پیدا نشد", + "Modified" : "ویرایش شده", + "Error creating the share" : "خطا در ایجاد اشتراک‌گذاری", + "Share with a Deck card" : "اشتراک‌گذاری با یک کارت کارتابل", + "Share {file} with a Deck card" : "اشتراک‌گذاری {file} با یک کارت کارتابل", + "Share" : "اشتراک‌گذاری", + "The card \"%s\" on \"%s\" has reached its due date." : "کارت «%s» در «%s» به تاریخ سررسید خود رسیده است.", + "Share board with a user, group or team …" : "هم‌رسانی تخته با یک کاربر، گروه یا تیم …", + "Searching for users, groups and teams …" : "در حال جستجوی کاربران، گروه‌ها و تیم‌ها …", + "No participants found" : "هیچ شرکت‌کننده‌ای یافت نشد", "Save" : "ذخیره", - "Today" : "Today", + "seconds ago" : "ثانیه پیش", + "Today" : "امروز", "Tomorrow" : "فردا", - "No due" : "No due" + "No due" : "بدون سررسید" },"pluralForm" :"nplurals=2; plural=(n > 1);" } \ No newline at end of file diff --git a/l10n/fi.js b/l10n/fi.js index 4f79fc6ce2..0f972c35a2 100644 --- a/l10n/fi.js +++ b/l10n/fi.js @@ -149,6 +149,11 @@ OC.L10N.register( "Deleted lists" : "Poistetut listat", "Undo" : "Kumoa", "Deleted cards" : "Poistetut kortit", + "Hours" : "Tunnit", + "Days" : "Päivää", + "Weeks" : "Viikkoa", + "Months" : "Kuukautta", + "No cards yet" : "Ei kortteja vielä", "Failed to create share with {displayName}" : "Jaon luonti epäonnistui kohteen {displayName} kanssa", "Are you sure you want to transfer the board {title} to {user}?" : "Haluatko varmasti siirtää taulun {title} käyttäjälle {user}?", "Transfer" : "Siirrä", @@ -188,11 +193,13 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Ei vielä kommentteja. Aloita keskustelu!", "The comment cannot be empty." : "Kommentti ei voi olla tyhjä.", "The comment cannot be longer than 1000 characters." : "Kommentin on oltava alle 1000 merkkiä pitkä.", + "Submit" : "Lähetä", "Created:" : "Luotu:", "In reply to" : "Vastauksena", "Cancel reply" : "Peru vastaus", "Reply" : "Vastaa", "Update" : "Päivitä", + "Mark as done" : "Merkitse valmiiksi", "Write a description …" : "Kirjoita kuvaus…", "Description" : "Kuvaus", "(Unsaved)" : "(Tallentamaton)", @@ -210,7 +217,6 @@ OC.L10N.register( "Set a due date" : "Aseta eräpäivä", "Choose a date" : "Valitse päivämäärä", "Remove due date" : "Poista eräpäivä", - "Mark as done" : "Merkitse valmiiksi", "Unarchive card" : "Poista kortti arkistosta", "Archive card" : "Arkistoi kortti", "Assign a tag to this card…" : "Lisää kortille tunniste...", @@ -224,7 +230,6 @@ OC.L10N.register( "Assign to me" : "Määritä minulle", "Unassign myself" : "Poista määritys minulta", "Delete card" : "Poista kortti", - "seconds ago" : "sekuntia sitten", "All boards" : "Kaikki taulut", "Archived boards" : "Arkistoidut taulut", "Shared with you" : "Jaettu kanssasi", @@ -280,6 +285,7 @@ OC.L10N.register( "Share board with a user, group or team …" : "Jaa taulu käyttäjän, ryhmän tai tiimin kanssa...", "No participants found" : "Ei osallistujia löydetty", "Save" : "Tallenna", + "seconds ago" : "sekuntia sitten", "Today" : "Tänään", "Tomorrow" : "Huomenna" }, diff --git a/l10n/fi.json b/l10n/fi.json index e8b9857770..4fa9f737e2 100644 --- a/l10n/fi.json +++ b/l10n/fi.json @@ -147,6 +147,11 @@ "Deleted lists" : "Poistetut listat", "Undo" : "Kumoa", "Deleted cards" : "Poistetut kortit", + "Hours" : "Tunnit", + "Days" : "Päivää", + "Weeks" : "Viikkoa", + "Months" : "Kuukautta", + "No cards yet" : "Ei kortteja vielä", "Failed to create share with {displayName}" : "Jaon luonti epäonnistui kohteen {displayName} kanssa", "Are you sure you want to transfer the board {title} to {user}?" : "Haluatko varmasti siirtää taulun {title} käyttäjälle {user}?", "Transfer" : "Siirrä", @@ -186,11 +191,13 @@ "No comments yet. Begin the discussion!" : "Ei vielä kommentteja. Aloita keskustelu!", "The comment cannot be empty." : "Kommentti ei voi olla tyhjä.", "The comment cannot be longer than 1000 characters." : "Kommentin on oltava alle 1000 merkkiä pitkä.", + "Submit" : "Lähetä", "Created:" : "Luotu:", "In reply to" : "Vastauksena", "Cancel reply" : "Peru vastaus", "Reply" : "Vastaa", "Update" : "Päivitä", + "Mark as done" : "Merkitse valmiiksi", "Write a description …" : "Kirjoita kuvaus…", "Description" : "Kuvaus", "(Unsaved)" : "(Tallentamaton)", @@ -208,7 +215,6 @@ "Set a due date" : "Aseta eräpäivä", "Choose a date" : "Valitse päivämäärä", "Remove due date" : "Poista eräpäivä", - "Mark as done" : "Merkitse valmiiksi", "Unarchive card" : "Poista kortti arkistosta", "Archive card" : "Arkistoi kortti", "Assign a tag to this card…" : "Lisää kortille tunniste...", @@ -222,7 +228,6 @@ "Assign to me" : "Määritä minulle", "Unassign myself" : "Poista määritys minulta", "Delete card" : "Poista kortti", - "seconds ago" : "sekuntia sitten", "All boards" : "Kaikki taulut", "Archived boards" : "Arkistoidut taulut", "Shared with you" : "Jaettu kanssasi", @@ -278,6 +283,7 @@ "Share board with a user, group or team …" : "Jaa taulu käyttäjän, ryhmän tai tiimin kanssa...", "No participants found" : "Ei osallistujia löydetty", "Save" : "Tallenna", + "seconds ago" : "sekuntia sitten", "Today" : "Tänään", "Tomorrow" : "Huomenna" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/l10n/fr.js b/l10n/fr.js index 3714690451..7a8f4e73a7 100644 --- a/l10n/fr.js +++ b/l10n/fr.js @@ -129,6 +129,7 @@ OC.L10N.register( "Card not found" : "Carte introuvable", "Path is already shared with this card" : "Le chemin est déjà partagé avec cette carte", "Invalid date, date format must be YYYY-MM-DD" : "Date non valable, le format de la date doit être AAAA-MM-JJ", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Tous vos tableaux, incluant les colonnes, les cartes, les étiquettes, les attributions aux utilisateurs et les commentaires", "Personal planning and team project organization" : "Agenda personnel et organisation projet", "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 est un outil d'organisation de style kanban destiné à la planification personnelle et à l'organisation de projets pour les équipes intégrées à Nextcloud.\n\n\n- 📥 Ajoutez vos tâches à des cartes et organisez-les\n- 📄 Écrivez des notes supplémentaires en Markdown\n- 🔖 Affectez des étiquettes pour une organisation encore meilleure\n- 👥 Partagez avec votre équipe, vos amis ou votre famille\n- 📎 Joignez des fichiers et utilisez-les dans vos descriptions en Markdown\n- 💬 Échangez avec votre équipe grâce aux commentaires\n- ⚡ Gardez un œil sur les modifications dans le flux d'activité\n- 🚀 Organisez vos projets", "Add board" : "Ajouter un tableau", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Supprimer le filtre", "View Modes" : "Modes d'affichage", "Toggle View Modes" : "Basculer les modes d'affichage", + "Kanban view" : "Vue Kanban", + "Gantt view" : "Vue Gantt", "Hide archived cards" : "Masquer les cartes archivées", "Show archived cards" : "Afficher les cartes archivées", "Toggle compact mode" : "Activer/Désactiver l'affichage compact", @@ -191,6 +194,7 @@ OC.L10N.register( "Admin settings" : "Paramètres d'administration", "Limit board creation to some groups" : "Limiter la création de tableaux à certains groupes", "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Les utilisateurs qui ne font pas partie de ces groupes ne pourront pas créer leurs propres tableaux, mais pourront toujours travailler sur les tableaux qui ont été partagés avec eux.", + "Enable federation" : "Activer la fédération", "Board actions" : "Actions sur le tableau", "Scroll sideways" : "Défilement latéral", "Navigate between cards" : "Naviguer entre les cartes", @@ -217,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "Listes supprimées", "Undo" : "Annuler", "Deleted cards" : "Cartes supprimées", + "Hours" : "Heures", + "Days" : "Jours", + "Weeks" : "Semaines", + "Months" : "Mois", + "No cards yet" : "Aucune carte pour l'instant", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Définissez une date de départ et une date d'échéance sur vos cartes pour les voir dans le diagramme de Gantt", + "Cards without dates ({count})" : "Cartes sans dates ({count})", "Failed to create share with {displayName}" : "Échec de la création du partage avec {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Êtes-vous sûr de vouloir transférer le tableau {title} à {user} ?", "Transfer the board." : "Transférer le tableau", @@ -262,6 +273,9 @@ OC.L10N.register( "Remove attachment" : "Supprimer la pièce jointe", "Delete Attachment" : "Supprimer la pièce jointe", "Restore Attachment" : "Restaurer la pièce jointe", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Modifié : {modifiedDate} ⸱ Créé : {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Modifié : {modifiedDate}\nCréé : {createdDate}\nCréé par : {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Modifié : {modifiedDate}\nCréé : {createdDate}", "The title cannot be empty." : "Le titre ne peut pas être vide.", "Cannot close unsaved card!" : "Impossible de fermer une carte non enregistrée !", "Open in sidebar view" : "Ouvrir dans le panneau latéral", @@ -271,12 +285,21 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Aucun commentaire pour l'instant. Commencez la discussion !", "The comment cannot be empty." : "Un commentaire ne peut pas être vide.", "The comment cannot be longer than 1000 characters." : "Un commentaire est limité à 1 000 caractères.", + "Submit" : "Envoyer", "Created:" : "Créée le :", "In reply to" : "En réponse à", "Cancel reply" : "Annuler la réponse", "Reply" : "Répondre", "Update" : "Mettre à jour", + "Assign dependent cards" : "Désigner des cartes dépendantes", + "Mark as done" : "Marquer comme fait", + "Mark as not done" : "Marquer comme non fait", + "Remove dependency" : "Supprimer la dépendance", + "Add dependent card" : "Ajouter une carte dépendante", + "Assign a dependent card…" : "Désigner une carte dépendante...", + "Select a dependent card…" : "Sélectionner une carte dépendante...", "Write a description …" : "Écrire une description…", + "The description has been changed by another user." : "La description a été modifiée par un autre utilisateur.", "Could not save description" : "Impossible d'enregistrer la description", "Description" : "Description", "(Unsaved)" : "(Non enregistré)", @@ -300,11 +323,14 @@ OC.L10N.register( "Add due date" : "Ajouter une date d'échéance", "Choose a date" : "Sélectionner une date", "Remove due date" : "Retirer la date d'échéance", - "Mark as done" : "Marquer comme fait", "Due at:" : "Dû au :", "Not done" : "Non fait", "Unarchive card" : "Sortir la carte des archives", "Archive card" : "Archiver la carte", + "Assign a start date to this card…" : "Assigner une date de départ à cette carte...", + "Set a start date" : "Définir une date de départ", + "Add start date" : "Ajouter une date de départ", + "Remove start date" : "Supprimer la date de départ", "Assign a tag to this card…" : "Associer une étiquette à cette carte…", "Select or create a tag…" : "Sélectionner ou créer une étiquette", "Create a new tag:" : "Créer une nouvelle étiquette :", @@ -314,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Modifier le titre de la carte", "Open link" : "Ouvrir le lien", "Card deleted" : "Carte supprimée", + "Change card color" : "Changer la couleur de la carte", "Edit title" : "Modifier le titre", "Assign to me" : "Me l'affecter", "Unassign myself" : "Me désaffecter", - "Mark as not done" : "Marquer comme non fait", "Delete card" : "Supprimer la carte", - "seconds ago" : "à l'instant", "All boards" : "Tous les tableaux", "Archived boards" : "Tableaux archivés", "Shared with you" : "Partagés avec vous", @@ -412,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Recherche d'utilisateurs, de groupes et d'équipes...", "No participants found" : "Aucun participant trouvé", "Save" : "Enregistrer", + "seconds ago" : "à l'instant", "Today" : "Aujourd'hui", "Tomorrow" : "Demain", "No due" : "Sans échéance" diff --git a/l10n/fr.json b/l10n/fr.json index c9093a8e49..b805d94870 100644 --- a/l10n/fr.json +++ b/l10n/fr.json @@ -127,6 +127,7 @@ "Card not found" : "Carte introuvable", "Path is already shared with this card" : "Le chemin est déjà partagé avec cette carte", "Invalid date, date format must be YYYY-MM-DD" : "Date non valable, le format de la date doit être AAAA-MM-JJ", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Tous vos tableaux, incluant les colonnes, les cartes, les étiquettes, les attributions aux utilisateurs et les commentaires", "Personal planning and team project organization" : "Agenda personnel et organisation projet", "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 est un outil d'organisation de style kanban destiné à la planification personnelle et à l'organisation de projets pour les équipes intégrées à Nextcloud.\n\n\n- 📥 Ajoutez vos tâches à des cartes et organisez-les\n- 📄 Écrivez des notes supplémentaires en Markdown\n- 🔖 Affectez des étiquettes pour une organisation encore meilleure\n- 👥 Partagez avec votre équipe, vos amis ou votre famille\n- 📎 Joignez des fichiers et utilisez-les dans vos descriptions en Markdown\n- 💬 Échangez avec votre équipe grâce aux commentaires\n- ⚡ Gardez un œil sur les modifications dans le flux d'activité\n- 🚀 Organisez vos projets", "Add board" : "Ajouter un tableau", @@ -173,6 +174,8 @@ "Clear filter" : "Supprimer le filtre", "View Modes" : "Modes d'affichage", "Toggle View Modes" : "Basculer les modes d'affichage", + "Kanban view" : "Vue Kanban", + "Gantt view" : "Vue Gantt", "Hide archived cards" : "Masquer les cartes archivées", "Show archived cards" : "Afficher les cartes archivées", "Toggle compact mode" : "Activer/Désactiver l'affichage compact", @@ -189,6 +192,7 @@ "Admin settings" : "Paramètres d'administration", "Limit board creation to some groups" : "Limiter la création de tableaux à certains groupes", "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Les utilisateurs qui ne font pas partie de ces groupes ne pourront pas créer leurs propres tableaux, mais pourront toujours travailler sur les tableaux qui ont été partagés avec eux.", + "Enable federation" : "Activer la fédération", "Board actions" : "Actions sur le tableau", "Scroll sideways" : "Défilement latéral", "Navigate between cards" : "Naviguer entre les cartes", @@ -215,6 +219,13 @@ "Deleted lists" : "Listes supprimées", "Undo" : "Annuler", "Deleted cards" : "Cartes supprimées", + "Hours" : "Heures", + "Days" : "Jours", + "Weeks" : "Semaines", + "Months" : "Mois", + "No cards yet" : "Aucune carte pour l'instant", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Définissez une date de départ et une date d'échéance sur vos cartes pour les voir dans le diagramme de Gantt", + "Cards without dates ({count})" : "Cartes sans dates ({count})", "Failed to create share with {displayName}" : "Échec de la création du partage avec {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Êtes-vous sûr de vouloir transférer le tableau {title} à {user} ?", "Transfer the board." : "Transférer le tableau", @@ -260,6 +271,9 @@ "Remove attachment" : "Supprimer la pièce jointe", "Delete Attachment" : "Supprimer la pièce jointe", "Restore Attachment" : "Restaurer la pièce jointe", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Modifié : {modifiedDate} ⸱ Créé : {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Modifié : {modifiedDate}\nCréé : {createdDate}\nCréé par : {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Modifié : {modifiedDate}\nCréé : {createdDate}", "The title cannot be empty." : "Le titre ne peut pas être vide.", "Cannot close unsaved card!" : "Impossible de fermer une carte non enregistrée !", "Open in sidebar view" : "Ouvrir dans le panneau latéral", @@ -269,12 +283,21 @@ "No comments yet. Begin the discussion!" : "Aucun commentaire pour l'instant. Commencez la discussion !", "The comment cannot be empty." : "Un commentaire ne peut pas être vide.", "The comment cannot be longer than 1000 characters." : "Un commentaire est limité à 1 000 caractères.", + "Submit" : "Envoyer", "Created:" : "Créée le :", "In reply to" : "En réponse à", "Cancel reply" : "Annuler la réponse", "Reply" : "Répondre", "Update" : "Mettre à jour", + "Assign dependent cards" : "Désigner des cartes dépendantes", + "Mark as done" : "Marquer comme fait", + "Mark as not done" : "Marquer comme non fait", + "Remove dependency" : "Supprimer la dépendance", + "Add dependent card" : "Ajouter une carte dépendante", + "Assign a dependent card…" : "Désigner une carte dépendante...", + "Select a dependent card…" : "Sélectionner une carte dépendante...", "Write a description …" : "Écrire une description…", + "The description has been changed by another user." : "La description a été modifiée par un autre utilisateur.", "Could not save description" : "Impossible d'enregistrer la description", "Description" : "Description", "(Unsaved)" : "(Non enregistré)", @@ -298,11 +321,14 @@ "Add due date" : "Ajouter une date d'échéance", "Choose a date" : "Sélectionner une date", "Remove due date" : "Retirer la date d'échéance", - "Mark as done" : "Marquer comme fait", "Due at:" : "Dû au :", "Not done" : "Non fait", "Unarchive card" : "Sortir la carte des archives", "Archive card" : "Archiver la carte", + "Assign a start date to this card…" : "Assigner une date de départ à cette carte...", + "Set a start date" : "Définir une date de départ", + "Add start date" : "Ajouter une date de départ", + "Remove start date" : "Supprimer la date de départ", "Assign a tag to this card…" : "Associer une étiquette à cette carte…", "Select or create a tag…" : "Sélectionner ou créer une étiquette", "Create a new tag:" : "Créer une nouvelle étiquette :", @@ -312,12 +338,11 @@ "Edit card title" : "Modifier le titre de la carte", "Open link" : "Ouvrir le lien", "Card deleted" : "Carte supprimée", + "Change card color" : "Changer la couleur de la carte", "Edit title" : "Modifier le titre", "Assign to me" : "Me l'affecter", "Unassign myself" : "Me désaffecter", - "Mark as not done" : "Marquer comme non fait", "Delete card" : "Supprimer la carte", - "seconds ago" : "à l'instant", "All boards" : "Tous les tableaux", "Archived boards" : "Tableaux archivés", "Shared with you" : "Partagés avec vous", @@ -410,6 +435,7 @@ "Searching for users, groups and teams …" : "Recherche d'utilisateurs, de groupes et d'équipes...", "No participants found" : "Aucun participant trouvé", "Save" : "Enregistrer", + "seconds ago" : "à l'instant", "Today" : "Aujourd'hui", "Tomorrow" : "Demain", "No due" : "Sans échéance" diff --git a/l10n/ga.js b/l10n/ga.js index 00b1a3efb1..441ac65f2b 100644 --- a/l10n/ga.js +++ b/l10n/ga.js @@ -129,6 +129,7 @@ OC.L10N.register( "Card not found" : "Cárta gan aimsiú", "Path is already shared with this card" : "Tá an chonair roinnte leis an gcárta seo cheana féin", "Invalid date, date format must be YYYY-MM-DD" : "Dáta neamhbhailí, caithfidh formáid an dáta a bheith BBBB-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Gach bord atá i do sheilbh, lena n-áirítear cruacha, cártaí, lipéid, tascanna agus tuairimí", "Personal planning and team project organization" : "Pleanáil phearsanta agus eagrú tionscadail foirne", "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" : "Is uirlis eagraíochta stíl kanban é Deck atá dírithe ar phleanáil phearsanta agus eagrú tionscadail d'fhoirne atá comhtháite le Nextcloud.\n\n\n- 📥 Cuir do thascanna le cártaí agus cuir in ord iad\n- 📄 Scríobh síos nótaí breise i Markdown\n- 🔖 Sann lipéid le haghaidh eagrú níos fearr fós\n- 👥 Roinn le d'fhoireann, do chairde nó do theaghlach\n- 📎 Ceangail comhaid agus leabaigh iad i do chur síos Markdown\n- 💬 Déan plé le d’fhoireann ag úsáid tuairimí\n- ⚡ Coinnigh súil ar athruithe sa sruth gníomhaíochta\n- 🚀 Eagraigh do thionscadal", "Add board" : "Cuir bord leis", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Glan an scagaire", "View Modes" : "Modhanna Amharc", "Toggle View Modes" : "Scoránaigh Modhanna Amharc", + "Kanban view" : "Radharc Kanban", + "Gantt view" : "Radharc Gantt", "Hide archived cards" : "Folaigh cártaí cartlainne", "Show archived cards" : "Taispeáin cártaí cartlainne", "Toggle compact mode" : "Scoránaigh mód dlúth", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "Liostaí scriosta", "Undo" : "Cealaigh", "Deleted cards" : "Cártaí scriosta", + "Hours" : "Uaireanta", + "Days" : "Laethanta", + "Weeks" : "Seachtaine", + "Months" : "Míonna", + "No cards yet" : "Níl cártaí fós", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Socraigh dáta tosaigh agus dáta dlite ar do chártaí chun iad a fheiceáil ar chairt Gantt", + "Cards without dates ({count})" : "Cártaí gan dátaí ({count})", "Failed to create share with {displayName}" : "Theip ar chomhroinnt le {displayName} a chruthú", "Are you sure you want to transfer the board {title} to {user}?" : "An bhfuil tú cinnte gur mhaith leat an clár {title} a aistriú go {user}?", "Transfer the board." : "Aistrigh an bord.", @@ -275,11 +285,19 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Níl trácht ar bith fós. Cuir tús leis an bplé!", "The comment cannot be empty." : "Ní féidir leis an nóta tráchta a bheith folamh.", "The comment cannot be longer than 1000 characters." : "Ní féidir leis an nóta tráchta a bheith níos faide ná 1000 carachtar.", + "Submit" : "Cuir isteach", "Created:" : "Cruthaithe:", "In reply to" : "Mar fhreagra ar", "Cancel reply" : "Cealaigh freagra", "Reply" : "Freagra", "Update" : "Nuashonrú", + "Assign dependent cards" : "Sannadh cártaí cleithiúnacha", + "Mark as done" : "Marcáil mar a rinneadh", + "Mark as not done" : "Marcáil mar nach bhfuil déanta", + "Remove dependency" : "Bain spleáchas", + "Add dependent card" : "Cuir cárta cleithiúnach leis", + "Assign a dependent card…" : "Sannadh cárta cleithiúnach…", + "Select a dependent card…" : "Roghnaigh cárta spleách…", "Write a description …" : "Scríobh cur síos…", "The description has been changed by another user." : "Tá an cur síos athraithe ag úsáideoir eile.", "Could not save description" : "Níorbh fhéidir an cur síos a shábháil", @@ -305,7 +323,6 @@ OC.L10N.register( "Add due date" : "Cuir dáta dlite leis", "Choose a date" : "Roghnaigh dáta", "Remove due date" : "Bain an dáta dlite", - "Mark as done" : "Marcáil mar a rinneadh", "Due at:" : "Dlite ag:", "Not done" : "Ní dhearna", "Unarchive card" : "Cárta unarchive", @@ -323,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Cuir teideal an chárta in eagar", "Open link" : "Oscail nasc", "Card deleted" : "Cárta scriosta", + "Change card color" : "Athraigh dath an chárta", "Edit title" : "Cuir teideal in eagar", "Assign to me" : "Sann dom", "Unassign myself" : "Díshannadh mé féin", - "Mark as not done" : "Marcáil mar nach bhfuil déanta", "Delete card" : "Scrios cárta", - "seconds ago" : "soicind ó shin", "All boards" : "Gach boird", "Archived boards" : "Boird chartlainne", "Shared with you" : "Roinnte leat", @@ -421,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Ag cuardach úsáideoirí, grúpaí agus foirne…", "No participants found" : "Níor aimsíodh rannpháirtithe ar bith", "Save" : "Sábháil", + "seconds ago" : "soicind ó shin", "Today" : "Inniu", "Tomorrow" : "Amárach", "No due" : "Níl dlite" diff --git a/l10n/ga.json b/l10n/ga.json index 82cf83d7de..e0b9c0b63a 100644 --- a/l10n/ga.json +++ b/l10n/ga.json @@ -127,6 +127,7 @@ "Card not found" : "Cárta gan aimsiú", "Path is already shared with this card" : "Tá an chonair roinnte leis an gcárta seo cheana féin", "Invalid date, date format must be YYYY-MM-DD" : "Dáta neamhbhailí, caithfidh formáid an dáta a bheith BBBB-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Gach bord atá i do sheilbh, lena n-áirítear cruacha, cártaí, lipéid, tascanna agus tuairimí", "Personal planning and team project organization" : "Pleanáil phearsanta agus eagrú tionscadail foirne", "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" : "Is uirlis eagraíochta stíl kanban é Deck atá dírithe ar phleanáil phearsanta agus eagrú tionscadail d'fhoirne atá comhtháite le Nextcloud.\n\n\n- 📥 Cuir do thascanna le cártaí agus cuir in ord iad\n- 📄 Scríobh síos nótaí breise i Markdown\n- 🔖 Sann lipéid le haghaidh eagrú níos fearr fós\n- 👥 Roinn le d'fhoireann, do chairde nó do theaghlach\n- 📎 Ceangail comhaid agus leabaigh iad i do chur síos Markdown\n- 💬 Déan plé le d’fhoireann ag úsáid tuairimí\n- ⚡ Coinnigh súil ar athruithe sa sruth gníomhaíochta\n- 🚀 Eagraigh do thionscadal", "Add board" : "Cuir bord leis", @@ -173,6 +174,8 @@ "Clear filter" : "Glan an scagaire", "View Modes" : "Modhanna Amharc", "Toggle View Modes" : "Scoránaigh Modhanna Amharc", + "Kanban view" : "Radharc Kanban", + "Gantt view" : "Radharc Gantt", "Hide archived cards" : "Folaigh cártaí cartlainne", "Show archived cards" : "Taispeáin cártaí cartlainne", "Toggle compact mode" : "Scoránaigh mód dlúth", @@ -216,6 +219,13 @@ "Deleted lists" : "Liostaí scriosta", "Undo" : "Cealaigh", "Deleted cards" : "Cártaí scriosta", + "Hours" : "Uaireanta", + "Days" : "Laethanta", + "Weeks" : "Seachtaine", + "Months" : "Míonna", + "No cards yet" : "Níl cártaí fós", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Socraigh dáta tosaigh agus dáta dlite ar do chártaí chun iad a fheiceáil ar chairt Gantt", + "Cards without dates ({count})" : "Cártaí gan dátaí ({count})", "Failed to create share with {displayName}" : "Theip ar chomhroinnt le {displayName} a chruthú", "Are you sure you want to transfer the board {title} to {user}?" : "An bhfuil tú cinnte gur mhaith leat an clár {title} a aistriú go {user}?", "Transfer the board." : "Aistrigh an bord.", @@ -273,11 +283,19 @@ "No comments yet. Begin the discussion!" : "Níl trácht ar bith fós. Cuir tús leis an bplé!", "The comment cannot be empty." : "Ní féidir leis an nóta tráchta a bheith folamh.", "The comment cannot be longer than 1000 characters." : "Ní féidir leis an nóta tráchta a bheith níos faide ná 1000 carachtar.", + "Submit" : "Cuir isteach", "Created:" : "Cruthaithe:", "In reply to" : "Mar fhreagra ar", "Cancel reply" : "Cealaigh freagra", "Reply" : "Freagra", "Update" : "Nuashonrú", + "Assign dependent cards" : "Sannadh cártaí cleithiúnacha", + "Mark as done" : "Marcáil mar a rinneadh", + "Mark as not done" : "Marcáil mar nach bhfuil déanta", + "Remove dependency" : "Bain spleáchas", + "Add dependent card" : "Cuir cárta cleithiúnach leis", + "Assign a dependent card…" : "Sannadh cárta cleithiúnach…", + "Select a dependent card…" : "Roghnaigh cárta spleách…", "Write a description …" : "Scríobh cur síos…", "The description has been changed by another user." : "Tá an cur síos athraithe ag úsáideoir eile.", "Could not save description" : "Níorbh fhéidir an cur síos a shábháil", @@ -303,7 +321,6 @@ "Add due date" : "Cuir dáta dlite leis", "Choose a date" : "Roghnaigh dáta", "Remove due date" : "Bain an dáta dlite", - "Mark as done" : "Marcáil mar a rinneadh", "Due at:" : "Dlite ag:", "Not done" : "Ní dhearna", "Unarchive card" : "Cárta unarchive", @@ -321,12 +338,11 @@ "Edit card title" : "Cuir teideal an chárta in eagar", "Open link" : "Oscail nasc", "Card deleted" : "Cárta scriosta", + "Change card color" : "Athraigh dath an chárta", "Edit title" : "Cuir teideal in eagar", "Assign to me" : "Sann dom", "Unassign myself" : "Díshannadh mé féin", - "Mark as not done" : "Marcáil mar nach bhfuil déanta", "Delete card" : "Scrios cárta", - "seconds ago" : "soicind ó shin", "All boards" : "Gach boird", "Archived boards" : "Boird chartlainne", "Shared with you" : "Roinnte leat", @@ -419,6 +435,7 @@ "Searching for users, groups and teams …" : "Ag cuardach úsáideoirí, grúpaí agus foirne…", "No participants found" : "Níor aimsíodh rannpháirtithe ar bith", "Save" : "Sábháil", + "seconds ago" : "soicind ó shin", "Today" : "Inniu", "Tomorrow" : "Amárach", "No due" : "Níl dlite" diff --git a/l10n/gd.js b/l10n/gd.js index 447088d529..c8f8918c48 100644 --- a/l10n/gd.js +++ b/l10n/gd.js @@ -25,11 +25,11 @@ OC.L10N.register( "Delete" : "Sguab às", "Edit" : "Deasaich", "Download" : "Luchdaich a-nuas", - "seconds ago" : "diog air ais", "No notifications" : "Gun bhrath", "Close" : "Dùin", "Share" : "Co-roinn", "Save" : "Sàbhail", + "seconds ago" : "diog air ais", "Today" : "An-diugh" }, "nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;"); diff --git a/l10n/gd.json b/l10n/gd.json index eafec607d3..07c8a03a3e 100644 --- a/l10n/gd.json +++ b/l10n/gd.json @@ -23,11 +23,11 @@ "Delete" : "Sguab às", "Edit" : "Deasaich", "Download" : "Luchdaich a-nuas", - "seconds ago" : "diog air ais", "No notifications" : "Gun bhrath", "Close" : "Dùin", "Share" : "Co-roinn", "Save" : "Sàbhail", + "seconds ago" : "diog air ais", "Today" : "An-diugh" },"pluralForm" :"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;" } \ No newline at end of file diff --git a/l10n/gl.js b/l10n/gl.js index d90a9b54b5..976862d621 100644 --- a/l10n/gl.js +++ b/l10n/gl.js @@ -218,6 +218,11 @@ OC.L10N.register( "Deleted lists" : "Listas eliminadas", "Undo" : "Desfacer", "Deleted cards" : "Eliminar tarxetas", + "Hours" : "Horas", + "Days" : "Días", + "Weeks" : "Semanas", + "Months" : "Meses", + "No cards yet" : "Aínda non hai ningunha tarxeta", "Failed to create share with {displayName}" : "Produciuse un fallo ao crear o uso compartido con {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Confirma que quere transferir o taboleiro {title} a {user}?", "Transfer the board." : "Transferir o taboleiro.", @@ -270,11 +275,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Aínda non hai comentarios. Comece o debate!", "The comment cannot be empty." : "O comentario non pode estar baleiro", "The comment cannot be longer than 1000 characters." : "O comentario non pode ter máis de 1000 caracteres.", + "Submit" : "Enviar", "Created:" : "Creado:", "In reply to" : "En resposta a", "Cancel reply" : "Cancelar a resposta", "Reply" : "Responder", "Update" : "Actualizar", + "Mark as done" : "Marcar como feito", + "Mark as not done" : "Marcar como sen facer", "Write a description …" : "Escriba unha descrición…", "Could not save description" : "Non foi posíbel gardar a descrición", "Description" : "Descrición", @@ -299,7 +307,6 @@ OC.L10N.register( "Add due date" : "Engadir a data de remate", "Choose a date" : "Escoller a data", "Remove due date" : "Retirar a data de caducidade", - "Mark as done" : "Marcar como feito", "Due at:" : "Rematar o:", "Not done" : "Sen facer", "Unarchive card" : "Desarquivar a tarxeta", @@ -316,9 +323,7 @@ OC.L10N.register( "Edit title" : "Editar o título", "Assign to me" : "Asignarme", "Unassign myself" : "Desasignarme", - "Mark as not done" : "Marcar como sen facer", "Delete card" : "Eliminar tarxeta", - "seconds ago" : "segundos atrás", "All boards" : "Todos os taboleiros", "Archived boards" : "Taboleiros arquivados", "Shared with you" : "Compartido con Vde.", @@ -411,6 +416,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Buscando por usuarios, grupos e equipos…", "No participants found" : "Non se atopou ningún participante", "Save" : "Gardar", + "seconds ago" : "segundos atrás", "Today" : "Hoxe", "Tomorrow" : "Mañá", "No due" : "Sen caducidade" diff --git a/l10n/gl.json b/l10n/gl.json index 2630f6e650..1e3927706e 100644 --- a/l10n/gl.json +++ b/l10n/gl.json @@ -216,6 +216,11 @@ "Deleted lists" : "Listas eliminadas", "Undo" : "Desfacer", "Deleted cards" : "Eliminar tarxetas", + "Hours" : "Horas", + "Days" : "Días", + "Weeks" : "Semanas", + "Months" : "Meses", + "No cards yet" : "Aínda non hai ningunha tarxeta", "Failed to create share with {displayName}" : "Produciuse un fallo ao crear o uso compartido con {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Confirma que quere transferir o taboleiro {title} a {user}?", "Transfer the board." : "Transferir o taboleiro.", @@ -268,11 +273,14 @@ "No comments yet. Begin the discussion!" : "Aínda non hai comentarios. Comece o debate!", "The comment cannot be empty." : "O comentario non pode estar baleiro", "The comment cannot be longer than 1000 characters." : "O comentario non pode ter máis de 1000 caracteres.", + "Submit" : "Enviar", "Created:" : "Creado:", "In reply to" : "En resposta a", "Cancel reply" : "Cancelar a resposta", "Reply" : "Responder", "Update" : "Actualizar", + "Mark as done" : "Marcar como feito", + "Mark as not done" : "Marcar como sen facer", "Write a description …" : "Escriba unha descrición…", "Could not save description" : "Non foi posíbel gardar a descrición", "Description" : "Descrición", @@ -297,7 +305,6 @@ "Add due date" : "Engadir a data de remate", "Choose a date" : "Escoller a data", "Remove due date" : "Retirar a data de caducidade", - "Mark as done" : "Marcar como feito", "Due at:" : "Rematar o:", "Not done" : "Sen facer", "Unarchive card" : "Desarquivar a tarxeta", @@ -314,9 +321,7 @@ "Edit title" : "Editar o título", "Assign to me" : "Asignarme", "Unassign myself" : "Desasignarme", - "Mark as not done" : "Marcar como sen facer", "Delete card" : "Eliminar tarxeta", - "seconds ago" : "segundos atrás", "All boards" : "Todos os taboleiros", "Archived boards" : "Taboleiros arquivados", "Shared with you" : "Compartido con Vde.", @@ -409,6 +414,7 @@ "Searching for users, groups and teams …" : "Buscando por usuarios, grupos e equipos…", "No participants found" : "Non se atopou ningún participante", "Save" : "Gardar", + "seconds ago" : "segundos atrás", "Today" : "Hoxe", "Tomorrow" : "Mañá", "No due" : "Sen caducidade" diff --git a/l10n/he.js b/l10n/he.js index d6d318fe87..ec3e2ee4f0 100644 --- a/l10n/he.js +++ b/l10n/he.js @@ -155,6 +155,11 @@ OC.L10N.register( "Deleted lists" : "רשימות שנמחקו", "Undo" : "ביטול", "Deleted cards" : "כרטיסים שנמחקו", + "Hours" : "שעות", + "Days" : "ימים", + "Weeks" : "שבועות", + "Months" : "חודשים", + "No cards yet" : "אין כרטיסים עדיין", "Failed to create share with {displayName}" : "יצירת השיתוף עם {displayName} נכשלה", "Transfer" : "העברה", "Board owner" : "בעלות על הלוח", @@ -192,6 +197,7 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "אין עדיין הערות. אפשר להתחיל לדון!", "The comment cannot be empty." : "ההערה לא יכולה להיות ריקה.", "The comment cannot be longer than 1000 characters." : "אורך ההערה לא יכול לחצות את רף 1000 התווים.", + "Submit" : "שליחה", "Created:" : "מועד היצירה:", "In reply to" : "בתגובה אל", "Reply" : "תגובה", @@ -217,7 +223,6 @@ OC.L10N.register( "Assign to me" : "הקצאה אלי", "Unassign myself" : "לבטל את הקצאת עצמי", "Delete card" : "מחיקת כרטיס לארכיון", - "seconds ago" : "לפני מספר שניות", "All boards" : "כל הלוחות", "Archived boards" : "לוחות שנשמרו בארכיון", "Shared with you" : "משותף אתך", @@ -262,6 +267,7 @@ OC.L10N.register( "The card \"%s\" on \"%s\" has reached its due date." : "הכרטיס „%s” שתחת „%s” הגיע למועד התפוגה שלו.", "No participants found" : "לא נמצאו משתתפים", "Save" : "שמור", + "seconds ago" : "לפני מספר שניות", "Today" : "היום", "Tomorrow" : "מחר", "No due" : "אין תאריך יעד" diff --git a/l10n/he.json b/l10n/he.json index 481db74b39..2c4b6891f8 100644 --- a/l10n/he.json +++ b/l10n/he.json @@ -153,6 +153,11 @@ "Deleted lists" : "רשימות שנמחקו", "Undo" : "ביטול", "Deleted cards" : "כרטיסים שנמחקו", + "Hours" : "שעות", + "Days" : "ימים", + "Weeks" : "שבועות", + "Months" : "חודשים", + "No cards yet" : "אין כרטיסים עדיין", "Failed to create share with {displayName}" : "יצירת השיתוף עם {displayName} נכשלה", "Transfer" : "העברה", "Board owner" : "בעלות על הלוח", @@ -190,6 +195,7 @@ "No comments yet. Begin the discussion!" : "אין עדיין הערות. אפשר להתחיל לדון!", "The comment cannot be empty." : "ההערה לא יכולה להיות ריקה.", "The comment cannot be longer than 1000 characters." : "אורך ההערה לא יכול לחצות את רף 1000 התווים.", + "Submit" : "שליחה", "Created:" : "מועד היצירה:", "In reply to" : "בתגובה אל", "Reply" : "תגובה", @@ -215,7 +221,6 @@ "Assign to me" : "הקצאה אלי", "Unassign myself" : "לבטל את הקצאת עצמי", "Delete card" : "מחיקת כרטיס לארכיון", - "seconds ago" : "לפני מספר שניות", "All boards" : "כל הלוחות", "Archived boards" : "לוחות שנשמרו בארכיון", "Shared with you" : "משותף אתך", @@ -260,6 +265,7 @@ "The card \"%s\" on \"%s\" has reached its due date." : "הכרטיס „%s” שתחת „%s” הגיע למועד התפוגה שלו.", "No participants found" : "לא נמצאו משתתפים", "Save" : "שמור", + "seconds ago" : "לפני מספר שניות", "Today" : "היום", "Tomorrow" : "מחר", "No due" : "אין תאריך יעד" diff --git a/l10n/hr.js b/l10n/hr.js index 9439c28801..d0b1295a2a 100644 --- a/l10n/hr.js +++ b/l10n/hr.js @@ -218,6 +218,10 @@ OC.L10N.register( "Deleted lists" : "Izbrisani popisi", "Undo" : "Poništi", "Deleted cards" : "Izbrisane kartice", + "Hours" : "Sati", + "Weeks" : "Tjedana", + "Months" : "Mjeseci", + "No cards yet" : "Još nema kartica", "Failed to create share with {displayName}" : "Dijeljenje s {displayName} nije uspjelo", "Are you sure you want to transfer the board {title} to {user}?" : "Jeste li sigurni da želite prenijeti ploču {title} na korisnika {user}?", "Transfer the board." : "Prenesi ploču.", @@ -272,11 +276,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Nema komentara. Započnite raspravu!", "The comment cannot be empty." : "Komentar ne može biti prazan.", "The comment cannot be longer than 1000 characters." : "Komentar ne može duži od 1000 znakova.", + "Submit" : "Šalji", "Created:" : "Stvoreno:", "In reply to" : "Kao odgovor", "Cancel reply" : "Prekini odgovor", "Reply" : "Odgovori", "Update" : "Ažuriraj", + "Mark as done" : "Označi kao završeno", + "Mark as not done" : "Označi kao nedovršeno", "Write a description …" : "Napišite opis...", "The description has been changed by another user." : "Opis je promijenio drugi korisnik.", "Could not save description" : "Nije moguće spremiti opis", @@ -302,7 +309,6 @@ OC.L10N.register( "Add due date" : "Dodaj rok", "Choose a date" : "Odaberite datum", "Remove due date" : "Ukloni datum dospijeća", - "Mark as done" : "Označi kao završeno", "Due at:" : "Rok u:", "Not done" : "Nije dovršeno", "Unarchive card" : "Dearhiviraj karticu", @@ -323,9 +329,7 @@ OC.L10N.register( "Edit title" : "Uredi naslov", "Assign to me" : "Dodijeli meni", "Unassign myself" : "Ukloni sebe", - "Mark as not done" : "Označi kao nedovršeno", "Delete card" : "Izbriši karticu", - "seconds ago" : "prije nekoliko sekundi", "All boards" : "Sve ploče", "Archived boards" : "Arhivirane ploče", "Shared with you" : "Podijeljeno s vama", @@ -418,6 +422,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Pretraživanje korisnika, grupa i timova …", "No participants found" : "Nije pronađen nijedan sudionik", "Save" : "Spremi", + "seconds ago" : "prije nekoliko sekundi", "Today" : "Danas", "Tomorrow" : "Sutra", "No due" : "Nema nezavršenih" diff --git a/l10n/hr.json b/l10n/hr.json index e2a28ea6f5..dd1e6511d6 100644 --- a/l10n/hr.json +++ b/l10n/hr.json @@ -216,6 +216,10 @@ "Deleted lists" : "Izbrisani popisi", "Undo" : "Poništi", "Deleted cards" : "Izbrisane kartice", + "Hours" : "Sati", + "Weeks" : "Tjedana", + "Months" : "Mjeseci", + "No cards yet" : "Još nema kartica", "Failed to create share with {displayName}" : "Dijeljenje s {displayName} nije uspjelo", "Are you sure you want to transfer the board {title} to {user}?" : "Jeste li sigurni da želite prenijeti ploču {title} na korisnika {user}?", "Transfer the board." : "Prenesi ploču.", @@ -270,11 +274,14 @@ "No comments yet. Begin the discussion!" : "Nema komentara. Započnite raspravu!", "The comment cannot be empty." : "Komentar ne može biti prazan.", "The comment cannot be longer than 1000 characters." : "Komentar ne može duži od 1000 znakova.", + "Submit" : "Šalji", "Created:" : "Stvoreno:", "In reply to" : "Kao odgovor", "Cancel reply" : "Prekini odgovor", "Reply" : "Odgovori", "Update" : "Ažuriraj", + "Mark as done" : "Označi kao završeno", + "Mark as not done" : "Označi kao nedovršeno", "Write a description …" : "Napišite opis...", "The description has been changed by another user." : "Opis je promijenio drugi korisnik.", "Could not save description" : "Nije moguće spremiti opis", @@ -300,7 +307,6 @@ "Add due date" : "Dodaj rok", "Choose a date" : "Odaberite datum", "Remove due date" : "Ukloni datum dospijeća", - "Mark as done" : "Označi kao završeno", "Due at:" : "Rok u:", "Not done" : "Nije dovršeno", "Unarchive card" : "Dearhiviraj karticu", @@ -321,9 +327,7 @@ "Edit title" : "Uredi naslov", "Assign to me" : "Dodijeli meni", "Unassign myself" : "Ukloni sebe", - "Mark as not done" : "Označi kao nedovršeno", "Delete card" : "Izbriši karticu", - "seconds ago" : "prije nekoliko sekundi", "All boards" : "Sve ploče", "Archived boards" : "Arhivirane ploče", "Shared with you" : "Podijeljeno s vama", @@ -416,6 +420,7 @@ "Searching for users, groups and teams …" : "Pretraživanje korisnika, grupa i timova …", "No participants found" : "Nije pronađen nijedan sudionik", "Save" : "Spremi", + "seconds ago" : "prije nekoliko sekundi", "Today" : "Danas", "Tomorrow" : "Sutra", "No due" : "Nema nezavršenih" diff --git a/l10n/hu.js b/l10n/hu.js index c832e637b2..392fb4bd36 100644 --- a/l10n/hu.js +++ b/l10n/hu.js @@ -122,13 +122,14 @@ OC.L10N.register( "3. Apply rich formatting and link content" : "3. Alkalmazzon gazdag formázást és hivatkozzon tartalomra", "4. Share, comment and collaborate!" : "4. Osszon meg, szóljon hozzá és dolgozzanak együtt.", "Create your first card!" : "Hozza létre az első kártyáját.", - "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Ez a megjegyzés több mint %s karakter hosszú.\nMellékletként lett hozzáadva a(z) %s nevű kártyához.\nEzen az URL-en érhető el: %s.", + "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Ez a megjegyzés több mint %s karakter hosszú.\nMellékletként lett hozzáadva a(z) %s nevű kártyához.\nEzen a webcímen érhető el: %s.", "Attachments" : "Mellékletek", "File" : "Fájl", "date" : "dátum", "Card not found" : "A kártya nem található", "Path is already shared with this card" : "Az útvonal már meg van osztva ezzel a kártyával", "Invalid date, date format must be YYYY-MM-DD" : "Érvénytelen dátum, a dátumnak YYYY-MM-DD formátumúnak kell lennie", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Az összes tábla, amelynek Ön a tulajdonosa, beleértve a listákat, kártyákat, címkéket, hozzárendeléseket és megjegyzéseket", "Personal planning and team project organization" : "Személyes tervezés és csapatos projektszervezés", "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" : "A Kártyák egy kanban-stílusú szervezőeszköz, amely a személyes tervezést és a csapatok projektszervezését célozza, a Nextcloudba integrálva.\n\n\n- 📥 Saját feladatok kártyákhoz adása, és azok sorrendezése\n- 📄 További jegyzetek leírása Markdownban\n- 🔖 Címkék hozzárendelése a még jobb rendszerezés miatt\n- 👥 Megosztás a csapattal, barátokkal vagy családdal\n- 📎 Fájlok hozzáadása mellékletként, vagy beágyazás a Markdown leírásba\n- 💬 Megbeszélés a csapattal hozzászólások használatával\n- ⚡ A változások követése a tevékenységnaplóban\n- 🚀 Rendszerezze a projektjét", "Add board" : "Tábla hozzáadása", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Szűrő törlése", "View Modes" : "Módok megtekintése", "Toggle View Modes" : "Nézetmódváltás", + "Kanban view" : "Kanban nézet", + "Gantt view" : "Gantt nézet", "Hide archived cards" : "Archivált kártyák elrejtése", "Show archived cards" : "Archivált kártyák megjelenítése", "Toggle compact mode" : "Kompakt mód be/ki", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "Törölt listák", "Undo" : "Visszavonás", "Deleted cards" : "Törölt kártyák", + "Hours" : "Óra", + "Days" : "Napok", + "Weeks" : "Hetek", + "Months" : "Hónapok", + "No cards yet" : "Még nincsenek kártyák", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Állítson be kezdődátumot és határidőt a kártyákon, hogy lássa őket a Gantt-diagramon", + "Cards without dates ({count})" : "Dátum nélküli kártyák ({count})", "Failed to create share with {displayName}" : "Nem lehet létrehozni a következő megosztást: {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Biztos, hogy átadja a(z) {board} tábla tulajdonjogát {user} számára?", "Transfer the board." : "A tábla átadása.", @@ -263,6 +273,9 @@ OC.L10N.register( "Remove attachment" : "Melléklet eltávolítása", "Delete Attachment" : "Melléklet törlése", "Restore Attachment" : "Melléklet visszaállítása", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Módosítva: {modifiedDate} ⸱ Létrehozva: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Módosítva: {modifiedDate}\nLétrehozva: {createdDate}\nLétrehozta: {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Módosítva: {modifiedDate}\nLétrehozva: {createdDate}", "The title cannot be empty." : "A cím nem lehet üres.", "Cannot close unsaved card!" : "A mentetlen kártya nem zárható be!", "Open in sidebar view" : "Oldalsáv nézet megnyitása", @@ -272,11 +285,19 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Még nincsenek hozzászólások. Kezdje el a beszélgetést!", "The comment cannot be empty." : "A hozzászólás nem lehet üres.", "The comment cannot be longer than 1000 characters." : "A megjegyzés nem lehet 1000 karakternél hosszabb.", + "Submit" : "Beküldés", "Created:" : "Létrehozva:", "In reply to" : "Válaszként erre:", "Cancel reply" : "Válasz elvetése", "Reply" : "Válasz", "Update" : "Frissítés", + "Assign dependent cards" : "Függő kártyák hozzárendelése", + "Mark as done" : "Megjelölés készként", + "Mark as not done" : "Megjelölés nem készként", + "Remove dependency" : "Függőség eltávolítása", + "Add dependent card" : "Függő kártya hozzáadása", + "Assign a dependent card…" : "Függő kártya hozzárendelése…", + "Select a dependent card…" : "Válasszon függő kártyát…", "Write a description …" : "Leírás megadása…", "The description has been changed by another user." : "A leírást egy másik felhasználó megváltoztatta.", "Could not save description" : "A leírás mentése sikertelen", @@ -302,7 +323,6 @@ OC.L10N.register( "Add due date" : "Határidő hozzáadása", "Choose a date" : "Válasszon dátumot", "Remove due date" : "Határidő eltávolítása", - "Mark as done" : "Megjelölés készként", "Due at:" : "Határidő:", "Not done" : "Nincs kész", "Unarchive card" : "Kártya archiválásának visszavonása", @@ -320,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Kártyacím szerkesztése", "Open link" : "Hivatkozás megnyitása", "Card deleted" : "Kártya törölve", + "Change card color" : "Kártya színének módosítása", "Edit title" : "Cím szerkesztése", "Assign to me" : "Hozzám rendelés", "Unassign myself" : "Saját magam hozzárendelésének eltávolítása", - "Mark as not done" : "Megjelölés nem készként", "Delete card" : "Kártya törlése", - "seconds ago" : "másodperce", "All boards" : "Az összes tábla", "Archived boards" : "Archivált táblák", "Shared with you" : "Megosztva Önnel", @@ -418,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Felhasználók, csoportok és csapatok keresése…", "No participants found" : "Nem találhatók résztvevők", "Save" : "Mentés", + "seconds ago" : "másodperce", "Today" : "Ma", "Tomorrow" : "Holnap", "No due" : "Nincs határidő" diff --git a/l10n/hu.json b/l10n/hu.json index b83a06468f..884498c793 100644 --- a/l10n/hu.json +++ b/l10n/hu.json @@ -120,13 +120,14 @@ "3. Apply rich formatting and link content" : "3. Alkalmazzon gazdag formázást és hivatkozzon tartalomra", "4. Share, comment and collaborate!" : "4. Osszon meg, szóljon hozzá és dolgozzanak együtt.", "Create your first card!" : "Hozza létre az első kártyáját.", - "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Ez a megjegyzés több mint %s karakter hosszú.\nMellékletként lett hozzáadva a(z) %s nevű kártyához.\nEzen az URL-en érhető el: %s.", + "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Ez a megjegyzés több mint %s karakter hosszú.\nMellékletként lett hozzáadva a(z) %s nevű kártyához.\nEzen a webcímen érhető el: %s.", "Attachments" : "Mellékletek", "File" : "Fájl", "date" : "dátum", "Card not found" : "A kártya nem található", "Path is already shared with this card" : "Az útvonal már meg van osztva ezzel a kártyával", "Invalid date, date format must be YYYY-MM-DD" : "Érvénytelen dátum, a dátumnak YYYY-MM-DD formátumúnak kell lennie", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Az összes tábla, amelynek Ön a tulajdonosa, beleértve a listákat, kártyákat, címkéket, hozzárendeléseket és megjegyzéseket", "Personal planning and team project organization" : "Személyes tervezés és csapatos projektszervezés", "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" : "A Kártyák egy kanban-stílusú szervezőeszköz, amely a személyes tervezést és a csapatok projektszervezését célozza, a Nextcloudba integrálva.\n\n\n- 📥 Saját feladatok kártyákhoz adása, és azok sorrendezése\n- 📄 További jegyzetek leírása Markdownban\n- 🔖 Címkék hozzárendelése a még jobb rendszerezés miatt\n- 👥 Megosztás a csapattal, barátokkal vagy családdal\n- 📎 Fájlok hozzáadása mellékletként, vagy beágyazás a Markdown leírásba\n- 💬 Megbeszélés a csapattal hozzászólások használatával\n- ⚡ A változások követése a tevékenységnaplóban\n- 🚀 Rendszerezze a projektjét", "Add board" : "Tábla hozzáadása", @@ -173,6 +174,8 @@ "Clear filter" : "Szűrő törlése", "View Modes" : "Módok megtekintése", "Toggle View Modes" : "Nézetmódváltás", + "Kanban view" : "Kanban nézet", + "Gantt view" : "Gantt nézet", "Hide archived cards" : "Archivált kártyák elrejtése", "Show archived cards" : "Archivált kártyák megjelenítése", "Toggle compact mode" : "Kompakt mód be/ki", @@ -216,6 +219,13 @@ "Deleted lists" : "Törölt listák", "Undo" : "Visszavonás", "Deleted cards" : "Törölt kártyák", + "Hours" : "Óra", + "Days" : "Napok", + "Weeks" : "Hetek", + "Months" : "Hónapok", + "No cards yet" : "Még nincsenek kártyák", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Állítson be kezdődátumot és határidőt a kártyákon, hogy lássa őket a Gantt-diagramon", + "Cards without dates ({count})" : "Dátum nélküli kártyák ({count})", "Failed to create share with {displayName}" : "Nem lehet létrehozni a következő megosztást: {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Biztos, hogy átadja a(z) {board} tábla tulajdonjogát {user} számára?", "Transfer the board." : "A tábla átadása.", @@ -261,6 +271,9 @@ "Remove attachment" : "Melléklet eltávolítása", "Delete Attachment" : "Melléklet törlése", "Restore Attachment" : "Melléklet visszaállítása", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Módosítva: {modifiedDate} ⸱ Létrehozva: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Módosítva: {modifiedDate}\nLétrehozva: {createdDate}\nLétrehozta: {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Módosítva: {modifiedDate}\nLétrehozva: {createdDate}", "The title cannot be empty." : "A cím nem lehet üres.", "Cannot close unsaved card!" : "A mentetlen kártya nem zárható be!", "Open in sidebar view" : "Oldalsáv nézet megnyitása", @@ -270,11 +283,19 @@ "No comments yet. Begin the discussion!" : "Még nincsenek hozzászólások. Kezdje el a beszélgetést!", "The comment cannot be empty." : "A hozzászólás nem lehet üres.", "The comment cannot be longer than 1000 characters." : "A megjegyzés nem lehet 1000 karakternél hosszabb.", + "Submit" : "Beküldés", "Created:" : "Létrehozva:", "In reply to" : "Válaszként erre:", "Cancel reply" : "Válasz elvetése", "Reply" : "Válasz", "Update" : "Frissítés", + "Assign dependent cards" : "Függő kártyák hozzárendelése", + "Mark as done" : "Megjelölés készként", + "Mark as not done" : "Megjelölés nem készként", + "Remove dependency" : "Függőség eltávolítása", + "Add dependent card" : "Függő kártya hozzáadása", + "Assign a dependent card…" : "Függő kártya hozzárendelése…", + "Select a dependent card…" : "Válasszon függő kártyát…", "Write a description …" : "Leírás megadása…", "The description has been changed by another user." : "A leírást egy másik felhasználó megváltoztatta.", "Could not save description" : "A leírás mentése sikertelen", @@ -300,7 +321,6 @@ "Add due date" : "Határidő hozzáadása", "Choose a date" : "Válasszon dátumot", "Remove due date" : "Határidő eltávolítása", - "Mark as done" : "Megjelölés készként", "Due at:" : "Határidő:", "Not done" : "Nincs kész", "Unarchive card" : "Kártya archiválásának visszavonása", @@ -318,12 +338,11 @@ "Edit card title" : "Kártyacím szerkesztése", "Open link" : "Hivatkozás megnyitása", "Card deleted" : "Kártya törölve", + "Change card color" : "Kártya színének módosítása", "Edit title" : "Cím szerkesztése", "Assign to me" : "Hozzám rendelés", "Unassign myself" : "Saját magam hozzárendelésének eltávolítása", - "Mark as not done" : "Megjelölés nem készként", "Delete card" : "Kártya törlése", - "seconds ago" : "másodperce", "All boards" : "Az összes tábla", "Archived boards" : "Archivált táblák", "Shared with you" : "Megosztva Önnel", @@ -416,6 +435,7 @@ "Searching for users, groups and teams …" : "Felhasználók, csoportok és csapatok keresése…", "No participants found" : "Nem találhatók résztvevők", "Save" : "Mentés", + "seconds ago" : "másodperce", "Today" : "Ma", "Tomorrow" : "Holnap", "No due" : "Nincs határidő" diff --git a/l10n/hy.js b/l10n/hy.js index 921f599d66..7157e2f9a3 100644 --- a/l10n/hy.js +++ b/l10n/hy.js @@ -16,6 +16,7 @@ OC.L10N.register( "General" : "Ընդհանուր", "Search" : "Search", "Activity" : "Գործունեություն", + "Hours" : "Ժամ", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Owner", @@ -26,13 +27,13 @@ OC.L10N.register( "Created:" : "Ստեղծված.", "Update" : "Թարմացնել", "Description" : "Նկարագրություն", - "seconds ago" : "վրկ. առաջ", "Shared with you" : "Shared with you", "Export" : "Արտահանում", "Close" : "Փակել", "Modified" : "Փոփոխված", "Share" : "Կիսվել", "Save" : "Պահպանել", + "seconds ago" : "վրկ. առաջ", "Today" : "այսօր" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/hy.json b/l10n/hy.json index 27be961857..5ee94364b8 100644 --- a/l10n/hy.json +++ b/l10n/hy.json @@ -14,6 +14,7 @@ "General" : "Ընդհանուր", "Search" : "Search", "Activity" : "Գործունեություն", + "Hours" : "Ժամ", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Owner", @@ -24,13 +25,13 @@ "Created:" : "Ստեղծված.", "Update" : "Թարմացնել", "Description" : "Նկարագրություն", - "seconds ago" : "վրկ. առաջ", "Shared with you" : "Shared with you", "Export" : "Արտահանում", "Close" : "Փակել", "Modified" : "Փոփոխված", "Share" : "Կիսվել", "Save" : "Պահպանել", + "seconds ago" : "վրկ. առաջ", "Today" : "այսօր" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/ia.js b/l10n/ia.js index a64131e5fc..62f7cb7f53 100644 --- a/l10n/ia.js +++ b/l10n/ia.js @@ -19,6 +19,7 @@ OC.L10N.register( "Tags" : "Etiquettas", "Activity" : "Activitate", "Undo" : "Disfacer", + "Hours" : "Horas", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Owner", @@ -32,7 +33,6 @@ OC.L10N.register( "Update" : "Actualisation", "Description" : "Description", "(group)" : "(gruppo)", - "seconds ago" : "secundas passate", "Shared with you" : "Compartite con te", "No notifications" : "Nulle notificationes", "Advanced options" : "Optiones avantiate", @@ -41,6 +41,7 @@ OC.L10N.register( "Modified" : "Modificate", "Share" : "Compartir", "Save" : "Salveguardar", + "seconds ago" : "secundas passate", "Today" : "Hodie", "Tomorrow" : "Deman" }, diff --git a/l10n/ia.json b/l10n/ia.json index dd7f6189d6..8757822410 100644 --- a/l10n/ia.json +++ b/l10n/ia.json @@ -17,6 +17,7 @@ "Tags" : "Etiquettas", "Activity" : "Activitate", "Undo" : "Disfacer", + "Hours" : "Horas", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Owner", @@ -30,7 +31,6 @@ "Update" : "Actualisation", "Description" : "Description", "(group)" : "(gruppo)", - "seconds ago" : "secundas passate", "Shared with you" : "Compartite con te", "No notifications" : "Nulle notificationes", "Advanced options" : "Optiones avantiate", @@ -39,6 +39,7 @@ "Modified" : "Modificate", "Share" : "Compartir", "Save" : "Salveguardar", + "seconds ago" : "secundas passate", "Today" : "Hodie", "Tomorrow" : "Deman" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/l10n/id.js b/l10n/id.js index 91dc53e746..816a32ce97 100644 --- a/l10n/id.js +++ b/l10n/id.js @@ -216,6 +216,11 @@ OC.L10N.register( "Deleted lists" : "Daftar terhapus", "Undo" : "Undo", "Deleted cards" : "Kartu terhapus", + "Hours" : "Jam", + "Days" : "Hari", + "Weeks" : "Pekan", + "Months" : "Bulan", + "No cards yet" : "Belum ada kartu", "Failed to create share with {displayName}" : "Gagal membuat berbagi dengan {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Apakah Anda yakin ingin mentransfer papan {title} ke {user}?", "Transfer the board." : "Transfer papan.", @@ -268,11 +273,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Belum ada komentar. Mulai berdiskusi!", "The comment cannot be empty." : "Komentar tidak dapat kosong.", "The comment cannot be longer than 1000 characters." : "Komentar tidak dapat melebihi 1000 karakter.", + "Submit" : "Kirim", "Created:" : "Dibuat:", "In reply to" : "Membalas kepada", "Cancel reply" : "Batalkan balasan", "Reply" : "Balas", "Update" : "Perbarui", + "Mark as done" : "Tandai sebagai selesai", + "Mark as not done" : "Tandai sebagai belum selesai", "Write a description …" : "Tulis deskripsi …", "Could not save description" : "Tidak dapat menyimpan deskripsi", "Description" : "Deskrisi", @@ -297,7 +305,6 @@ OC.L10N.register( "Add due date" : "Tambahkan tanggal jatuh tempo", "Choose a date" : "Pilih tanggal", "Remove due date" : "Hapus tenggat", - "Mark as done" : "Tandai sebagai selesai", "Due at:" : "Jatuh tempo pada:", "Not done" : "Belum selesai", "Unarchive card" : "Memulihkan kartu", @@ -314,9 +321,7 @@ OC.L10N.register( "Edit title" : "Edit judul", "Assign to me" : "Tugaskan saya", "Unassign myself" : "Batalkan penetapan diri saya", - "Mark as not done" : "Tandai sebagai belum selesai", "Delete card" : "Hapus kartu", - "seconds ago" : "beberapa detik yang lalu", "All boards" : "Semua papan", "Archived boards" : "Papan terarsip", "Shared with you" : "Shared with you", @@ -407,6 +412,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Mencari pengguna, grup, dan tim …", "No participants found" : "Tidak ada peserta ditemukan", "Save" : "Simpan", + "seconds ago" : "beberapa detik yang lalu", "Today" : "Hari ini", "Tomorrow" : "Besok", "No due" : "Tanpa jatuh tempo" diff --git a/l10n/id.json b/l10n/id.json index fd3f7413b2..a70683dd10 100644 --- a/l10n/id.json +++ b/l10n/id.json @@ -214,6 +214,11 @@ "Deleted lists" : "Daftar terhapus", "Undo" : "Undo", "Deleted cards" : "Kartu terhapus", + "Hours" : "Jam", + "Days" : "Hari", + "Weeks" : "Pekan", + "Months" : "Bulan", + "No cards yet" : "Belum ada kartu", "Failed to create share with {displayName}" : "Gagal membuat berbagi dengan {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Apakah Anda yakin ingin mentransfer papan {title} ke {user}?", "Transfer the board." : "Transfer papan.", @@ -266,11 +271,14 @@ "No comments yet. Begin the discussion!" : "Belum ada komentar. Mulai berdiskusi!", "The comment cannot be empty." : "Komentar tidak dapat kosong.", "The comment cannot be longer than 1000 characters." : "Komentar tidak dapat melebihi 1000 karakter.", + "Submit" : "Kirim", "Created:" : "Dibuat:", "In reply to" : "Membalas kepada", "Cancel reply" : "Batalkan balasan", "Reply" : "Balas", "Update" : "Perbarui", + "Mark as done" : "Tandai sebagai selesai", + "Mark as not done" : "Tandai sebagai belum selesai", "Write a description …" : "Tulis deskripsi …", "Could not save description" : "Tidak dapat menyimpan deskripsi", "Description" : "Deskrisi", @@ -295,7 +303,6 @@ "Add due date" : "Tambahkan tanggal jatuh tempo", "Choose a date" : "Pilih tanggal", "Remove due date" : "Hapus tenggat", - "Mark as done" : "Tandai sebagai selesai", "Due at:" : "Jatuh tempo pada:", "Not done" : "Belum selesai", "Unarchive card" : "Memulihkan kartu", @@ -312,9 +319,7 @@ "Edit title" : "Edit judul", "Assign to me" : "Tugaskan saya", "Unassign myself" : "Batalkan penetapan diri saya", - "Mark as not done" : "Tandai sebagai belum selesai", "Delete card" : "Hapus kartu", - "seconds ago" : "beberapa detik yang lalu", "All boards" : "Semua papan", "Archived boards" : "Papan terarsip", "Shared with you" : "Shared with you", @@ -405,6 +410,7 @@ "Searching for users, groups and teams …" : "Mencari pengguna, grup, dan tim …", "No participants found" : "Tidak ada peserta ditemukan", "Save" : "Simpan", + "seconds ago" : "beberapa detik yang lalu", "Today" : "Hari ini", "Tomorrow" : "Besok", "No due" : "Tanpa jatuh tempo" diff --git a/l10n/is.js b/l10n/is.js index 4ed4fd3da8..4dd24d3a13 100644 --- a/l10n/is.js +++ b/l10n/is.js @@ -209,6 +209,11 @@ OC.L10N.register( "Deleted lists" : "Eyddi listum", "Undo" : "Afturkalla", "Deleted cards" : "Eydd spjöld", + "Hours" : "klukkustundir", + "Days" : "Dagar", + "Weeks" : "Vikur", + "Months" : "Mánuðir", + "No cards yet" : "Engin spjöld ennþá", "Failed to create share with {displayName}" : "Gat ekki búið til sameign með {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Ertu viss um að þú viljir yfirfæra borðið {title} til {user}?", "Transfer the board." : "Flytja borðið.", @@ -260,11 +265,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Engar athugasemdir ennþá. Byrjaðu umræðuna!", "The comment cannot be empty." : "Athugasemdin má ekki vera tóm.", "The comment cannot be longer than 1000 characters." : "Athugasemdin má ekki vera lengri en 1000 stafir.", + "Submit" : "Senda inn", "Created:" : "Búið til:", "In reply to" : "Sem svar til", "Cancel reply" : "Hætta við svar", "Reply" : "Svara", "Update" : "Uppfæra", + "Mark as done" : "Merkja sem lokið", + "Mark as not done" : "Merkja sem ólokið", "Write a description …" : "Skrifaðu lýsingu …", "Description" : "Lýsing", "(Unsaved)" : "(Óvistað)", @@ -288,7 +296,6 @@ OC.L10N.register( "Add due date" : "Bæta við skiladegi", "Choose a date" : "Veldu dagsetningu", "Remove due date" : "Fjarlægja skiladag", - "Mark as done" : "Merkja sem lokið", "Due at:" : "Á að ljúka klukkan:", "Not done" : "Ekki lokið", "Unarchive card" : "Taka spjald úr geymslu", @@ -305,9 +312,7 @@ OC.L10N.register( "Edit title" : "Breyta titli", "Assign to me" : "Úthluta mér", "Unassign myself" : "Aftengja úthlutun sjálfs mín", - "Mark as not done" : "Merkja sem ólokið", "Delete card" : "Eyða spjaldi", - "seconds ago" : "sekúndum síðan", "All boards" : "Öll borð", "Archived boards" : "Borð í geymslu", "Shared with you" : "Deilt með þér", @@ -383,6 +388,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Leita að notendum, hópum og teymum …", "No participants found" : "No participants found", "Save" : "Vista", + "seconds ago" : "sekúndum síðan", "Today" : "Í dag", "Tomorrow" : "Á morgun", "No due" : "Enginn skilatími" diff --git a/l10n/is.json b/l10n/is.json index 5029515d85..8cb37c7365 100644 --- a/l10n/is.json +++ b/l10n/is.json @@ -207,6 +207,11 @@ "Deleted lists" : "Eyddi listum", "Undo" : "Afturkalla", "Deleted cards" : "Eydd spjöld", + "Hours" : "klukkustundir", + "Days" : "Dagar", + "Weeks" : "Vikur", + "Months" : "Mánuðir", + "No cards yet" : "Engin spjöld ennþá", "Failed to create share with {displayName}" : "Gat ekki búið til sameign með {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Ertu viss um að þú viljir yfirfæra borðið {title} til {user}?", "Transfer the board." : "Flytja borðið.", @@ -258,11 +263,14 @@ "No comments yet. Begin the discussion!" : "Engar athugasemdir ennþá. Byrjaðu umræðuna!", "The comment cannot be empty." : "Athugasemdin má ekki vera tóm.", "The comment cannot be longer than 1000 characters." : "Athugasemdin má ekki vera lengri en 1000 stafir.", + "Submit" : "Senda inn", "Created:" : "Búið til:", "In reply to" : "Sem svar til", "Cancel reply" : "Hætta við svar", "Reply" : "Svara", "Update" : "Uppfæra", + "Mark as done" : "Merkja sem lokið", + "Mark as not done" : "Merkja sem ólokið", "Write a description …" : "Skrifaðu lýsingu …", "Description" : "Lýsing", "(Unsaved)" : "(Óvistað)", @@ -286,7 +294,6 @@ "Add due date" : "Bæta við skiladegi", "Choose a date" : "Veldu dagsetningu", "Remove due date" : "Fjarlægja skiladag", - "Mark as done" : "Merkja sem lokið", "Due at:" : "Á að ljúka klukkan:", "Not done" : "Ekki lokið", "Unarchive card" : "Taka spjald úr geymslu", @@ -303,9 +310,7 @@ "Edit title" : "Breyta titli", "Assign to me" : "Úthluta mér", "Unassign myself" : "Aftengja úthlutun sjálfs mín", - "Mark as not done" : "Merkja sem ólokið", "Delete card" : "Eyða spjaldi", - "seconds ago" : "sekúndum síðan", "All boards" : "Öll borð", "Archived boards" : "Borð í geymslu", "Shared with you" : "Deilt með þér", @@ -381,6 +386,7 @@ "Searching for users, groups and teams …" : "Leita að notendum, hópum og teymum …", "No participants found" : "No participants found", "Save" : "Vista", + "seconds ago" : "sekúndum síðan", "Today" : "Í dag", "Tomorrow" : "Á morgun", "No due" : "Enginn skilatími" diff --git a/l10n/it.js b/l10n/it.js index 5417ddbf9d..9e9cdd54d0 100644 --- a/l10n/it.js +++ b/l10n/it.js @@ -216,6 +216,11 @@ OC.L10N.register( "Deleted lists" : "Elenchi eliminati", "Undo" : "Annulla", "Deleted cards" : "Schede eliminate", + "Hours" : "Ore", + "Days" : "Giorni", + "Weeks" : "Settimane", + "Months" : "Mesi", + "No cards yet" : "Ancora nessuna scheda", "Failed to create share with {displayName}" : "Creazione della condivisione con {displayName} non riuscita", "Are you sure you want to transfer the board {title} to {user}?" : "Sei sicuro di voler trasferire la lavagna {title} a {user}?", "Transfer the board." : "Trasferisci la bacheca.", @@ -268,11 +273,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Ancora nessun commento. Inizia la discussione.", "The comment cannot be empty." : "Il commento non può essere vuoto.", "The comment cannot be longer than 1000 characters." : "Il commento non può essere più lungo di 1000 caratteri.", + "Submit" : "Invia", "Created:" : "Creato:", "In reply to" : "In risposta a", "Cancel reply" : "Annulla risposta", "Reply" : "Rispondi", "Update" : "Aggiorna", + "Mark as done" : "Segna come fatto", + "Mark as not done" : "Segna come non fatto", "Write a description …" : "Scrivi una descrizione…", "Could not save description" : "Impossibile salvare la descrizione", "Description" : "Descrizione", @@ -297,7 +305,6 @@ OC.L10N.register( "Add due date" : "Aggiungi data di scadenza", "Choose a date" : "Scegli una data", "Remove due date" : "Rimuovi data di scadenza", - "Mark as done" : "Segna come fatto", "Due at:" : "Scadenza:", "Not done" : "Non fatto", "Unarchive card" : "Recupera lavagna dall'archivio", @@ -314,9 +321,7 @@ OC.L10N.register( "Edit title" : "Modifica titolo", "Assign to me" : "Assegna a me", "Unassign myself" : "Rimuovi assegnazione da me", - "Mark as not done" : "Segna come non fatto", "Delete card" : "Elimina scheda", - "seconds ago" : "secondi fa", "All boards" : "Tutte le lavagne", "Archived boards" : "Lavagne archiviate", "Shared with you" : "Condiviso con te", @@ -407,6 +412,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Ricerca di utenti, gruppi e squadre …", "No participants found" : "Nessun partecipante trovato", "Save" : "Salva", + "seconds ago" : "secondi fa", "Today" : "Oggi", "Tomorrow" : "Domani", "No due" : "Nessuna scadenza" diff --git a/l10n/it.json b/l10n/it.json index 35e1de4620..7d3925f622 100644 --- a/l10n/it.json +++ b/l10n/it.json @@ -214,6 +214,11 @@ "Deleted lists" : "Elenchi eliminati", "Undo" : "Annulla", "Deleted cards" : "Schede eliminate", + "Hours" : "Ore", + "Days" : "Giorni", + "Weeks" : "Settimane", + "Months" : "Mesi", + "No cards yet" : "Ancora nessuna scheda", "Failed to create share with {displayName}" : "Creazione della condivisione con {displayName} non riuscita", "Are you sure you want to transfer the board {title} to {user}?" : "Sei sicuro di voler trasferire la lavagna {title} a {user}?", "Transfer the board." : "Trasferisci la bacheca.", @@ -266,11 +271,14 @@ "No comments yet. Begin the discussion!" : "Ancora nessun commento. Inizia la discussione.", "The comment cannot be empty." : "Il commento non può essere vuoto.", "The comment cannot be longer than 1000 characters." : "Il commento non può essere più lungo di 1000 caratteri.", + "Submit" : "Invia", "Created:" : "Creato:", "In reply to" : "In risposta a", "Cancel reply" : "Annulla risposta", "Reply" : "Rispondi", "Update" : "Aggiorna", + "Mark as done" : "Segna come fatto", + "Mark as not done" : "Segna come non fatto", "Write a description …" : "Scrivi una descrizione…", "Could not save description" : "Impossibile salvare la descrizione", "Description" : "Descrizione", @@ -295,7 +303,6 @@ "Add due date" : "Aggiungi data di scadenza", "Choose a date" : "Scegli una data", "Remove due date" : "Rimuovi data di scadenza", - "Mark as done" : "Segna come fatto", "Due at:" : "Scadenza:", "Not done" : "Non fatto", "Unarchive card" : "Recupera lavagna dall'archivio", @@ -312,9 +319,7 @@ "Edit title" : "Modifica titolo", "Assign to me" : "Assegna a me", "Unassign myself" : "Rimuovi assegnazione da me", - "Mark as not done" : "Segna come non fatto", "Delete card" : "Elimina scheda", - "seconds ago" : "secondi fa", "All boards" : "Tutte le lavagne", "Archived boards" : "Lavagne archiviate", "Shared with you" : "Condiviso con te", @@ -405,6 +410,7 @@ "Searching for users, groups and teams …" : "Ricerca di utenti, gruppi e squadre …", "No participants found" : "Nessun partecipante trovato", "Save" : "Salva", + "seconds ago" : "secondi fa", "Today" : "Oggi", "Tomorrow" : "Domani", "No due" : "Nessuna scadenza" diff --git a/l10n/ja.js b/l10n/ja.js index 661e6a538e..64bf536821 100644 --- a/l10n/ja.js +++ b/l10n/ja.js @@ -179,6 +179,7 @@ OC.L10N.register( "Show boards in calendar/tasks" : "カレンダー/タスクでボードを表示する", "Limit board creation to some groups" : "ボード作成は一部のグループに制限する", "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "これらのグループ以外のユーザーは、独自のボードを作成することはできませんが、共有されているボードで作業することはできます。", + "Enable federation" : "フェデレーションを有効にする", "Board actions" : "ボードアクション", "Scroll sideways" : "横にスクロール", "Navigate between cards" : "カード間を移動する", @@ -205,6 +206,11 @@ OC.L10N.register( "Deleted lists" : "削除済みリスト", "Undo" : "元に戻す", "Deleted cards" : "削除済みのカード", + "Hours" : "時間", + "Days" : "日", + "Weeks" : "週", + "Months" : "月", + "No cards yet" : "まだカードはありません", "Failed to create share with {displayName}" : "{displayName}との共有の作成に失敗しました", "Are you sure you want to transfer the board {title} to {user}?" : "本当にボード {title} を {user} に転送しますか?", "Transfer the board." : "ボードを転送します。", @@ -256,11 +262,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "まだコメントはありません。議論を始めましょう!", "The comment cannot be empty." : "コメントを空にすることはできません。", "The comment cannot be longer than 1000 characters." : "コメントは1000文字を超えることはできません。", + "Submit" : "登録する", "Created:" : "作成:", "In reply to" : "返信", "Cancel reply" : "返信をキャンセル", "Reply" : "返信", "Update" : "更新", + "Mark as done" : "完了としてマーク", + "Mark as not done" : "未完成のマーク", "Write a description …" : "説明を書く…", "Description" : "説明", "(Unsaved)" : "(未保存)", @@ -284,7 +293,6 @@ OC.L10N.register( "Add due date" : "期限日を追加する", "Choose a date" : "日時を選択する", "Remove due date" : "期限を削除", - "Mark as done" : "完了としてマーク", "Due at:" : "期限:", "Not done" : "まだ完成していません", "Unarchive card" : "カードのアーカイブを解除する", @@ -301,9 +309,7 @@ OC.L10N.register( "Edit title" : "タイトルを編集", "Assign to me" : "自分に割り当てる", "Unassign myself" : "自分への割り当てを解除", - "Mark as not done" : "未完成のマーク", "Delete card" : "カードを削除する", - "seconds ago" : "数秒前", "All boards" : "すべてのボード", "Archived boards" : "アーカイブ済みのボード", "Shared with you" : "あなたと共有済み", @@ -374,6 +380,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "ユーザー、グループ、チームの検索中...", "No participants found" : "参加者が見つかりません", "Save" : "保存", + "seconds ago" : "数秒前", "Today" : "今日", "Tomorrow" : "明日", "No due" : "日付なし" diff --git a/l10n/ja.json b/l10n/ja.json index c3985962d3..74e401cd7e 100644 --- a/l10n/ja.json +++ b/l10n/ja.json @@ -177,6 +177,7 @@ "Show boards in calendar/tasks" : "カレンダー/タスクでボードを表示する", "Limit board creation to some groups" : "ボード作成は一部のグループに制限する", "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "これらのグループ以外のユーザーは、独自のボードを作成することはできませんが、共有されているボードで作業することはできます。", + "Enable federation" : "フェデレーションを有効にする", "Board actions" : "ボードアクション", "Scroll sideways" : "横にスクロール", "Navigate between cards" : "カード間を移動する", @@ -203,6 +204,11 @@ "Deleted lists" : "削除済みリスト", "Undo" : "元に戻す", "Deleted cards" : "削除済みのカード", + "Hours" : "時間", + "Days" : "日", + "Weeks" : "週", + "Months" : "月", + "No cards yet" : "まだカードはありません", "Failed to create share with {displayName}" : "{displayName}との共有の作成に失敗しました", "Are you sure you want to transfer the board {title} to {user}?" : "本当にボード {title} を {user} に転送しますか?", "Transfer the board." : "ボードを転送します。", @@ -254,11 +260,14 @@ "No comments yet. Begin the discussion!" : "まだコメントはありません。議論を始めましょう!", "The comment cannot be empty." : "コメントを空にすることはできません。", "The comment cannot be longer than 1000 characters." : "コメントは1000文字を超えることはできません。", + "Submit" : "登録する", "Created:" : "作成:", "In reply to" : "返信", "Cancel reply" : "返信をキャンセル", "Reply" : "返信", "Update" : "更新", + "Mark as done" : "完了としてマーク", + "Mark as not done" : "未完成のマーク", "Write a description …" : "説明を書く…", "Description" : "説明", "(Unsaved)" : "(未保存)", @@ -282,7 +291,6 @@ "Add due date" : "期限日を追加する", "Choose a date" : "日時を選択する", "Remove due date" : "期限を削除", - "Mark as done" : "完了としてマーク", "Due at:" : "期限:", "Not done" : "まだ完成していません", "Unarchive card" : "カードのアーカイブを解除する", @@ -299,9 +307,7 @@ "Edit title" : "タイトルを編集", "Assign to me" : "自分に割り当てる", "Unassign myself" : "自分への割り当てを解除", - "Mark as not done" : "未完成のマーク", "Delete card" : "カードを削除する", - "seconds ago" : "数秒前", "All boards" : "すべてのボード", "Archived boards" : "アーカイブ済みのボード", "Shared with you" : "あなたと共有済み", @@ -372,6 +378,7 @@ "Searching for users, groups and teams …" : "ユーザー、グループ、チームの検索中...", "No participants found" : "参加者が見つかりません", "Save" : "保存", + "seconds ago" : "数秒前", "Today" : "今日", "Tomorrow" : "明日", "No due" : "日付なし" diff --git a/l10n/ka.js b/l10n/ka.js index ad483907fd..90d567ca60 100644 --- a/l10n/ka.js +++ b/l10n/ka.js @@ -243,11 +243,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "No comments yet. Begin the discussion!", "The comment cannot be empty." : "The comment cannot be empty.", "The comment cannot be longer than 1000 characters." : "The comment cannot be longer than 1000 characters.", + "Submit" : "გაგზავნა", "Created:" : "Created:", "In reply to" : "In reply to", "Cancel reply" : "Cancel reply", "Reply" : "Reply", "Update" : "Update", + "Mark as done" : "Mark as done", + "Mark as not done" : "Mark as not done", "Write a description …" : "Write a description …", "Description" : "Description", "(Unsaved)" : "(Unsaved)", @@ -271,7 +274,6 @@ OC.L10N.register( "Add due date" : "Add due date", "Choose a date" : "Choose a date", "Remove due date" : "Remove due date", - "Mark as done" : "Mark as done", "Due at:" : "Due at:", "Unarchive card" : "Unarchive card", "Archive card" : "Archive card", @@ -285,9 +287,7 @@ OC.L10N.register( "Edit title" : "Edit title", "Assign to me" : "Assign to me", "Unassign myself" : "Unassign myself", - "Mark as not done" : "Mark as not done", "Delete card" : "Delete card", - "seconds ago" : "seconds ago", "All boards" : "All boards", "Archived boards" : "Archived boards", "Shared with you" : "Shared with you", @@ -352,6 +352,7 @@ OC.L10N.register( "The card \"%s\" on \"%s\" has reached its due date." : "The card \"%s\" on \"%s\" has reached its due date.", "No participants found" : "No participants found", "Save" : "Save", + "seconds ago" : "seconds ago", "Today" : "Today", "Tomorrow" : "Tomorrow", "No due" : "No due" diff --git a/l10n/ka.json b/l10n/ka.json index 602e71400d..d59706db8b 100644 --- a/l10n/ka.json +++ b/l10n/ka.json @@ -241,11 +241,14 @@ "No comments yet. Begin the discussion!" : "No comments yet. Begin the discussion!", "The comment cannot be empty." : "The comment cannot be empty.", "The comment cannot be longer than 1000 characters." : "The comment cannot be longer than 1000 characters.", + "Submit" : "გაგზავნა", "Created:" : "Created:", "In reply to" : "In reply to", "Cancel reply" : "Cancel reply", "Reply" : "Reply", "Update" : "Update", + "Mark as done" : "Mark as done", + "Mark as not done" : "Mark as not done", "Write a description …" : "Write a description …", "Description" : "Description", "(Unsaved)" : "(Unsaved)", @@ -269,7 +272,6 @@ "Add due date" : "Add due date", "Choose a date" : "Choose a date", "Remove due date" : "Remove due date", - "Mark as done" : "Mark as done", "Due at:" : "Due at:", "Unarchive card" : "Unarchive card", "Archive card" : "Archive card", @@ -283,9 +285,7 @@ "Edit title" : "Edit title", "Assign to me" : "Assign to me", "Unassign myself" : "Unassign myself", - "Mark as not done" : "Mark as not done", "Delete card" : "Delete card", - "seconds ago" : "seconds ago", "All boards" : "All boards", "Archived boards" : "Archived boards", "Shared with you" : "Shared with you", @@ -350,6 +350,7 @@ "The card \"%s\" on \"%s\" has reached its due date." : "The card \"%s\" on \"%s\" has reached its due date.", "No participants found" : "No participants found", "Save" : "Save", + "seconds ago" : "seconds ago", "Today" : "Today", "Tomorrow" : "Tomorrow", "No due" : "No due" diff --git a/l10n/ka_GE.js b/l10n/ka_GE.js index 93e6fd74d9..1b5eccada2 100644 --- a/l10n/ka_GE.js +++ b/l10n/ka_GE.js @@ -30,6 +30,7 @@ OC.L10N.register( "Tags" : "ტეგები", "Activity" : "აქტივობა", "Undo" : "დაბრუნება", + "Hours" : "საათი", "Can edit" : "შეუძლია შეცვალოს", "Can share" : "შეუძლია გააზიაროს", "Owner" : "მფლობელი", @@ -38,6 +39,7 @@ OC.L10N.register( "Members" : "წევრები", "Download" : "ჩამოტვირთვა", "Comments" : "კომენტარები", + "Submit" : "გაგზავნა", "Created:" : "შექმნილია:", "Reply" : "პასუხი", "Update" : "განახლება", @@ -45,7 +47,6 @@ OC.L10N.register( "Formatting help" : "დახმარება ფორმატირებაზე", "Remove due date" : "მოაშორეთ დანიშნულების დრო", "(group)" : "(ჯგუფი)", - "seconds ago" : "წამის წინ", "Archived boards" : "არქივირებული დაფები", "Shared with you" : "გაზიარებული თქვენთან", "Board details" : "დაფის დეტალები", @@ -63,6 +64,7 @@ OC.L10N.register( "Share" : "გაზიარება", "The card \"%s\" on \"%s\" has reached its due date." : "ბარათმა \"%s\" \"%s\"-ზე მიაღწია დანიშნულ დროს.", "Save" : "შენახვა", + "seconds ago" : "წამის წინ", "Today" : "დღეს", "Tomorrow" : "ხვალ" }, diff --git a/l10n/ka_GE.json b/l10n/ka_GE.json index 05c9900c81..6b8a26b5f0 100644 --- a/l10n/ka_GE.json +++ b/l10n/ka_GE.json @@ -28,6 +28,7 @@ "Tags" : "ტეგები", "Activity" : "აქტივობა", "Undo" : "დაბრუნება", + "Hours" : "საათი", "Can edit" : "შეუძლია შეცვალოს", "Can share" : "შეუძლია გააზიაროს", "Owner" : "მფლობელი", @@ -36,6 +37,7 @@ "Members" : "წევრები", "Download" : "ჩამოტვირთვა", "Comments" : "კომენტარები", + "Submit" : "გაგზავნა", "Created:" : "შექმნილია:", "Reply" : "პასუხი", "Update" : "განახლება", @@ -43,7 +45,6 @@ "Formatting help" : "დახმარება ფორმატირებაზე", "Remove due date" : "მოაშორეთ დანიშნულების დრო", "(group)" : "(ჯგუფი)", - "seconds ago" : "წამის წინ", "Archived boards" : "არქივირებული დაფები", "Shared with you" : "გაზიარებული თქვენთან", "Board details" : "დაფის დეტალები", @@ -61,6 +62,7 @@ "Share" : "გაზიარება", "The card \"%s\" on \"%s\" has reached its due date." : "ბარათმა \"%s\" \"%s\"-ზე მიაღწია დანიშნულ დროს.", "Save" : "შენახვა", + "seconds ago" : "წამის წინ", "Today" : "დღეს", "Tomorrow" : "ხვალ" },"pluralForm" :"nplurals=2; plural=(n!=1);" diff --git a/l10n/kab.js b/l10n/kab.js index f0e5119dd9..f76bcb2c91 100644 --- a/l10n/kab.js +++ b/l10n/kab.js @@ -5,12 +5,16 @@ OC.L10N.register( "The file was only partially uploaded" : "Afaylu, cwiṭ kan i yettwaznen segs", "No file was uploaded" : "Ulac afaylu i d-yettwasulin", "Missing a temporary folder" : "Ixuṣ ukaram akudan", + "Load more" : "Sali-d ugar", "Finished" : "Immed", + "Later" : "Ticki", "copy" : "nɣel", + "To Do" : "Ad yettwaxdem", "Done" : "Immed", "Attachments" : "Ticeqqufin", "File" : "Afaylu", "Cancel" : "Sefsex", + "Active filters" : "Imzizdigen urmiden", "Open" : "Ldi", "Completed" : "Yemmed", "Open details" : "Ldi talqayt", @@ -21,25 +25,34 @@ OC.L10N.register( "Sharing" : "Beṭṭu", "Tags" : "Tibzimin", "Activity" : "Armud", + "Undo" : "Sefsex", + "Hours" : "Isragen", + "Days" : "Ussan", "Transfer" : "Seḍfeṛ", "Owner" : "Bab", "Delete" : "Kkes", "Edit" : "Ẓreg", + "Members" : "Imedrawen", "Download" : "Sider", "Comments" : "Commentaires", + "Submit" : "Azen", "Cancel reply" : "Semmet tiririt.", "Reply" : "Err", + "Update" : "Leqqem", "Description" : "Aglam", "Open link" : "Nɣel aseɣwen", - "seconds ago" : "Tasinin aya", "Cancel edit" : "Sefsex aseẓreg", + "An error occurred" : "Teḍra-d tuccḍa", "No notifications" : "Ulac tisezmal", "Export" : "Sifeḍ", + "No results found" : "Ur d-yufi kra seg unadi", "Close" : "Mdel", + "Something went wrong" : "Yella wayen yeḍran", "Created" : "Yettwarna.", "Modified" : "Yettwabeddel", "Share" : "Bḍu", "Save" : "Sekles", + "seconds ago" : "Tasinin aya", "Today" : "Ass-a" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/kab.json b/l10n/kab.json index cf19b93b8b..78488d30a1 100644 --- a/l10n/kab.json +++ b/l10n/kab.json @@ -3,12 +3,16 @@ "The file was only partially uploaded" : "Afaylu, cwiṭ kan i yettwaznen segs", "No file was uploaded" : "Ulac afaylu i d-yettwasulin", "Missing a temporary folder" : "Ixuṣ ukaram akudan", + "Load more" : "Sali-d ugar", "Finished" : "Immed", + "Later" : "Ticki", "copy" : "nɣel", + "To Do" : "Ad yettwaxdem", "Done" : "Immed", "Attachments" : "Ticeqqufin", "File" : "Afaylu", "Cancel" : "Sefsex", + "Active filters" : "Imzizdigen urmiden", "Open" : "Ldi", "Completed" : "Yemmed", "Open details" : "Ldi talqayt", @@ -19,25 +23,34 @@ "Sharing" : "Beṭṭu", "Tags" : "Tibzimin", "Activity" : "Armud", + "Undo" : "Sefsex", + "Hours" : "Isragen", + "Days" : "Ussan", "Transfer" : "Seḍfeṛ", "Owner" : "Bab", "Delete" : "Kkes", "Edit" : "Ẓreg", + "Members" : "Imedrawen", "Download" : "Sider", "Comments" : "Commentaires", + "Submit" : "Azen", "Cancel reply" : "Semmet tiririt.", "Reply" : "Err", + "Update" : "Leqqem", "Description" : "Aglam", "Open link" : "Nɣel aseɣwen", - "seconds ago" : "Tasinin aya", "Cancel edit" : "Sefsex aseẓreg", + "An error occurred" : "Teḍra-d tuccḍa", "No notifications" : "Ulac tisezmal", "Export" : "Sifeḍ", + "No results found" : "Ur d-yufi kra seg unadi", "Close" : "Mdel", + "Something went wrong" : "Yella wayen yeḍran", "Created" : "Yettwarna.", "Modified" : "Yettwabeddel", "Share" : "Bḍu", "Save" : "Sekles", + "seconds ago" : "Tasinin aya", "Today" : "Ass-a" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/km.js b/l10n/km.js index 24d743ded2..ef197e6720 100644 --- a/l10n/km.js +++ b/l10n/km.js @@ -21,13 +21,13 @@ OC.L10N.register( "Reply" : "ឆ្លើយតប", "Update" : "ធ្វើ​បច្ចុប្បន្នភាព", "Description" : "ការ​អធិប្បាយ", - "seconds ago" : "វិនាទី​មុន", "Shared with you" : "Shared with you", "Export" : "នាំចេញ", "Close" : "បិទ", "Modified" : "បាន​កែ​ប្រែ", "Share" : "ចែក​រំលែក", "Save" : "រក្សាទុក", + "seconds ago" : "វិនាទី​មុន", "Today" : "ថ្ងៃ​នេះ" }, "nplurals=1; plural=0;"); diff --git a/l10n/km.json b/l10n/km.json index 0e1757c55a..8990f372a6 100644 --- a/l10n/km.json +++ b/l10n/km.json @@ -19,13 +19,13 @@ "Reply" : "ឆ្លើយតប", "Update" : "ធ្វើ​បច្ចុប្បន្នភាព", "Description" : "ការ​អធិប្បាយ", - "seconds ago" : "វិនាទី​មុន", "Shared with you" : "Shared with you", "Export" : "នាំចេញ", "Close" : "បិទ", "Modified" : "បាន​កែ​ប្រែ", "Share" : "ចែក​រំលែក", "Save" : "រក្សាទុក", + "seconds ago" : "វិនាទី​មុន", "Today" : "ថ្ងៃ​នេះ" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/l10n/ko.js b/l10n/ko.js index 5f2ceb4aa7..786d70f6ba 100644 --- a/l10n/ko.js +++ b/l10n/ko.js @@ -201,6 +201,11 @@ OC.L10N.register( "Deleted lists" : "삭제된 목록", "Undo" : "실행 취소", "Deleted cards" : "삭제된 카드", + "Hours" : "시간", + "Days" : "일", + "Weeks" : "주", + "Months" : "개월", + "No cards yet" : "아직 카드가 없음", "Failed to create share with {displayName}" : "displayName}과(와) 공유를 생성하지 못했습니다.", "Are you sure you want to transfer the board {title} to {user}?" : "{title} 보드를 {user}에게 양도하시겠습니까?", "Transfer the board." : "보드를 옮깁니다.", @@ -252,11 +257,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "아직 댓글이 없습니다. 토론을 시작하세요!", "The comment cannot be empty." : "댓글은 공백일 수 없습니다.", "The comment cannot be longer than 1000 characters." : "설명은 1000자를 초과할 수 없습니다.", + "Submit" : "제출", "Created:" : "생성한 날짜:", "In reply to" : "답장", "Cancel reply" : "응답 취소", "Reply" : "답장", "Update" : "업데이트", + "Mark as done" : "완료된 것으로 표시", + "Mark as not done" : "완료되지 않은 것으로 표시", "Write a description …" : "설명 작성", "Description" : "설명", "(Unsaved)" : "(저장되지 않음)", @@ -280,7 +288,6 @@ OC.L10N.register( "Add due date" : "만료일 추가", "Choose a date" : "날짜 선택", "Remove due date" : "만료 날짜 삭제", - "Mark as done" : "완료된 것으로 표시", "Due at:" : "마감일:", "Not done" : "완료되지 않음", "Unarchive card" : "카드 보관 취소", @@ -296,9 +303,7 @@ OC.L10N.register( "Edit title" : "제목 수정", "Assign to me" : "나에게 할당", "Unassign myself" : "스스로를 할당 해제", - "Mark as not done" : "완료되지 않은 것으로 표시", "Delete card" : "카드 삭제", - "seconds ago" : "초 전", "All boards" : "모든 보드", "Archived boards" : "보관된 게시판", "Shared with you" : "나와 공유됨", @@ -368,6 +373,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "사용자, 그룹, 팀 검색 중…", "No participants found" : "참가자를 찾을 수 없음", "Save" : "저장", + "seconds ago" : "초 전", "Today" : "오늘", "Tomorrow" : "내일", "No due" : "기한 없음" diff --git a/l10n/ko.json b/l10n/ko.json index 5b1c2dac5c..7cfc7631f4 100644 --- a/l10n/ko.json +++ b/l10n/ko.json @@ -199,6 +199,11 @@ "Deleted lists" : "삭제된 목록", "Undo" : "실행 취소", "Deleted cards" : "삭제된 카드", + "Hours" : "시간", + "Days" : "일", + "Weeks" : "주", + "Months" : "개월", + "No cards yet" : "아직 카드가 없음", "Failed to create share with {displayName}" : "displayName}과(와) 공유를 생성하지 못했습니다.", "Are you sure you want to transfer the board {title} to {user}?" : "{title} 보드를 {user}에게 양도하시겠습니까?", "Transfer the board." : "보드를 옮깁니다.", @@ -250,11 +255,14 @@ "No comments yet. Begin the discussion!" : "아직 댓글이 없습니다. 토론을 시작하세요!", "The comment cannot be empty." : "댓글은 공백일 수 없습니다.", "The comment cannot be longer than 1000 characters." : "설명은 1000자를 초과할 수 없습니다.", + "Submit" : "제출", "Created:" : "생성한 날짜:", "In reply to" : "답장", "Cancel reply" : "응답 취소", "Reply" : "답장", "Update" : "업데이트", + "Mark as done" : "완료된 것으로 표시", + "Mark as not done" : "완료되지 않은 것으로 표시", "Write a description …" : "설명 작성", "Description" : "설명", "(Unsaved)" : "(저장되지 않음)", @@ -278,7 +286,6 @@ "Add due date" : "만료일 추가", "Choose a date" : "날짜 선택", "Remove due date" : "만료 날짜 삭제", - "Mark as done" : "완료된 것으로 표시", "Due at:" : "마감일:", "Not done" : "완료되지 않음", "Unarchive card" : "카드 보관 취소", @@ -294,9 +301,7 @@ "Edit title" : "제목 수정", "Assign to me" : "나에게 할당", "Unassign myself" : "스스로를 할당 해제", - "Mark as not done" : "완료되지 않은 것으로 표시", "Delete card" : "카드 삭제", - "seconds ago" : "초 전", "All boards" : "모든 보드", "Archived boards" : "보관된 게시판", "Shared with you" : "나와 공유됨", @@ -366,6 +371,7 @@ "Searching for users, groups and teams …" : "사용자, 그룹, 팀 검색 중…", "No participants found" : "참가자를 찾을 수 없음", "Save" : "저장", + "seconds ago" : "초 전", "Today" : "오늘", "Tomorrow" : "내일", "No due" : "기한 없음" diff --git a/l10n/lb.js b/l10n/lb.js index bed15a7c1d..1417df39e7 100644 --- a/l10n/lb.js +++ b/l10n/lb.js @@ -1,7 +1,9 @@ OC.L10N.register( "deck", { + "The file was uploaded" : "D'Datei gouf eropgelueden", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Déi ropgelueden Datei ass méi grouss wei d'MAX_FILE_SIZE Eegenschaft déi an der HTML form uginn ass", + "The file was only partially uploaded" : "D'Datei gouf nëmmen deelweis eropgelueden", "No file was uploaded" : "Et ass kee Fichier ropgeluede ginn", "Missing a temporary folder" : "Et feelt en temporären Dossier", "In Progress" : "A Beaarbechtung", @@ -14,6 +16,7 @@ OC.L10N.register( "Sharing" : "Gedeelt", "Tags" : "Tags", "Activity" : "Aktivitéit", + "Hours" : "Stonnen", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Owner", @@ -25,7 +28,6 @@ OC.L10N.register( "Reply" : "Äntwerten", "Update" : "Update", "Description" : "Beschreiwung", - "seconds ago" : "Sekonnen hier", "Shared with you" : "Mat dir gedeelt", "Advanced options" : "Erweidert Astellungen", "Export" : "Exportéieren", @@ -33,6 +35,7 @@ OC.L10N.register( "Modified" : "Geännert", "Share" : "Deelen", "Save" : "Späicheren", + "seconds ago" : "Sekonnen hier", "Today" : "Haut", "Tomorrow" : "Muer" }, diff --git a/l10n/lb.json b/l10n/lb.json index e71d6a8919..49674162e4 100644 --- a/l10n/lb.json +++ b/l10n/lb.json @@ -1,5 +1,7 @@ { "translations": { + "The file was uploaded" : "D'Datei gouf eropgelueden", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Déi ropgelueden Datei ass méi grouss wei d'MAX_FILE_SIZE Eegenschaft déi an der HTML form uginn ass", + "The file was only partially uploaded" : "D'Datei gouf nëmmen deelweis eropgelueden", "No file was uploaded" : "Et ass kee Fichier ropgeluede ginn", "Missing a temporary folder" : "Et feelt en temporären Dossier", "In Progress" : "A Beaarbechtung", @@ -12,6 +14,7 @@ "Sharing" : "Gedeelt", "Tags" : "Tags", "Activity" : "Aktivitéit", + "Hours" : "Stonnen", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Owner", @@ -23,7 +26,6 @@ "Reply" : "Äntwerten", "Update" : "Update", "Description" : "Beschreiwung", - "seconds ago" : "Sekonnen hier", "Shared with you" : "Mat dir gedeelt", "Advanced options" : "Erweidert Astellungen", "Export" : "Exportéieren", @@ -31,6 +33,7 @@ "Modified" : "Geännert", "Share" : "Deelen", "Save" : "Späicheren", + "seconds ago" : "Sekonnen hier", "Today" : "Haut", "Tomorrow" : "Muer" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/l10n/lo.js b/l10n/lo.js index ce0e8af8a5..fb88bcb5ed 100644 --- a/l10n/lo.js +++ b/l10n/lo.js @@ -215,6 +215,11 @@ OC.L10N.register( "Deleted lists" : "Deleted lists", "Undo" : "Undo", "Deleted cards" : "Deleted cards", + "Hours" : "ຊົ່ວໂມງ", + "Days" : "ມື້", + "Weeks" : "ອາທິດ", + "Months" : "ເດືອນ", + "No cards yet" : "ບໍ່ມີກາດ", "Failed to create share with {displayName}" : "Failed to create share with {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Are you sure you want to transfer the board {title} to {user}?", "Transfer the board." : "Transfer the board.", @@ -267,11 +272,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "No comments yet. Begin the discussion!", "The comment cannot be empty." : "The comment cannot be empty.", "The comment cannot be longer than 1000 characters." : "The comment cannot be longer than 1000 characters.", + "Submit" : "ຕົກລົງ", "Created:" : "Created:", "In reply to" : "In reply to", "Cancel reply" : "Cancel reply", "Reply" : "Reply", "Update" : "Update", + "Mark as done" : "Mark as done", + "Mark as not done" : "Mark as not done", "Write a description …" : "Write a description …", "Could not save description" : "Could not save description", "Description" : "ລາຍລະອຽດ", @@ -296,7 +304,6 @@ OC.L10N.register( "Add due date" : "Add due date", "Choose a date" : "Choose a date", "Remove due date" : "Remove due date", - "Mark as done" : "Mark as done", "Due at:" : "Due at:", "Not done" : "Not done", "Unarchive card" : "Unarchive card", @@ -313,9 +320,7 @@ OC.L10N.register( "Edit title" : "Edit title", "Assign to me" : "Assign to me", "Unassign myself" : "Unassign myself", - "Mark as not done" : "Mark as not done", "Delete card" : "Delete card", - "seconds ago" : "ວິນາທີຜ່ານມາ", "All boards" : "All boards", "Archived boards" : "Archived boards", "Shared with you" : "ແບ່ງປັບກັບທ່ານ", @@ -402,6 +407,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Searching for users, groups and teams …", "No participants found" : "No participants found", "Save" : "ບັນທຶກ", + "seconds ago" : "ວິນາທີຜ່ານມາ", "Today" : "ມື້ນີ້", "Tomorrow" : "Tomorrow", "No due" : "No due" diff --git a/l10n/lo.json b/l10n/lo.json index 6713a8ee3f..93d80160ed 100644 --- a/l10n/lo.json +++ b/l10n/lo.json @@ -213,6 +213,11 @@ "Deleted lists" : "Deleted lists", "Undo" : "Undo", "Deleted cards" : "Deleted cards", + "Hours" : "ຊົ່ວໂມງ", + "Days" : "ມື້", + "Weeks" : "ອາທິດ", + "Months" : "ເດືອນ", + "No cards yet" : "ບໍ່ມີກາດ", "Failed to create share with {displayName}" : "Failed to create share with {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Are you sure you want to transfer the board {title} to {user}?", "Transfer the board." : "Transfer the board.", @@ -265,11 +270,14 @@ "No comments yet. Begin the discussion!" : "No comments yet. Begin the discussion!", "The comment cannot be empty." : "The comment cannot be empty.", "The comment cannot be longer than 1000 characters." : "The comment cannot be longer than 1000 characters.", + "Submit" : "ຕົກລົງ", "Created:" : "Created:", "In reply to" : "In reply to", "Cancel reply" : "Cancel reply", "Reply" : "Reply", "Update" : "Update", + "Mark as done" : "Mark as done", + "Mark as not done" : "Mark as not done", "Write a description …" : "Write a description …", "Could not save description" : "Could not save description", "Description" : "ລາຍລະອຽດ", @@ -294,7 +302,6 @@ "Add due date" : "Add due date", "Choose a date" : "Choose a date", "Remove due date" : "Remove due date", - "Mark as done" : "Mark as done", "Due at:" : "Due at:", "Not done" : "Not done", "Unarchive card" : "Unarchive card", @@ -311,9 +318,7 @@ "Edit title" : "Edit title", "Assign to me" : "Assign to me", "Unassign myself" : "Unassign myself", - "Mark as not done" : "Mark as not done", "Delete card" : "Delete card", - "seconds ago" : "ວິນາທີຜ່ານມາ", "All boards" : "All boards", "Archived boards" : "Archived boards", "Shared with you" : "ແບ່ງປັບກັບທ່ານ", @@ -400,6 +405,7 @@ "Searching for users, groups and teams …" : "Searching for users, groups and teams …", "No participants found" : "No participants found", "Save" : "ບັນທຶກ", + "seconds ago" : "ວິນາທີຜ່ານມາ", "Today" : "ມື້ນີ້", "Tomorrow" : "Tomorrow", "No due" : "No due" diff --git a/l10n/lt_LT.js b/l10n/lt_LT.js index a907652f56..de91abe5a7 100644 --- a/l10n/lt_LT.js +++ b/l10n/lt_LT.js @@ -88,7 +88,7 @@ OC.L10N.register( "Cards due tomorrow" : "Rytoj baigiamos kortelės", "Upcoming cards" : "Artėjančios kortelės", "Load more" : "Įkelti daugiau", - "Welcome to Nextcloud Deck!" : "Sveiki atvykę į „Nextcloud Deck“!", + "Welcome to Nextcloud Deck!" : "Sveiki atvykę į „Nextcloud Darbai“!", "The card \"%s\" on \"%s\" has been assigned to you by %s." : "Kortelę \"%s\" ties \"%s\" priskyrė jums %s.", "{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} priskyrė jums {deck-card} kortelę iš {deck-board}.", "The card \"%1$s\" on \"%2$s\" has reached its due date." : "Kortelės „%1$s“ galiojimo laikas baigėsi %2$s.", @@ -102,7 +102,7 @@ OC.L10N.register( "Owned by %1$s" : "Savininkas %1$s", "Deck boards, cards and comments" : "Darbų lentos, kortelės ir komentarai", "From %1$s, in %2$s/%3$s, owned by %4$s" : "Iš %1$s, %2$s/%3$s, savininkas %4$s", - "Create a new deck card" : "Sukurti naują kortelę", + "Create a new deck card" : "Sukurti naują darbų kortelę", "Card comments" : "Kortelės komentarai", "%s on %s" : "%s ant %s", "Deck boards and cards" : "Darbų lentos ir kortelės", @@ -129,8 +129,9 @@ OC.L10N.register( "Card not found" : "Kortelė nerasta", "Path is already shared with this card" : "Kelias jau yra bendrinamas su šia kortele", "Invalid date, date format must be YYYY-MM-DD" : "Netinkama data, datos formatas privalo būti MMMM-mm-dd", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Visos jums priklausančios lentos, įskaitant krūvas, korteles, etiketes, užduotis ir komentarus", "Personal planning and team project organization" : "Asmeninis planavimas ir komandinių projektų organizavimas", - "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" : "Darbai – tai „kanban“ stiliaus organizavimo įrankis, skirtas asmeniniam planavimui ir komandų projektų organizavimui, integruotas su „Nextcloud“.\n\n\n- 📥 Pridėkite užduotis į korteles ir išdėstykite jas tvarkingai\n- 📄 Įrašykite papildomas pastabas „Markdown“ formatu\n- 🔖 Priskirkite žymes, kad viską būtų dar lengviau tvarkyti\n- 👥 Dalinkitės su komanda, draugais ar šeima\n- 📎 Pridėkite failus ir įterpkite juos į savo „Markdown“ aprašymą\n- 💬 Diskutuokite su savo komanda naudodami komentarus\n- ⚡ Sekite pokyčius veiklos sraute\n- 🚀 Sutvarkykite savo projektą", + "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" : "„Darbai “– tai „kanban“ stiliaus organizavimo įrankis, skirtas asmeniniam planavimui ir komandų projektų organizavimui, integruotas su „Nextcloud“.\n\n\n- 📥 Pridėkite užduotis į korteles ir išdėstykite jas tvarkingai\n- 📄 Įrašykite papildomas pastabas „Markdown“ formatu\n- 🔖 Priskirkite žymes, kad viską būtų dar lengviau tvarkyti\n- 👥 Dalinkitės su komanda, draugais ar šeima\n- 📎 Pridėkite failus ir įterpkite juos į savo „Markdown“ aprašymą\n- 💬 Diskutuokite su savo komanda naudodami komentarus\n- ⚡ Sekite pokyčius veiklos sraute\n- 🚀 Sutvarkykite savo projektą", "Add board" : "Pridėti lentą", "Card details" : "Išsamiau apie kortelę", "Select the board to link to a project" : "Pasirinkite lentą, kurią susieti su projektu", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Išvalyti filtrą", "View Modes" : "Peržiūros režimai", "Toggle View Modes" : "Išskleisti peržiūros režimus", + "Kanban view" : "Kanban rodinys", + "Gantt view" : "Gantt rodinys", "Hide archived cards" : "Slėpti archyvuotas korteles", "Show archived cards" : "Rodyti archyvuotas korteles", "Toggle compact mode" : "Perjungti kompaktišką veikseną", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "Ištrinti sąrašai", "Undo" : "Atšaukti", "Deleted cards" : "Ištrintos kortelės", + "Hours" : "Valandos", + "Days" : "Dienos", + "Weeks" : "Savaitės", + "Months" : "Mėnesiai", + "No cards yet" : "Kol kas kortelių nėra", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Nustatykite kortelių pradžios ir pabaigos datas, kad jas būtų galima matyti Gantt diagramoje", + "Cards without dates ({count})" : "Kortelės be datos ({count})", "Failed to create share with {displayName}" : "Nepavyko sukurti bendrinimo su {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Ar tikrai norite {title} lentą perkelti {user}?", "Transfer the board." : "Perkelti lentą.", @@ -255,7 +265,7 @@ OC.L10N.register( "File to share" : "Failas, kurį bendrinti", "Invalid path selected" : "Pasirinktas neteisingas kelias", "Upload new files" : "Išsiųsti naujus failus", - "Share from Files" : "Bendrinti iš failų", + "Share from Files" : "Bendrinti iš „Failai“", "Pending share" : "Laukiama bendrinimo", "Add this attachment" : "Pridėti šį priedą", "Show in Files" : "Rodyti failuose", @@ -275,11 +285,19 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Kol kas komentarų nėra. Pradėkite diskusiją!", "The comment cannot be empty." : "Komentaras negali būti tuščias.", "The comment cannot be longer than 1000 characters." : "Komentaras negali būti ilgesnis nei 1000 simbolių.", + "Submit" : "Pateikti", "Created:" : "Sukurta:", "In reply to" : "Atsakant į", "Cancel reply" : "Atšaukti atsakymą", "Reply" : "Atsakyti", "Update" : "Atnaujinti", + "Assign dependent cards" : "Priskirti priklausomas korteles", + "Mark as done" : "Žymėti kaip atliktą", + "Mark as not done" : "Žymėti kaip neatliktą", + "Remove dependency" : "Pašalinkite priklausomybę", + "Add dependent card" : "Pridėkite priklausomą kortelę", + "Assign a dependent card…" : "Priskirti priklausomą kortelę…", + "Select a dependent card…" : "Pasirinkite priklausomą kortelę…", "Write a description …" : "Parašykite aprašą…", "The description has been changed by another user." : "Aprašymą pakeitė kitas vartotojas.", "Could not save description" : "Nepavyko išsaugoti aprašymo", @@ -305,7 +323,6 @@ OC.L10N.register( "Add due date" : "Pridėti galutinį terminą", "Choose a date" : "Pasirinkite datą", "Remove due date" : "Šalinti galutinio termino datą", - "Mark as done" : "Žymėti kaip atliktą", "Due at:" : "Terminas:", "Not done" : "Nepadaryta", "Unarchive card" : "Išarchyvuoti kortelę", @@ -323,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Redaguoti kortelės pavadinimą", "Open link" : "Atverti nuorodą", "Card deleted" : "Kortelė ištrinta", + "Change card color" : "Keisti kortelės spalvą", "Edit title" : "Taisyti pavadinimą", "Assign to me" : "Priskirti sau", "Unassign myself" : "Atšaukti savo priskyrimą", - "Mark as not done" : "Žymėti kaip neatliktą", "Delete card" : "Ištrinti kortelę", - "seconds ago" : "prieš keletą sekundžių", "All boards" : "Visos lentos", "Archived boards" : "Archyvuotos lentos", "Shared with you" : "Bendrinama su jumis", @@ -347,7 +363,7 @@ OC.L10N.register( "Failed to leave the board" : "Nepavyko išeiti iš lentos", "Exporting board..." : "Eksportuojama lenta...", "Board details" : "Išsamiau apie lentą", - "Edit board" : "Taisyti lentą", + "Edit board" : "Redaguoti lentą", "Clone board" : "Dubliuoti lentą", "Unarchive board" : "Išarchyvuoti lentą", "Archive board" : "Archyvuoti lentą", @@ -376,7 +392,7 @@ OC.L10N.register( "Export {boardTitle}" : "Eksportuoti {boardTitle}", "Export as JSON" : "Eksportuoti kaip JSON", "Export as CSV" : "Eksportuoti kaip CSV", - "Note: Only the JSON format is supported for importing back into the Deck app." : "Pastaba: importuojant atgal į „Deck“ programėlę palaikomas tik JSON formatas.", + "Note: Only the JSON format is supported for importing back into the Deck app." : "Pastaba: importuojant atgal į „Darbų“ programėlę palaikomas tik JSON formatas.", "Export" : "Eksportuoti", "Loading filtered view" : "Įkeliama filtruota peržiūra", "Search for {searchQuery} in other boards" : "Ieškoti {searchQuery} kitose lentose", @@ -412,7 +428,7 @@ OC.L10N.register( "Due date" : "Galutinio termino data", "Created" : "Sukurta", "Modified" : "Pakeistas", - "Error creating the share" : "Klaida kuriant viešinį", + "Error creating the share" : "Klaida kuriant bendrinimą", "Share with a Deck card" : "Pasidalinti su Darbų kortele", "Share {file} with a Deck card" : "Pasidalinti {file} su Darbų kortele", "Share" : "Bendrinti", @@ -421,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Ieškoti vartotojų, grupių ar komandų…", "No participants found" : "Nerasta jokių dalyvių", "Save" : "Įrašyti", + "seconds ago" : "prieš keletą sekundžių", "Today" : "Šiandien", "Tomorrow" : "Rytoj", "No due" : "Be galutinio termino" diff --git a/l10n/lt_LT.json b/l10n/lt_LT.json index f67a6236c0..833b7c256e 100644 --- a/l10n/lt_LT.json +++ b/l10n/lt_LT.json @@ -86,7 +86,7 @@ "Cards due tomorrow" : "Rytoj baigiamos kortelės", "Upcoming cards" : "Artėjančios kortelės", "Load more" : "Įkelti daugiau", - "Welcome to Nextcloud Deck!" : "Sveiki atvykę į „Nextcloud Deck“!", + "Welcome to Nextcloud Deck!" : "Sveiki atvykę į „Nextcloud Darbai“!", "The card \"%s\" on \"%s\" has been assigned to you by %s." : "Kortelę \"%s\" ties \"%s\" priskyrė jums %s.", "{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} priskyrė jums {deck-card} kortelę iš {deck-board}.", "The card \"%1$s\" on \"%2$s\" has reached its due date." : "Kortelės „%1$s“ galiojimo laikas baigėsi %2$s.", @@ -100,7 +100,7 @@ "Owned by %1$s" : "Savininkas %1$s", "Deck boards, cards and comments" : "Darbų lentos, kortelės ir komentarai", "From %1$s, in %2$s/%3$s, owned by %4$s" : "Iš %1$s, %2$s/%3$s, savininkas %4$s", - "Create a new deck card" : "Sukurti naują kortelę", + "Create a new deck card" : "Sukurti naują darbų kortelę", "Card comments" : "Kortelės komentarai", "%s on %s" : "%s ant %s", "Deck boards and cards" : "Darbų lentos ir kortelės", @@ -127,8 +127,9 @@ "Card not found" : "Kortelė nerasta", "Path is already shared with this card" : "Kelias jau yra bendrinamas su šia kortele", "Invalid date, date format must be YYYY-MM-DD" : "Netinkama data, datos formatas privalo būti MMMM-mm-dd", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Visos jums priklausančios lentos, įskaitant krūvas, korteles, etiketes, užduotis ir komentarus", "Personal planning and team project organization" : "Asmeninis planavimas ir komandinių projektų organizavimas", - "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" : "Darbai – tai „kanban“ stiliaus organizavimo įrankis, skirtas asmeniniam planavimui ir komandų projektų organizavimui, integruotas su „Nextcloud“.\n\n\n- 📥 Pridėkite užduotis į korteles ir išdėstykite jas tvarkingai\n- 📄 Įrašykite papildomas pastabas „Markdown“ formatu\n- 🔖 Priskirkite žymes, kad viską būtų dar lengviau tvarkyti\n- 👥 Dalinkitės su komanda, draugais ar šeima\n- 📎 Pridėkite failus ir įterpkite juos į savo „Markdown“ aprašymą\n- 💬 Diskutuokite su savo komanda naudodami komentarus\n- ⚡ Sekite pokyčius veiklos sraute\n- 🚀 Sutvarkykite savo projektą", + "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" : "„Darbai “– tai „kanban“ stiliaus organizavimo įrankis, skirtas asmeniniam planavimui ir komandų projektų organizavimui, integruotas su „Nextcloud“.\n\n\n- 📥 Pridėkite užduotis į korteles ir išdėstykite jas tvarkingai\n- 📄 Įrašykite papildomas pastabas „Markdown“ formatu\n- 🔖 Priskirkite žymes, kad viską būtų dar lengviau tvarkyti\n- 👥 Dalinkitės su komanda, draugais ar šeima\n- 📎 Pridėkite failus ir įterpkite juos į savo „Markdown“ aprašymą\n- 💬 Diskutuokite su savo komanda naudodami komentarus\n- ⚡ Sekite pokyčius veiklos sraute\n- 🚀 Sutvarkykite savo projektą", "Add board" : "Pridėti lentą", "Card details" : "Išsamiau apie kortelę", "Select the board to link to a project" : "Pasirinkite lentą, kurią susieti su projektu", @@ -173,6 +174,8 @@ "Clear filter" : "Išvalyti filtrą", "View Modes" : "Peržiūros režimai", "Toggle View Modes" : "Išskleisti peržiūros režimus", + "Kanban view" : "Kanban rodinys", + "Gantt view" : "Gantt rodinys", "Hide archived cards" : "Slėpti archyvuotas korteles", "Show archived cards" : "Rodyti archyvuotas korteles", "Toggle compact mode" : "Perjungti kompaktišką veikseną", @@ -216,6 +219,13 @@ "Deleted lists" : "Ištrinti sąrašai", "Undo" : "Atšaukti", "Deleted cards" : "Ištrintos kortelės", + "Hours" : "Valandos", + "Days" : "Dienos", + "Weeks" : "Savaitės", + "Months" : "Mėnesiai", + "No cards yet" : "Kol kas kortelių nėra", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Nustatykite kortelių pradžios ir pabaigos datas, kad jas būtų galima matyti Gantt diagramoje", + "Cards without dates ({count})" : "Kortelės be datos ({count})", "Failed to create share with {displayName}" : "Nepavyko sukurti bendrinimo su {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Ar tikrai norite {title} lentą perkelti {user}?", "Transfer the board." : "Perkelti lentą.", @@ -253,7 +263,7 @@ "File to share" : "Failas, kurį bendrinti", "Invalid path selected" : "Pasirinktas neteisingas kelias", "Upload new files" : "Išsiųsti naujus failus", - "Share from Files" : "Bendrinti iš failų", + "Share from Files" : "Bendrinti iš „Failai“", "Pending share" : "Laukiama bendrinimo", "Add this attachment" : "Pridėti šį priedą", "Show in Files" : "Rodyti failuose", @@ -273,11 +283,19 @@ "No comments yet. Begin the discussion!" : "Kol kas komentarų nėra. Pradėkite diskusiją!", "The comment cannot be empty." : "Komentaras negali būti tuščias.", "The comment cannot be longer than 1000 characters." : "Komentaras negali būti ilgesnis nei 1000 simbolių.", + "Submit" : "Pateikti", "Created:" : "Sukurta:", "In reply to" : "Atsakant į", "Cancel reply" : "Atšaukti atsakymą", "Reply" : "Atsakyti", "Update" : "Atnaujinti", + "Assign dependent cards" : "Priskirti priklausomas korteles", + "Mark as done" : "Žymėti kaip atliktą", + "Mark as not done" : "Žymėti kaip neatliktą", + "Remove dependency" : "Pašalinkite priklausomybę", + "Add dependent card" : "Pridėkite priklausomą kortelę", + "Assign a dependent card…" : "Priskirti priklausomą kortelę…", + "Select a dependent card…" : "Pasirinkite priklausomą kortelę…", "Write a description …" : "Parašykite aprašą…", "The description has been changed by another user." : "Aprašymą pakeitė kitas vartotojas.", "Could not save description" : "Nepavyko išsaugoti aprašymo", @@ -303,7 +321,6 @@ "Add due date" : "Pridėti galutinį terminą", "Choose a date" : "Pasirinkite datą", "Remove due date" : "Šalinti galutinio termino datą", - "Mark as done" : "Žymėti kaip atliktą", "Due at:" : "Terminas:", "Not done" : "Nepadaryta", "Unarchive card" : "Išarchyvuoti kortelę", @@ -321,12 +338,11 @@ "Edit card title" : "Redaguoti kortelės pavadinimą", "Open link" : "Atverti nuorodą", "Card deleted" : "Kortelė ištrinta", + "Change card color" : "Keisti kortelės spalvą", "Edit title" : "Taisyti pavadinimą", "Assign to me" : "Priskirti sau", "Unassign myself" : "Atšaukti savo priskyrimą", - "Mark as not done" : "Žymėti kaip neatliktą", "Delete card" : "Ištrinti kortelę", - "seconds ago" : "prieš keletą sekundžių", "All boards" : "Visos lentos", "Archived boards" : "Archyvuotos lentos", "Shared with you" : "Bendrinama su jumis", @@ -345,7 +361,7 @@ "Failed to leave the board" : "Nepavyko išeiti iš lentos", "Exporting board..." : "Eksportuojama lenta...", "Board details" : "Išsamiau apie lentą", - "Edit board" : "Taisyti lentą", + "Edit board" : "Redaguoti lentą", "Clone board" : "Dubliuoti lentą", "Unarchive board" : "Išarchyvuoti lentą", "Archive board" : "Archyvuoti lentą", @@ -374,7 +390,7 @@ "Export {boardTitle}" : "Eksportuoti {boardTitle}", "Export as JSON" : "Eksportuoti kaip JSON", "Export as CSV" : "Eksportuoti kaip CSV", - "Note: Only the JSON format is supported for importing back into the Deck app." : "Pastaba: importuojant atgal į „Deck“ programėlę palaikomas tik JSON formatas.", + "Note: Only the JSON format is supported for importing back into the Deck app." : "Pastaba: importuojant atgal į „Darbų“ programėlę palaikomas tik JSON formatas.", "Export" : "Eksportuoti", "Loading filtered view" : "Įkeliama filtruota peržiūra", "Search for {searchQuery} in other boards" : "Ieškoti {searchQuery} kitose lentose", @@ -410,7 +426,7 @@ "Due date" : "Galutinio termino data", "Created" : "Sukurta", "Modified" : "Pakeistas", - "Error creating the share" : "Klaida kuriant viešinį", + "Error creating the share" : "Klaida kuriant bendrinimą", "Share with a Deck card" : "Pasidalinti su Darbų kortele", "Share {file} with a Deck card" : "Pasidalinti {file} su Darbų kortele", "Share" : "Bendrinti", @@ -419,6 +435,7 @@ "Searching for users, groups and teams …" : "Ieškoti vartotojų, grupių ar komandų…", "No participants found" : "Nerasta jokių dalyvių", "Save" : "Įrašyti", + "seconds ago" : "prieš keletą sekundžių", "Today" : "Šiandien", "Tomorrow" : "Rytoj", "No due" : "Be galutinio termino" diff --git a/l10n/lv.js b/l10n/lv.js index 0695a70bd4..0380cf2ab0 100644 --- a/l10n/lv.js +++ b/l10n/lv.js @@ -32,6 +32,7 @@ OC.L10N.register( "Cancel" : "Atcelt", "File already exists" : "Datne jau pastāv", "Do you want to overwrite it?" : "Vai tu gribi pārrakstīt to?", + "Add list" : "Pievienot sarakstu…", "Open" : "Atvērt", "Completed" : "Pabeigts", "Clear filter" : "Notīrīt atlasi", @@ -46,18 +47,24 @@ OC.L10N.register( "Tags" : "Birkas", "Activity" : "Darbības", "Undo" : "Atsaukt", + "Hours" : "Stundas", + "Days" : "Dienas", + "Weeks" : "Nedēļas", + "Months" : "Mēniši", + "Board owner" : "Dēļa īpašnieks", "(Group)" : "(Grupa)", "Can edit" : "Var labot", "Can share" : "Var koplietot", "Owner" : "Īpašnieks", "Delete" : "Izdzēst", "Edit" : "Labot", - "Members" : "Biedri", + "Members" : "Dalībnieki", "File to share" : "Kopīgojamā datne", "Invalid path selected" : "Atlasīts nederīgs ceļš", "Download" : "Lejupielādēt", "Open in sidebar view" : "Atvērt sānjoslas skatā", "Comments" : "Piebildes", + "Submit" : "Iesniegt", "Created:" : "Izveidots:", "Reply" : "Atbildēt", "Update" : "Atjaunināt", @@ -67,7 +74,6 @@ OC.L10N.register( "Set due date for later today" : "Iestatīt beigu datumu vēlāk šodienā", "(group)" : "(grupa)", "Open link" : "Atvērt saiti", - "seconds ago" : "pirms vairākām sekundēm", "Shared with you" : "Koplietots ar tevi", "No reminder" : "Nav atgādinājuma", "An error occurred" : "Gadījās kļūda", @@ -83,6 +89,7 @@ OC.L10N.register( "Share" : "Koplietot", "Searching for users, groups and teams …" : "Meklē lietotājus, kopas un komandas …", "Save" : "Saglabāt", + "seconds ago" : "pirms vairākām sekundēm", "Today" : "Šodien", "Tomorrow" : "Rīt" }, diff --git a/l10n/lv.json b/l10n/lv.json index 552d240652..dc3d2731db 100644 --- a/l10n/lv.json +++ b/l10n/lv.json @@ -30,6 +30,7 @@ "Cancel" : "Atcelt", "File already exists" : "Datne jau pastāv", "Do you want to overwrite it?" : "Vai tu gribi pārrakstīt to?", + "Add list" : "Pievienot sarakstu…", "Open" : "Atvērt", "Completed" : "Pabeigts", "Clear filter" : "Notīrīt atlasi", @@ -44,18 +45,24 @@ "Tags" : "Birkas", "Activity" : "Darbības", "Undo" : "Atsaukt", + "Hours" : "Stundas", + "Days" : "Dienas", + "Weeks" : "Nedēļas", + "Months" : "Mēniši", + "Board owner" : "Dēļa īpašnieks", "(Group)" : "(Grupa)", "Can edit" : "Var labot", "Can share" : "Var koplietot", "Owner" : "Īpašnieks", "Delete" : "Izdzēst", "Edit" : "Labot", - "Members" : "Biedri", + "Members" : "Dalībnieki", "File to share" : "Kopīgojamā datne", "Invalid path selected" : "Atlasīts nederīgs ceļš", "Download" : "Lejupielādēt", "Open in sidebar view" : "Atvērt sānjoslas skatā", "Comments" : "Piebildes", + "Submit" : "Iesniegt", "Created:" : "Izveidots:", "Reply" : "Atbildēt", "Update" : "Atjaunināt", @@ -65,7 +72,6 @@ "Set due date for later today" : "Iestatīt beigu datumu vēlāk šodienā", "(group)" : "(grupa)", "Open link" : "Atvērt saiti", - "seconds ago" : "pirms vairākām sekundēm", "Shared with you" : "Koplietots ar tevi", "No reminder" : "Nav atgādinājuma", "An error occurred" : "Gadījās kļūda", @@ -81,6 +87,7 @@ "Share" : "Koplietot", "Searching for users, groups and teams …" : "Meklē lietotājus, kopas un komandas …", "Save" : "Saglabāt", + "seconds ago" : "pirms vairākām sekundēm", "Today" : "Šodien", "Tomorrow" : "Rīt" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" diff --git a/l10n/mk.js b/l10n/mk.js index 56c9d99dba..230190b92d 100644 --- a/l10n/mk.js +++ b/l10n/mk.js @@ -129,6 +129,7 @@ OC.L10N.register( "Card not found" : "Картицата не е пронајдена", "Path is already shared with this card" : "Патеката веќе е споделена со оваа картица", "Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Сите табли во ваша сопственост, вклучувајќи ги колоните, картичките, ознаките, задолжените лица и коментарите.", "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🚀 Организирај го твојот проект", "Add board" : "Додади табла", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Исчисти филтри", "View Modes" : "Режими на приказ", "Toggle View Modes" : "Промени режими на приказ", + "Kanban view" : "Канбан преглед", + "Gantt view" : "Гантов дијаграм", "Hide archived cards" : "Сокриј ги архивираните картици", "Show archived cards" : "Прикажи ги архивираните картици", "Toggle compact mode" : "Вклучи компактен мод", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "Избришани листи", "Undo" : "Врати", "Deleted cards" : "Избришани картици", + "Hours" : "Часови", + "Days" : "Дена", + "Weeks" : "Недели", + "Months" : "Месеци", + "No cards yet" : "Сеуште нема картици", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Постави почетен датум и краен датум на картиците за да ги гледате во Гантов дијаграм", + "Cards without dates ({count})" : "Картици без датуми ({count})", "Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Дали сте сигурни дека сакате да ја префрлите таблата {title} на {user}?", "Transfer the board." : "Префрли табла.", @@ -275,11 +285,19 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!", "The comment cannot be empty." : "Коментарот неможе да биде празен. =", "The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.", + "Submit" : "Испрати", "Created:" : "Создадено:", "In reply to" : "Како одговор на", "Cancel reply" : "Откажи одговор", "Reply" : "Одговор", "Update" : "Ажурирај", + "Assign dependent cards" : "Додели зависни картици", + "Mark as done" : "Означи како готово", + "Mark as not done" : "Означи како не-готово", + "Remove dependency" : "Отстрани зависност", + "Add dependent card" : "Додели зависна картица", + "Assign a dependent card…" : "Доделување зависна картица...", + "Select a dependent card…" : "Избери зависна картица...", "Write a description …" : "Напиши опис ...", "The description has been changed by another user." : "Описот е променет од друг корисник.", "Could not save description" : "Неможе да се зачува описот", @@ -305,7 +323,6 @@ OC.L10N.register( "Add due date" : "Додади краен рок", "Choose a date" : "Избери датум", "Remove due date" : "Отстрани краен рок", - "Mark as done" : "Означи како готово", "Due at:" : "Краен рок:", "Not done" : "Не е завршено", "Unarchive card" : "Врати картица од архива", @@ -323,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Измени наслов на картица", "Open link" : "Отвори линк", "Card deleted" : "Картицата е избришана", + "Change card color" : "Промени ја бојата на картицата", "Edit title" : "Удери наслов", "Assign to me" : "Доделени мене", "Unassign myself" : "Откажи се", - "Mark as not done" : "Означи како не-готово", "Delete card" : "Избриши картица", - "seconds ago" : "пред неколку секунди", "All boards" : "Сите табли", "Archived boards" : "Архивирани табли", "Shared with you" : "Споделено со тебе", @@ -421,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Пребарување на корисници, групи или тимови...", "No participants found" : "Не се пронајдени учесници", "Save" : "Зачувај", + "seconds ago" : "пред неколку секунди", "Today" : "Денес", "Tomorrow" : "Утре", "No due" : "Не истекува" diff --git a/l10n/mk.json b/l10n/mk.json index bdd2306cb5..ab1dfc2ec2 100644 --- a/l10n/mk.json +++ b/l10n/mk.json @@ -127,6 +127,7 @@ "Card not found" : "Картицата не е пронајдена", "Path is already shared with this card" : "Патеката веќе е споделена со оваа картица", "Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Сите табли во ваша сопственост, вклучувајќи ги колоните, картичките, ознаките, задолжените лица и коментарите.", "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🚀 Организирај го твојот проект", "Add board" : "Додади табла", @@ -173,6 +174,8 @@ "Clear filter" : "Исчисти филтри", "View Modes" : "Режими на приказ", "Toggle View Modes" : "Промени режими на приказ", + "Kanban view" : "Канбан преглед", + "Gantt view" : "Гантов дијаграм", "Hide archived cards" : "Сокриј ги архивираните картици", "Show archived cards" : "Прикажи ги архивираните картици", "Toggle compact mode" : "Вклучи компактен мод", @@ -216,6 +219,13 @@ "Deleted lists" : "Избришани листи", "Undo" : "Врати", "Deleted cards" : "Избришани картици", + "Hours" : "Часови", + "Days" : "Дена", + "Weeks" : "Недели", + "Months" : "Месеци", + "No cards yet" : "Сеуште нема картици", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Постави почетен датум и краен датум на картиците за да ги гледате во Гантов дијаграм", + "Cards without dates ({count})" : "Картици без датуми ({count})", "Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Дали сте сигурни дека сакате да ја префрлите таблата {title} на {user}?", "Transfer the board." : "Префрли табла.", @@ -273,11 +283,19 @@ "No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!", "The comment cannot be empty." : "Коментарот неможе да биде празен. =", "The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.", + "Submit" : "Испрати", "Created:" : "Создадено:", "In reply to" : "Како одговор на", "Cancel reply" : "Откажи одговор", "Reply" : "Одговор", "Update" : "Ажурирај", + "Assign dependent cards" : "Додели зависни картици", + "Mark as done" : "Означи како готово", + "Mark as not done" : "Означи како не-готово", + "Remove dependency" : "Отстрани зависност", + "Add dependent card" : "Додели зависна картица", + "Assign a dependent card…" : "Доделување зависна картица...", + "Select a dependent card…" : "Избери зависна картица...", "Write a description …" : "Напиши опис ...", "The description has been changed by another user." : "Описот е променет од друг корисник.", "Could not save description" : "Неможе да се зачува описот", @@ -303,7 +321,6 @@ "Add due date" : "Додади краен рок", "Choose a date" : "Избери датум", "Remove due date" : "Отстрани краен рок", - "Mark as done" : "Означи како готово", "Due at:" : "Краен рок:", "Not done" : "Не е завршено", "Unarchive card" : "Врати картица од архива", @@ -321,12 +338,11 @@ "Edit card title" : "Измени наслов на картица", "Open link" : "Отвори линк", "Card deleted" : "Картицата е избришана", + "Change card color" : "Промени ја бојата на картицата", "Edit title" : "Удери наслов", "Assign to me" : "Доделени мене", "Unassign myself" : "Откажи се", - "Mark as not done" : "Означи како не-готово", "Delete card" : "Избриши картица", - "seconds ago" : "пред неколку секунди", "All boards" : "Сите табли", "Archived boards" : "Архивирани табли", "Shared with you" : "Споделено со тебе", @@ -419,6 +435,7 @@ "Searching for users, groups and teams …" : "Пребарување на корисници, групи или тимови...", "No participants found" : "Не се пронајдени учесници", "Save" : "Зачувај", + "seconds ago" : "пред неколку секунди", "Today" : "Денес", "Tomorrow" : "Утре", "No due" : "Не истекува" diff --git a/l10n/mn.js b/l10n/mn.js index 09330844bf..e329130d6d 100644 --- a/l10n/mn.js +++ b/l10n/mn.js @@ -216,6 +216,9 @@ OC.L10N.register( "Deleted lists" : "Устгагдсан жагсаалтууд", "Undo" : "–±—É—Ü–∞—Ö", "Deleted cards" : "Устгагдсан картууд", + "Hours" : "Цаг", + "Days" : "Хоног", + "Months" : "Сар", "Failed to create share with {displayName}" : "{displayName}-тай хуваалцалт үүсгэж чадсангүй", "Are you sure you want to transfer the board {title} to {user}?" : "{title} самбарыг {user} руу шилжүүлэхийг хүсэж байна уу?", "Transfer the board." : "Самбарыг шилжүүлэх.", @@ -266,11 +269,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Сэтгэгдэл байхгүй байна. Хэлэлцүүлгийг эхлүүлнэ үү!", "The comment cannot be empty." : "Сэтгэгдэл хоосон байж болохгүй.", "The comment cannot be longer than 1000 characters." : "Сэтгэгдэл 1000 тэмдэгтээс урт байж болохгүй.", + "Submit" : "–º—ç–¥—ç–≥–¥—ç—Ö", "Created:" : "“ƓؗŖ≥—ç—Å—ç–Ω:", "In reply to" : "Хариулж байна", "Cancel reply" : "Хариулт болих", "Reply" : "—Ö–∞—Ä–∏—É–ª—Ç", "Update" : "–®–∏–Ω—ç—á–ª—ç—Ö", + "Mark as done" : "Дууссан гэж тэмдэглэх", + "Mark as not done" : "Дуусаагүй гэж тэмдэглэх", "Could not save description" : "Тайлбар хадгалж чадсангүй", "Description" : "–¢–∞–π–ª–±–∞—Ä", "(Unsaved)" : "(Хадгалаагүй)", @@ -288,7 +294,6 @@ OC.L10N.register( "Add due date" : "Дуусах огноо нэмэх", "Choose a date" : "Огноо сонгох", "Remove due date" : "Дуусах огноо устгах", - "Mark as done" : "Дууссан гэж тэмдэглэх", "Due at:" : "Дуусах огноо:", "Not done" : "Дуусаагүй", "Unarchive card" : "Картыг архиваас гаргах", @@ -303,9 +308,7 @@ OC.L10N.register( "Edit title" : "Гарчиг засах", "Assign to me" : "Надад оноох", "Unassign myself" : "Өөрийгөө хасах", - "Mark as not done" : "Дуусаагүй гэж тэмдэглэх", "Delete card" : "Карт устгах", - "seconds ago" : "—Ö–æ—ë—Ä–¥–∞—Ö—å ”©–º–Ω”©", "All boards" : "Бүх самбар", "Archived boards" : "Архивлагдсан самбарууд", "Shared with you" : "—Ç–∞–Ω—Ç–∞–π —Ö—É–≤–∞–∞–ª—Ü—Å–∞–Ω", @@ -393,6 +396,7 @@ OC.L10N.register( "The card \"%s\" on \"%s\" has reached its due date." : "\"%s\" дээрх \"%s\" картын хугацаа дууслаа.", "No participants found" : "Оролцогч олдсонгүй", "Save" : "–•–∞–¥–≥–∞–ª–∞—Ö", + "seconds ago" : "—Ö–æ—ë—Ä–¥–∞—Ö—å ”©–º–Ω”©", "Today" : "”©–Ω”©”©–¥”©—Ä", "Tomorrow" : "–º–∞—Ä–≥–∞–∞—à", "No due" : "Дуусах огноо байхгүй" diff --git a/l10n/mn.json b/l10n/mn.json index 03831abb2a..7adbcc85f3 100644 --- a/l10n/mn.json +++ b/l10n/mn.json @@ -214,6 +214,9 @@ "Deleted lists" : "Устгагдсан жагсаалтууд", "Undo" : "–±—É—Ü–∞—Ö", "Deleted cards" : "Устгагдсан картууд", + "Hours" : "Цаг", + "Days" : "Хоног", + "Months" : "Сар", "Failed to create share with {displayName}" : "{displayName}-тай хуваалцалт үүсгэж чадсангүй", "Are you sure you want to transfer the board {title} to {user}?" : "{title} самбарыг {user} руу шилжүүлэхийг хүсэж байна уу?", "Transfer the board." : "Самбарыг шилжүүлэх.", @@ -264,11 +267,14 @@ "No comments yet. Begin the discussion!" : "Сэтгэгдэл байхгүй байна. Хэлэлцүүлгийг эхлүүлнэ үү!", "The comment cannot be empty." : "Сэтгэгдэл хоосон байж болохгүй.", "The comment cannot be longer than 1000 characters." : "Сэтгэгдэл 1000 тэмдэгтээс урт байж болохгүй.", + "Submit" : "–º—ç–¥—ç–≥–¥—ç—Ö", "Created:" : "“ƓؗŖ≥—ç—Å—ç–Ω:", "In reply to" : "Хариулж байна", "Cancel reply" : "Хариулт болих", "Reply" : "—Ö–∞—Ä–∏—É–ª—Ç", "Update" : "–®–∏–Ω—ç—á–ª—ç—Ö", + "Mark as done" : "Дууссан гэж тэмдэглэх", + "Mark as not done" : "Дуусаагүй гэж тэмдэглэх", "Could not save description" : "Тайлбар хадгалж чадсангүй", "Description" : "–¢–∞–π–ª–±–∞—Ä", "(Unsaved)" : "(Хадгалаагүй)", @@ -286,7 +292,6 @@ "Add due date" : "Дуусах огноо нэмэх", "Choose a date" : "Огноо сонгох", "Remove due date" : "Дуусах огноо устгах", - "Mark as done" : "Дууссан гэж тэмдэглэх", "Due at:" : "Дуусах огноо:", "Not done" : "Дуусаагүй", "Unarchive card" : "Картыг архиваас гаргах", @@ -301,9 +306,7 @@ "Edit title" : "Гарчиг засах", "Assign to me" : "Надад оноох", "Unassign myself" : "Өөрийгөө хасах", - "Mark as not done" : "Дуусаагүй гэж тэмдэглэх", "Delete card" : "Карт устгах", - "seconds ago" : "—Ö–æ—ë—Ä–¥–∞—Ö—å ”©–º–Ω”©", "All boards" : "Бүх самбар", "Archived boards" : "Архивлагдсан самбарууд", "Shared with you" : "—Ç–∞–Ω—Ç–∞–π —Ö—É–≤–∞–∞–ª—Ü—Å–∞–Ω", @@ -391,6 +394,7 @@ "The card \"%s\" on \"%s\" has reached its due date." : "\"%s\" дээрх \"%s\" картын хугацаа дууслаа.", "No participants found" : "Оролцогч олдсонгүй", "Save" : "–•–∞–¥–≥–∞–ª–∞—Ö", + "seconds ago" : "—Ö–æ—ë—Ä–¥–∞—Ö—å ”©–º–Ω”©", "Today" : "”©–Ω”©”©–¥”©—Ä", "Tomorrow" : "–º–∞—Ä–≥–∞–∞—à", "No due" : "Дуусах огноо байхгүй" diff --git a/l10n/nb.js b/l10n/nb.js index 0c781ca8e3..d837273157 100644 --- a/l10n/nb.js +++ b/l10n/nb.js @@ -201,6 +201,11 @@ OC.L10N.register( "Deleted lists" : "Slettede stabler", "Undo" : "Angre", "Deleted cards" : "Slettede kort", + "Hours" : "Timer", + "Days" : "Dager", + "Weeks" : "Uker", + "Months" : "Måneder", + "No cards yet" : "Ingen kort enda", "Failed to create share with {displayName}" : "Klarte ikke å opprette deling med {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Er du sikker på at du vil overføre tavlen {title} til {user}?", "Transfer the board." : "Overfør tavle.", @@ -252,11 +257,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Ingen kommentarer ennå. Start diskusjonen!", "The comment cannot be empty." : "Kommentaren kan ikke være tom.", "The comment cannot be longer than 1000 characters." : "Kommentaren kan ikke være lenger enn 1000 tegn.", + "Submit" : "Send inn", "Created:" : "Opprettet:", "In reply to" : "Som svar på", "Cancel reply" : "Avbryt svar", "Reply" : "Svar", "Update" : "Oppdater", + "Mark as done" : "Marker som fullført", + "Mark as not done" : "Marker som ikke ferdig", "Write a description …" : "Skriv en beskrivelse ...", "Description" : "Beskrivelse", "(Unsaved)" : "(Ikke lagret)", @@ -280,7 +288,6 @@ OC.L10N.register( "Add due date" : "Legg til forfallsdato", "Choose a date" : "Velg en dato", "Remove due date" : "Fjern forfallsdato", - "Mark as done" : "Marker som fullført", "Due at:" : "Forfaller den:", "Not done" : "Ikke fullført", "Unarchive card" : "Hent kort fra arkiv", @@ -297,9 +304,7 @@ OC.L10N.register( "Edit title" : "Rediger tittel", "Assign to me" : "Tildel meg", "Unassign myself" : "Fjern meg fra tildeling", - "Mark as not done" : "Marker som ikke ferdig", "Delete card" : "Slett kort", - "seconds ago" : "sekunder siden", "All boards" : "Alle tabler", "Archived boards" : "Arkiverte tavler", "Shared with you" : "Delt med deg", @@ -371,6 +376,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Søker etter brukere, grupper og lag...", "No participants found" : "Ingen deltakere funnet", "Save" : "Lagre", + "seconds ago" : "sekunder siden", "Today" : "I dag", "Tomorrow" : "I morgen", "No due" : "Ingen forfall" diff --git a/l10n/nb.json b/l10n/nb.json index c347dc639d..4cf44d617b 100644 --- a/l10n/nb.json +++ b/l10n/nb.json @@ -199,6 +199,11 @@ "Deleted lists" : "Slettede stabler", "Undo" : "Angre", "Deleted cards" : "Slettede kort", + "Hours" : "Timer", + "Days" : "Dager", + "Weeks" : "Uker", + "Months" : "Måneder", + "No cards yet" : "Ingen kort enda", "Failed to create share with {displayName}" : "Klarte ikke å opprette deling med {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Er du sikker på at du vil overføre tavlen {title} til {user}?", "Transfer the board." : "Overfør tavle.", @@ -250,11 +255,14 @@ "No comments yet. Begin the discussion!" : "Ingen kommentarer ennå. Start diskusjonen!", "The comment cannot be empty." : "Kommentaren kan ikke være tom.", "The comment cannot be longer than 1000 characters." : "Kommentaren kan ikke være lenger enn 1000 tegn.", + "Submit" : "Send inn", "Created:" : "Opprettet:", "In reply to" : "Som svar på", "Cancel reply" : "Avbryt svar", "Reply" : "Svar", "Update" : "Oppdater", + "Mark as done" : "Marker som fullført", + "Mark as not done" : "Marker som ikke ferdig", "Write a description …" : "Skriv en beskrivelse ...", "Description" : "Beskrivelse", "(Unsaved)" : "(Ikke lagret)", @@ -278,7 +286,6 @@ "Add due date" : "Legg til forfallsdato", "Choose a date" : "Velg en dato", "Remove due date" : "Fjern forfallsdato", - "Mark as done" : "Marker som fullført", "Due at:" : "Forfaller den:", "Not done" : "Ikke fullført", "Unarchive card" : "Hent kort fra arkiv", @@ -295,9 +302,7 @@ "Edit title" : "Rediger tittel", "Assign to me" : "Tildel meg", "Unassign myself" : "Fjern meg fra tildeling", - "Mark as not done" : "Marker som ikke ferdig", "Delete card" : "Slett kort", - "seconds ago" : "sekunder siden", "All boards" : "Alle tabler", "Archived boards" : "Arkiverte tavler", "Shared with you" : "Delt med deg", @@ -369,6 +374,7 @@ "Searching for users, groups and teams …" : "Søker etter brukere, grupper og lag...", "No participants found" : "Ingen deltakere funnet", "Save" : "Lagre", + "seconds ago" : "sekunder siden", "Today" : "I dag", "Tomorrow" : "I morgen", "No due" : "Ingen forfall" diff --git a/l10n/nl.js b/l10n/nl.js index 03e87af8e6..b0e5280a5e 100644 --- a/l10n/nl.js +++ b/l10n/nl.js @@ -84,8 +84,8 @@ OC.L10N.register( "Invalid file type. Only JSON files are allowed." : "Ongeldig bestandstype. Alleen JSON bestanden zijn ondersteund.", "Invalid JSON data" : "Ongeldige JSON data", "Failed to import board" : "Importeren van bord mislukt", - "Cards due today" : "Kaarten die vandaag verlopen", - "Cards due tomorrow" : "Kaarten die morgen verlopen", + "Cards due today" : "Kaarten die vandaag vervallen", + "Cards due tomorrow" : "Kaarten die morgen vervallen", "Upcoming cards" : "Aanstaande kaarten", "Load more" : "Laad meer", "Welcome to Nextcloud Deck!" : "Welkom bij Nextcloud Deck!", @@ -129,9 +129,10 @@ OC.L10N.register( "Card not found" : "Kaart niet gevonden", "Path is already shared with this card" : "Pad is al gedeeld met deze kaart", "Invalid date, date format must be YYYY-MM-DD" : "Ongeldige datum, formaat is YYYY-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Alle borden die jij bezit, inclusief stapels, kaarten, labels, toewijzingen en reacties", "Personal planning and team project organization" : "Persoonlijke planning en inrichting voor teamproject", "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck is een soort kanban organisatietool gericht op persoonlijke planning en projectorganisatie voor teams geïntegreerd in Nextcloud.\n\n\n- 📥 Voeg taken toe aan kaarten en sorteer ze\n- 📄 Schrijf extra notities in Markdown\n- 🔖 Ken labels toe voor betere organisatie\n- 👥 Deel met je team, vrienden of familie\n- 📎 Voeg bestanden toe en plaats ze in je Markdown beschrijving\n- 💬 Discussieer binnen je team met reacties\n- ⚡ Volg de wijzigingen in het activiteiten kanaal\n- 🚀 Organiseer je project", - "Add board" : "Toevoegen bord", + "Add board" : "Bord toevoegen", "Card details" : "Kaart details", "Select the board to link to a project" : "Kies het bord om met een project te verbinden", "Search by board title" : "Zoeken op bord-titel", @@ -140,8 +141,8 @@ OC.L10N.register( "Select a board" : "Selecteer een bord", "No lists available" : "Geen lijsten beschikbaar", "Select a list" : "Selecteer een lijst", - "Move card" : "Verplaats kaart", - "Copy card" : "Kopieer kaart", + "Move card" : "Kaart verplaatsen", + "Copy card" : "Kaart kopiëren", "Select the card to link to a project" : "Selecteer de kaart om met een project te koppelen", "Link to card" : "Koppelen met kaart", "Select a card" : "Selecteer een kaart", @@ -153,7 +154,7 @@ OC.L10N.register( "Do you want to overwrite it?" : "Wil je het overschrijven?", "Overwrite file" : "Overschrijven bestand", "Keep existing file" : "Bewaar het al bestaande bestand", - "Add card" : "Toevoegen kaart", + "Add card" : "Kaart toevoegen", "Archived cards" : "Gearchiveerde kaarten", "Add list" : "Lijst toevoegen", "List name" : "Lijstnaam", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Filter leegmaken", "View Modes" : "Weergavemodi", "Toggle View Modes" : "Wissel Weergavemodi", + "Kanban view" : "Kanban weergave", + "Gantt view" : "Gantt weergave", "Hide archived cards" : "Gearchiveerde kaarten verbergen", "Show archived cards" : "Gearchiveerde kaarten weergeven", "Toggle compact mode" : "Omschakelen compacte modus", @@ -202,7 +205,7 @@ OC.L10N.register( "Show those shortcuts" : "Toon die snelkoppelingen", "Card actions" : "Kaart acties", "Open card details" : "Open kaart details", - "Edit the card title" : "Bewerk kaart titel", + "Edit the card title" : "Kaarttitel bewerken", "Assign yourself to the current card" : "Wijs jezelf toe aan huidige kaart", "Archive/unarchive the current card" : "Archiveer/Dearchiveer de huidige kaart", "Mark card as completed/not completed" : "Markeer kaart als afgerond/niet afgerond", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "Verwijderde lijsten", "Undo" : "Ongedaan maken", "Deleted cards" : "Verwijderde kaarten", + "Hours" : "Uren", + "Days" : "Dagen", + "Weeks" : "Weken", + "Months" : "Maanden", + "No cards yet" : "Nog geen kaarten", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Stel een startdatum en vervaldatum in op je kaarten om ze te zien op de Gantt weergave", + "Cards without dates ({count})" : "Kaarten zonder data ({count})", "Failed to create share with {displayName}" : "Delen met {displayName} mislukt", "Are you sure you want to transfer the board {title} to {user}?" : "Weet je zeker dat je het bord {title} wilt overdragen aan {user}?", "Transfer the board." : "Draag het bord over.", @@ -237,6 +247,8 @@ OC.L10N.register( "Edit list title" : "Wijzig de titel van de lijst", "Archive all cards" : "Alle kaarten archiveren", "Unarchive all cards" : "De-archiveer alle kaarten", + "Do not set cards as \"done\"" : "Markeer kaarten niet als \"voltooid\"", + "Set cards as \"done\"" : "Markeer kaarten als \"voltooid\"", "Delete list" : "Lijst verwijderen", "Archive all cards in this list" : "Alle kaarten in deze lijst archiveren", "Unarchive all cards in this list" : "Alle kaarten in deze lijst de-archiveren", @@ -259,8 +271,11 @@ OC.L10N.register( "Show in Files" : "Tonen in Bestanden", "Download" : "Download", "Remove attachment" : "Bijlage verwijderen", - "Delete Attachment" : "Verwijderen bijlage", - "Restore Attachment" : "Herstellen bijlage", + "Delete Attachment" : "Bijlage verwijderen", + "Restore Attachment" : "Bijlage herstellen", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Aangepast: {modifiedDate} ⸱ Gemaakt {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Aangepast: {modifiedDate}\nAangemaakt: {createdDate}\nAangemaakt door: {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Aangepast: {modifiedDate}\nAangemaakt: {createdDate}", "The title cannot be empty." : "De titel kan niet leeg zijn.", "Cannot close unsaved card!" : "Kan niet opgeslagen kaart niet sluiten!", "Open in sidebar view" : "Open in zijbalk", @@ -270,20 +285,29 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Nog geen reacties. Begin de discussie!", "The comment cannot be empty." : "De reactie kan niet leeg zijn.", "The comment cannot be longer than 1000 characters." : "De reactie kan niet langer dan 1000 tekens zijn.", + "Submit" : "Indienen", "Created:" : "Aangemaakt:", "In reply to" : "Als antwoord op", "Cancel reply" : "Antwoord annuleren", "Reply" : "Antwoord", "Update" : "Bijwerken", + "Assign dependent cards" : "Wijs afhankelijke kaarten toe", + "Mark as done" : "Markeer als voltooid", + "Mark as not done" : "Markeren als niet gedaan", + "Remove dependency" : "Afhankelijkheid verwijderen", + "Add dependent card" : "Afhankelijke kaart toevoegen", + "Assign a dependent card…" : "Wijs een afhankelijke kaart toe...", + "Select a dependent card…" : "Selecteer een afhankelijke kaart...", "Write a description …" : "Voeg een beschrijving toe ...", + "The description has been changed by another user." : "De omschrijving is gewijzigd door een andere gebruiker.", "Could not save description" : "Kan beschrijving niet opslaan", "Description" : "Beschrijving", "(Unsaved)" : "(Niet opgeslagen)", "(Saving…)" : "(Opslaan…)", "Formatting help" : "Formatteringshulp", - "Edit description" : "Bewerk beschrijving", + "Edit description" : "Beschrijving bewerken", "View description" : "Bekijk beschrijving", - "Add Attachment" : "Toevoegen bijlage", + "Add Attachment" : "Bijlage toevoegen", "Choose attachment" : "Kies bijlage", "Select Date" : "Selecteer datum", "Later today – {timeLocale}" : "Later vandaag – {timeLocale}", @@ -296,34 +320,36 @@ OC.L10N.register( "Set due date for next week" : "Stel de vervaldatum in voor volgende week", "Assign a due date to this card…" : "Wijs een vervaldatum toe aan deze kaart...", "Set a due date" : "Stel een vervaldatum in", - "Add due date" : "Voeg vervaldatum toe", + "Add due date" : "Vervaldatum toevoegen", "Choose a date" : "Kies een datum", - "Remove due date" : "Verwijder vervaldatum", - "Mark as done" : "Markeer als voltooid", - "Due at:" : "Verloopt op:", + "Remove due date" : "Vervaldatum verwijderen", + "Due at:" : "Vervalt op:", "Not done" : "Niet gedaan", "Unarchive card" : "Terughalen kaart uit archief", - "Archive card" : "Archiveer kaart", + "Archive card" : "Kaart archiveren", + "Assign a start date to this card…" : "Wijs een startdatum toe aan deze kaart...", + "Set a start date" : "Stel startdatum in", + "Add start date" : "Startdatum toevoegen", + "Remove start date" : "Startdatum verwijderen", "Assign a tag to this card…" : "Wijs een label toe aan deze kaart...", "Select or create a tag…" : "Selecteer of maak een tag...", - "Create a new tag:" : "Maak een nieuwe tag aan.", + "Create a new tag:" : "Maak een nieuwe tag aan:", "(group)" : "(groep)", "{count} comments, {unread} unread" : "{count} reacties, {unread} ongelezen", "Todo items" : "Te doen onderwerpen", "Edit card title" : "Wijzig de titel van de kaart", "Open link" : "Open link", "Card deleted" : "Kaart verwijderd", + "Change card color" : "Verander kaartkleur", "Edit title" : "Titel bewerken", "Assign to me" : "Aan mij toewijzen", "Unassign myself" : "Eigen toewijzing opheffen", - "Mark as not done" : "Markeren als niet gedaan", - "Delete card" : "Verwijderen kaart", - "seconds ago" : "seconden geleden", + "Delete card" : "Kaart verwijderen", "All boards" : "Alle borden", "Archived boards" : "Gearchiveerde borden", "Shared with you" : "Deelde met jou", - "Cancel edit" : "Annuleer bewerking", - "Save board" : "Sla bord op", + "Cancel edit" : "Bewerking annuleren", + "Save board" : "Bord opslaan", "Board {0} deleted" : "Bord {0} verwijderd", "All cards" : "Alle kaarten", "Only assigned cards" : "Uitsluitend toegewezen kaarten", @@ -331,16 +357,16 @@ OC.L10N.register( "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 including archived cards." : "Bent u zeker dat u het bord {title} wilt verwijderen? Dit zal alle gegevens van dit bord verwijderen, inclusief gearchiveerde kaarten.", "Delete the board?" : "Bord verwijderen?", - "Are you sure you want to leave the board {title}?" : "Weet je zeker dat je bord{title}wil verlaten ?", + "Are you sure you want to leave the board {title}?" : "Weet je zeker dat je bord {title} wilt verlaten?", "Leave the board?" : "Verlaat het bord?", "Leave" : "Verlaat", "Failed to leave the board" : "Bord verlaten mislukt", "Exporting board..." : "Bord wordt geëxporteerd...", "Board details" : "Bord details", - "Edit board" : "Bewerk bord", + "Edit board" : "Bord bewerken", "Clone board" : "Dupliceer bord", "Unarchive board" : "De-archiveer bord", - "Archive board" : "Archiveer bord", + "Archive board" : "Bord archiveren", "Export board" : "Exporteer het bord", "Turn on due date reminders" : "Herinneringen voor vervaldatums aanzetten", "Turn off due date reminders" : "Herinneringen voor vervaldatums uitzetten", @@ -349,7 +375,7 @@ OC.L10N.register( "Due date reminders" : "Herinneringen voor vervaldatums", "Assigned cards" : "Toegewezen kaarten", "No notifications" : "Geen meldingen", - "Delete board" : "Verwijder bord", + "Delete board" : "Bord verwijderen", "Leave board" : "Verlaat bord", "Importing board..." : "Bord word geïmporteerd...", "Board imported successfully" : "Bord succesvol geïmporteerd", @@ -379,7 +405,7 @@ OC.L10N.register( "{stack} in {board}" : "{stack} in {board}", "Click to expand description" : "Klik om de beschrijving uit te vouwen", "Click to expand comment" : "Klik om de reactie uit te vouwen", - "Create card" : "Aanmaken kaart", + "Create card" : "Kaart aanmaken", "Create a new card" : "Maak een nieuwe kaart aan", "Card title" : "Kaarttitel", "Creating the new card …" : "Aanmaken nieuwe kaart...", @@ -411,8 +437,9 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Bezig met zoeken naar gebruikers, groepen en teams...", "No participants found" : "Geen deelnemers gevonden", "Save" : "Opslaan", + "seconds ago" : "seconden geleden", "Today" : "Vandaag", "Tomorrow" : "Morgen", - "No due" : "Geen vervallen" + "No due" : "Geen vervaldatum" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/nl.json b/l10n/nl.json index 2e45e7d71e..40b1115c5b 100644 --- a/l10n/nl.json +++ b/l10n/nl.json @@ -82,8 +82,8 @@ "Invalid file type. Only JSON files are allowed." : "Ongeldig bestandstype. Alleen JSON bestanden zijn ondersteund.", "Invalid JSON data" : "Ongeldige JSON data", "Failed to import board" : "Importeren van bord mislukt", - "Cards due today" : "Kaarten die vandaag verlopen", - "Cards due tomorrow" : "Kaarten die morgen verlopen", + "Cards due today" : "Kaarten die vandaag vervallen", + "Cards due tomorrow" : "Kaarten die morgen vervallen", "Upcoming cards" : "Aanstaande kaarten", "Load more" : "Laad meer", "Welcome to Nextcloud Deck!" : "Welkom bij Nextcloud Deck!", @@ -127,9 +127,10 @@ "Card not found" : "Kaart niet gevonden", "Path is already shared with this card" : "Pad is al gedeeld met deze kaart", "Invalid date, date format must be YYYY-MM-DD" : "Ongeldige datum, formaat is YYYY-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Alle borden die jij bezit, inclusief stapels, kaarten, labels, toewijzingen en reacties", "Personal planning and team project organization" : "Persoonlijke planning en inrichting voor teamproject", "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck is een soort kanban organisatietool gericht op persoonlijke planning en projectorganisatie voor teams geïntegreerd in Nextcloud.\n\n\n- 📥 Voeg taken toe aan kaarten en sorteer ze\n- 📄 Schrijf extra notities in Markdown\n- 🔖 Ken labels toe voor betere organisatie\n- 👥 Deel met je team, vrienden of familie\n- 📎 Voeg bestanden toe en plaats ze in je Markdown beschrijving\n- 💬 Discussieer binnen je team met reacties\n- ⚡ Volg de wijzigingen in het activiteiten kanaal\n- 🚀 Organiseer je project", - "Add board" : "Toevoegen bord", + "Add board" : "Bord toevoegen", "Card details" : "Kaart details", "Select the board to link to a project" : "Kies het bord om met een project te verbinden", "Search by board title" : "Zoeken op bord-titel", @@ -138,8 +139,8 @@ "Select a board" : "Selecteer een bord", "No lists available" : "Geen lijsten beschikbaar", "Select a list" : "Selecteer een lijst", - "Move card" : "Verplaats kaart", - "Copy card" : "Kopieer kaart", + "Move card" : "Kaart verplaatsen", + "Copy card" : "Kaart kopiëren", "Select the card to link to a project" : "Selecteer de kaart om met een project te koppelen", "Link to card" : "Koppelen met kaart", "Select a card" : "Selecteer een kaart", @@ -151,7 +152,7 @@ "Do you want to overwrite it?" : "Wil je het overschrijven?", "Overwrite file" : "Overschrijven bestand", "Keep existing file" : "Bewaar het al bestaande bestand", - "Add card" : "Toevoegen kaart", + "Add card" : "Kaart toevoegen", "Archived cards" : "Gearchiveerde kaarten", "Add list" : "Lijst toevoegen", "List name" : "Lijstnaam", @@ -173,6 +174,8 @@ "Clear filter" : "Filter leegmaken", "View Modes" : "Weergavemodi", "Toggle View Modes" : "Wissel Weergavemodi", + "Kanban view" : "Kanban weergave", + "Gantt view" : "Gantt weergave", "Hide archived cards" : "Gearchiveerde kaarten verbergen", "Show archived cards" : "Gearchiveerde kaarten weergeven", "Toggle compact mode" : "Omschakelen compacte modus", @@ -200,7 +203,7 @@ "Show those shortcuts" : "Toon die snelkoppelingen", "Card actions" : "Kaart acties", "Open card details" : "Open kaart details", - "Edit the card title" : "Bewerk kaart titel", + "Edit the card title" : "Kaarttitel bewerken", "Assign yourself to the current card" : "Wijs jezelf toe aan huidige kaart", "Archive/unarchive the current card" : "Archiveer/Dearchiveer de huidige kaart", "Mark card as completed/not completed" : "Markeer kaart als afgerond/niet afgerond", @@ -216,6 +219,13 @@ "Deleted lists" : "Verwijderde lijsten", "Undo" : "Ongedaan maken", "Deleted cards" : "Verwijderde kaarten", + "Hours" : "Uren", + "Days" : "Dagen", + "Weeks" : "Weken", + "Months" : "Maanden", + "No cards yet" : "Nog geen kaarten", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Stel een startdatum en vervaldatum in op je kaarten om ze te zien op de Gantt weergave", + "Cards without dates ({count})" : "Kaarten zonder data ({count})", "Failed to create share with {displayName}" : "Delen met {displayName} mislukt", "Are you sure you want to transfer the board {title} to {user}?" : "Weet je zeker dat je het bord {title} wilt overdragen aan {user}?", "Transfer the board." : "Draag het bord over.", @@ -235,6 +245,8 @@ "Edit list title" : "Wijzig de titel van de lijst", "Archive all cards" : "Alle kaarten archiveren", "Unarchive all cards" : "De-archiveer alle kaarten", + "Do not set cards as \"done\"" : "Markeer kaarten niet als \"voltooid\"", + "Set cards as \"done\"" : "Markeer kaarten als \"voltooid\"", "Delete list" : "Lijst verwijderen", "Archive all cards in this list" : "Alle kaarten in deze lijst archiveren", "Unarchive all cards in this list" : "Alle kaarten in deze lijst de-archiveren", @@ -257,8 +269,11 @@ "Show in Files" : "Tonen in Bestanden", "Download" : "Download", "Remove attachment" : "Bijlage verwijderen", - "Delete Attachment" : "Verwijderen bijlage", - "Restore Attachment" : "Herstellen bijlage", + "Delete Attachment" : "Bijlage verwijderen", + "Restore Attachment" : "Bijlage herstellen", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Aangepast: {modifiedDate} ⸱ Gemaakt {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Aangepast: {modifiedDate}\nAangemaakt: {createdDate}\nAangemaakt door: {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Aangepast: {modifiedDate}\nAangemaakt: {createdDate}", "The title cannot be empty." : "De titel kan niet leeg zijn.", "Cannot close unsaved card!" : "Kan niet opgeslagen kaart niet sluiten!", "Open in sidebar view" : "Open in zijbalk", @@ -268,20 +283,29 @@ "No comments yet. Begin the discussion!" : "Nog geen reacties. Begin de discussie!", "The comment cannot be empty." : "De reactie kan niet leeg zijn.", "The comment cannot be longer than 1000 characters." : "De reactie kan niet langer dan 1000 tekens zijn.", + "Submit" : "Indienen", "Created:" : "Aangemaakt:", "In reply to" : "Als antwoord op", "Cancel reply" : "Antwoord annuleren", "Reply" : "Antwoord", "Update" : "Bijwerken", + "Assign dependent cards" : "Wijs afhankelijke kaarten toe", + "Mark as done" : "Markeer als voltooid", + "Mark as not done" : "Markeren als niet gedaan", + "Remove dependency" : "Afhankelijkheid verwijderen", + "Add dependent card" : "Afhankelijke kaart toevoegen", + "Assign a dependent card…" : "Wijs een afhankelijke kaart toe...", + "Select a dependent card…" : "Selecteer een afhankelijke kaart...", "Write a description …" : "Voeg een beschrijving toe ...", + "The description has been changed by another user." : "De omschrijving is gewijzigd door een andere gebruiker.", "Could not save description" : "Kan beschrijving niet opslaan", "Description" : "Beschrijving", "(Unsaved)" : "(Niet opgeslagen)", "(Saving…)" : "(Opslaan…)", "Formatting help" : "Formatteringshulp", - "Edit description" : "Bewerk beschrijving", + "Edit description" : "Beschrijving bewerken", "View description" : "Bekijk beschrijving", - "Add Attachment" : "Toevoegen bijlage", + "Add Attachment" : "Bijlage toevoegen", "Choose attachment" : "Kies bijlage", "Select Date" : "Selecteer datum", "Later today – {timeLocale}" : "Later vandaag – {timeLocale}", @@ -294,34 +318,36 @@ "Set due date for next week" : "Stel de vervaldatum in voor volgende week", "Assign a due date to this card…" : "Wijs een vervaldatum toe aan deze kaart...", "Set a due date" : "Stel een vervaldatum in", - "Add due date" : "Voeg vervaldatum toe", + "Add due date" : "Vervaldatum toevoegen", "Choose a date" : "Kies een datum", - "Remove due date" : "Verwijder vervaldatum", - "Mark as done" : "Markeer als voltooid", - "Due at:" : "Verloopt op:", + "Remove due date" : "Vervaldatum verwijderen", + "Due at:" : "Vervalt op:", "Not done" : "Niet gedaan", "Unarchive card" : "Terughalen kaart uit archief", - "Archive card" : "Archiveer kaart", + "Archive card" : "Kaart archiveren", + "Assign a start date to this card…" : "Wijs een startdatum toe aan deze kaart...", + "Set a start date" : "Stel startdatum in", + "Add start date" : "Startdatum toevoegen", + "Remove start date" : "Startdatum verwijderen", "Assign a tag to this card…" : "Wijs een label toe aan deze kaart...", "Select or create a tag…" : "Selecteer of maak een tag...", - "Create a new tag:" : "Maak een nieuwe tag aan.", + "Create a new tag:" : "Maak een nieuwe tag aan:", "(group)" : "(groep)", "{count} comments, {unread} unread" : "{count} reacties, {unread} ongelezen", "Todo items" : "Te doen onderwerpen", "Edit card title" : "Wijzig de titel van de kaart", "Open link" : "Open link", "Card deleted" : "Kaart verwijderd", + "Change card color" : "Verander kaartkleur", "Edit title" : "Titel bewerken", "Assign to me" : "Aan mij toewijzen", "Unassign myself" : "Eigen toewijzing opheffen", - "Mark as not done" : "Markeren als niet gedaan", - "Delete card" : "Verwijderen kaart", - "seconds ago" : "seconden geleden", + "Delete card" : "Kaart verwijderen", "All boards" : "Alle borden", "Archived boards" : "Gearchiveerde borden", "Shared with you" : "Deelde met jou", - "Cancel edit" : "Annuleer bewerking", - "Save board" : "Sla bord op", + "Cancel edit" : "Bewerking annuleren", + "Save board" : "Bord opslaan", "Board {0} deleted" : "Bord {0} verwijderd", "All cards" : "Alle kaarten", "Only assigned cards" : "Uitsluitend toegewezen kaarten", @@ -329,16 +355,16 @@ "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 including archived cards." : "Bent u zeker dat u het bord {title} wilt verwijderen? Dit zal alle gegevens van dit bord verwijderen, inclusief gearchiveerde kaarten.", "Delete the board?" : "Bord verwijderen?", - "Are you sure you want to leave the board {title}?" : "Weet je zeker dat je bord{title}wil verlaten ?", + "Are you sure you want to leave the board {title}?" : "Weet je zeker dat je bord {title} wilt verlaten?", "Leave the board?" : "Verlaat het bord?", "Leave" : "Verlaat", "Failed to leave the board" : "Bord verlaten mislukt", "Exporting board..." : "Bord wordt geëxporteerd...", "Board details" : "Bord details", - "Edit board" : "Bewerk bord", + "Edit board" : "Bord bewerken", "Clone board" : "Dupliceer bord", "Unarchive board" : "De-archiveer bord", - "Archive board" : "Archiveer bord", + "Archive board" : "Bord archiveren", "Export board" : "Exporteer het bord", "Turn on due date reminders" : "Herinneringen voor vervaldatums aanzetten", "Turn off due date reminders" : "Herinneringen voor vervaldatums uitzetten", @@ -347,7 +373,7 @@ "Due date reminders" : "Herinneringen voor vervaldatums", "Assigned cards" : "Toegewezen kaarten", "No notifications" : "Geen meldingen", - "Delete board" : "Verwijder bord", + "Delete board" : "Bord verwijderen", "Leave board" : "Verlaat bord", "Importing board..." : "Bord word geïmporteerd...", "Board imported successfully" : "Bord succesvol geïmporteerd", @@ -377,7 +403,7 @@ "{stack} in {board}" : "{stack} in {board}", "Click to expand description" : "Klik om de beschrijving uit te vouwen", "Click to expand comment" : "Klik om de reactie uit te vouwen", - "Create card" : "Aanmaken kaart", + "Create card" : "Kaart aanmaken", "Create a new card" : "Maak een nieuwe kaart aan", "Card title" : "Kaarttitel", "Creating the new card …" : "Aanmaken nieuwe kaart...", @@ -409,8 +435,9 @@ "Searching for users, groups and teams …" : "Bezig met zoeken naar gebruikers, groepen en teams...", "No participants found" : "Geen deelnemers gevonden", "Save" : "Opslaan", + "seconds ago" : "seconden geleden", "Today" : "Vandaag", "Tomorrow" : "Morgen", - "No due" : "Geen vervallen" + "No due" : "Geen vervaldatum" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/nn_NO.js b/l10n/nn_NO.js index 1863a6f0b0..724835a90e 100644 --- a/l10n/nn_NO.js +++ b/l10n/nn_NO.js @@ -28,7 +28,6 @@ OC.L10N.register( "Reply" : "Svare", "Update" : "Oppdater", "Description" : "Skildring", - "seconds ago" : "sekund sidan", "Shared with you" : "Shared with you", "An error occurred" : "Det oppstod ein feil.", "Export" : "Eksporter", @@ -37,6 +36,7 @@ OC.L10N.register( "Modified" : "Endra", "Share" : "Del", "Save" : "Lagre", + "seconds ago" : "sekund sidan", "Today" : "I dag" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/nn_NO.json b/l10n/nn_NO.json index d07ae9e87e..c3e664f7b0 100644 --- a/l10n/nn_NO.json +++ b/l10n/nn_NO.json @@ -26,7 +26,6 @@ "Reply" : "Svare", "Update" : "Oppdater", "Description" : "Skildring", - "seconds ago" : "sekund sidan", "Shared with you" : "Shared with you", "An error occurred" : "Det oppstod ein feil.", "Export" : "Eksporter", @@ -35,6 +34,7 @@ "Modified" : "Endra", "Share" : "Del", "Save" : "Lagre", + "seconds ago" : "sekund sidan", "Today" : "I dag" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/oc.js b/l10n/oc.js index ebfb21e636..4d7df3cfac 100644 --- a/l10n/oc.js +++ b/l10n/oc.js @@ -28,6 +28,7 @@ OC.L10N.register( "Activity" : "Activitat", "Deleted lists" : "Listas suprimidas", "Undo" : "Desfar", + "Hours" : "Oras", "(Group)" : "(Grop)", "Can edit" : "Can edit", "Can share" : "Can share", @@ -41,6 +42,7 @@ OC.L10N.register( "Share from Files" : "Partejar a partir dels Fichièrs", "Download" : "Telecargar", "Comments" : "Comentaris", + "Submit" : "Transmetre", "Created:" : "Creat lo :", "Cancel reply" : "Anullar la responsa", "Reply" : "Respondre", @@ -48,7 +50,6 @@ OC.L10N.register( "Description" : "Descripcion", "Tomorrow – {timeLocale}" : "Deman – {timeLocale}", "Edit title" : "Modificar lo títol", - "seconds ago" : "fa qualques segondas", "Shared with you" : "Shared with you", "Cancel edit" : "Anullar la modificacion", "An error occurred" : "Una error s’es producha", @@ -63,6 +64,7 @@ OC.L10N.register( "Modified" : "Modificat", "Share" : "Partejar", "Save" : "Salvar", + "seconds ago" : "fa qualques segondas", "Today" : "Uèi", "Tomorrow" : "Deman" }, diff --git a/l10n/oc.json b/l10n/oc.json index 46f0bf01db..7af8a1c53a 100644 --- a/l10n/oc.json +++ b/l10n/oc.json @@ -26,6 +26,7 @@ "Activity" : "Activitat", "Deleted lists" : "Listas suprimidas", "Undo" : "Desfar", + "Hours" : "Oras", "(Group)" : "(Grop)", "Can edit" : "Can edit", "Can share" : "Can share", @@ -39,6 +40,7 @@ "Share from Files" : "Partejar a partir dels Fichièrs", "Download" : "Telecargar", "Comments" : "Comentaris", + "Submit" : "Transmetre", "Created:" : "Creat lo :", "Cancel reply" : "Anullar la responsa", "Reply" : "Respondre", @@ -46,7 +48,6 @@ "Description" : "Descripcion", "Tomorrow – {timeLocale}" : "Deman – {timeLocale}", "Edit title" : "Modificar lo títol", - "seconds ago" : "fa qualques segondas", "Shared with you" : "Shared with you", "Cancel edit" : "Anullar la modificacion", "An error occurred" : "Una error s’es producha", @@ -61,6 +62,7 @@ "Modified" : "Modificat", "Share" : "Partejar", "Save" : "Salvar", + "seconds ago" : "fa qualques segondas", "Today" : "Uèi", "Tomorrow" : "Deman" },"pluralForm" :"nplurals=2; plural=(n > 1);" diff --git a/l10n/pl.js b/l10n/pl.js index af570fed66..78c0521c2f 100644 --- a/l10n/pl.js +++ b/l10n/pl.js @@ -97,6 +97,7 @@ OC.L10N.register( "{user} has mentioned you in a comment on {deck-card}." : "{user} wspomniał o Tobie w komentarzu w {deck-card}.", "The board \"%s\" has been shared with you by %s." : "Tablica \"%s\" została Tobie udostępniona przez %s.", "{user} has shared {deck-board} with you." : "{user} udostępnił Tobie {deck-board}.", + "The remote board %1$s has been shared with you by %2$s" : "Zdalna tablica %1$s została Ci udostępniona przez %2$s", "Deck board" : "Tablica Deck", "Owned by %1$s" : "Właścicielem jest %1$s", "Deck boards, cards and comments" : "Tablice, karty i komentarze", @@ -128,6 +129,7 @@ OC.L10N.register( "Card not found" : "Nie znaleziono karty", "Path is already shared with this card" : "Ścieżka jest już udostępniona dla tej karty", "Invalid date, date format must be YYYY-MM-DD" : "Nieprawidłowa data, format daty to RRRR-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Wszystkie tablice należące do Ciebie, w tym stosy, karty, etykiety, przypisania i komentarze", "Personal planning and team project organization" : "Indywidualne planowanie i organizacja projektu zespołowego", "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" : "Tablica to narzędzie organizacyjne w stylu kanban, którego celem jest osobiste planowanie i organizacja projektu dla zespołów zintegrowanych z Nextcloud.\n\n\n- 📥 Dodaj swoje zadania do kart i porządkuj je\n- 📄 Zapisuj dodatkowe notatki w Markdown\n- 🔖 Przypisuj etykiety dla jeszcze lepszej organizacji\n- 👥 Współdziel ze swoim zespołem, przyjaciółmi lub rodziną\n- 📎 Dołączaj pliki i umieszczaj je w opisie Markdown\n- 💬 Porozmawiaj ze swoim zespołem za pomocą komentarzy\n- ⚡ Śledź zmiany w strumieniu aktywności\n- 🚀 Organizuj swój projekt", "Add board" : "Dodaj tablicę", @@ -174,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Wyczyść filtr", "View Modes" : "Zobacz tryby", "Toggle View Modes" : "Przełącz tryb widoku", + "Kanban view" : "Widok Kanban", + "Gantt view" : "Widok Gantta", "Hide archived cards" : "Ukryj zarchiwizowane karty", "Show archived cards" : "Pokaż zarchiwizowane karty", "Toggle compact mode" : "Przełącz w tryb kompaktowy", @@ -190,6 +194,7 @@ OC.L10N.register( "Admin settings" : "Ustawienia administratora", "Limit board creation to some groups" : "Ogranicz tworzenie tablic dla niektórych grup", "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Użytkownicy spoza tych grup nie będą mogli tworzyć własnych tablic, ale nadal będą mogli pracować na tablicach, które zostały im udostępnione.", + "Enable federation" : "Włącz federację", "Board actions" : "Akcje tablicy", "Scroll sideways" : "Przewijanie w bok", "Navigate between cards" : "Nawigacja między kartami", @@ -216,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "Usunięte listy", "Undo" : "Cofnij", "Deleted cards" : "Usunięte karty", + "Hours" : "Godzin", + "Days" : "Dni", + "Weeks" : "Tygodnie", + "Months" : "Miesiące", + "No cards yet" : "Brak kart", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Ustaw datę rozpoczęcia i termin wykonania na kartach, aby wyświetlić je na wykresie Gantta", + "Cards without dates ({count})" : "Karty bez dat ({count})", "Failed to create share with {displayName}" : "Nie udało się utworzyć udostępnienia dla {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Czy na pewno chcesz przenieść tablicę {title} do {user}?", "Transfer the board." : "Przeniesienie tablicy.", @@ -235,6 +247,8 @@ OC.L10N.register( "Edit list title" : "Edytuj tytuł listy", "Archive all cards" : "Zarchiwizuj wszystkie karty", "Unarchive all cards" : "Przywróć wszystkie karty z archiwum", + "Do not set cards as \"done\"" : "Nie ustawiaj kart jako \"zrobione\"", + "Set cards as \"done\"" : "Ustaw karty jako \"zrobione\"", "Delete list" : "Usuń listę", "Archive all cards in this list" : "Zarchiwizuj wszystkie karty na tej liście", "Unarchive all cards in this list" : "Cofnij archiwizację wszystkich kart z tej listy", @@ -259,6 +273,9 @@ OC.L10N.register( "Remove attachment" : "Usuń załącznik", "Delete Attachment" : "Usuń załącznik", "Restore Attachment" : "Przywróć załącznik", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Zmodyfikowano: {modifiedDate} utworzono {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Zmodyfikowano {modifiedDate}\nUtworzono: {createdDate}\nUtworzone przez: {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Zmodyfikowano: {modifiedDate}\nUtworzono: {createdDate}", "The title cannot be empty." : "Tytuł nie może być pusty.", "Cannot close unsaved card!" : "Nie można zamknąć niezapisanej karty!", "Open in sidebar view" : "Otwórz w widoku paska bocznego", @@ -268,12 +285,21 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Brak komentarzy. Rozpocznij dyskusję!", "The comment cannot be empty." : "Komentarz nie może być pusty.", "The comment cannot be longer than 1000 characters." : "Komentarz nie może być dłuższy niż 1000 znaków.", + "Submit" : "Wyślij", "Created:" : "Utworzono:", "In reply to" : "Odpowiedź na", "Cancel reply" : "Anuluj odpowiedź", "Reply" : "Odpowiedz", "Update" : "Aktualizuj", + "Assign dependent cards" : "Przypisz karty zależne", + "Mark as done" : "Oznacz jako wykonane", + "Mark as not done" : "Oznacz jako niewykonane", + "Remove dependency" : "Usuń zależność", + "Add dependent card" : "Dodaj kartę zależną", + "Assign a dependent card…" : "Przypisz kartę zależną...", + "Select a dependent card…" : "Wybierz kartę zależną...", "Write a description …" : "Napisz opis…", + "The description has been changed by another user." : "Opis został zmieniony przez innego użytkownika.", "Could not save description" : "Nie udało się zapisać opisu", "Description" : "Opis", "(Unsaved)" : "(Niezapisane)", @@ -297,11 +323,14 @@ OC.L10N.register( "Add due date" : "Dodaj termin", "Choose a date" : "Wybierz datę", "Remove due date" : "Usuń datę realizacji", - "Mark as done" : "Oznacz jako wykonane", "Due at:" : "Termin:", "Not done" : "Nie zrobione", "Unarchive card" : "Nie archiwizuj karty", "Archive card" : "Zarchiwizuj kartę", + "Assign a start date to this card…" : "Przypisz datę rozpoczęcia do tej karty...", + "Set a start date" : "Ustaw datę rozpoczęcia", + "Add start date" : "Dodaj datę rozpoczęcia", + "Remove start date" : "Usuń datę rozpoczęcia", "Assign a tag to this card…" : "Przypisz etykietę do tej karty…", "Select or create a tag…" : "Wybierz lub utwórz tag…", "Create a new tag:" : "Utwórz nową etykietę:", @@ -311,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Edytuj nazwę karty", "Open link" : "Otwórz link", "Card deleted" : "Karta usunięta", + "Change card color" : "Zmień kolor karty", "Edit title" : "Edytuj tytuł", "Assign to me" : "Przydziel do mnie", "Unassign myself" : "Cofnij moje przypisanie", - "Mark as not done" : "Oznacz jako niewykonane", "Delete card" : "Usuń kartę", - "seconds ago" : "przed chwilą", "All boards" : "Wszystkie tablice", "Archived boards" : "Zarchiwizowane tablice", "Shared with you" : "Udostępnione Tobie", @@ -342,6 +370,8 @@ OC.L10N.register( "Export board" : "Eksportuj tablicę", "Turn on due date reminders" : "Włącz przypomnienia o terminach", "Turn off due date reminders" : "Wyłącz przypomnienia o terminach", + "Remove as default board" : "Usuń jako domyślną tablicę", + "Set as default board" : "Ustaw jako domyślną tablicę", "Due date reminders" : "Przypomnienia o terminach", "Assigned cards" : "Przydzielone karty", "No notifications" : "Brak powiadomień", @@ -407,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Wyszukiwanie użytkowników, grup i zespołów…", "No participants found" : "Nie znaleziono uczestników", "Save" : "Zapisz", + "seconds ago" : "przed chwilą", "Today" : "Dzisiaj", "Tomorrow" : "Jutro", "No due" : "Bez ważności" diff --git a/l10n/pl.json b/l10n/pl.json index baabc66752..83814299ef 100644 --- a/l10n/pl.json +++ b/l10n/pl.json @@ -95,6 +95,7 @@ "{user} has mentioned you in a comment on {deck-card}." : "{user} wspomniał o Tobie w komentarzu w {deck-card}.", "The board \"%s\" has been shared with you by %s." : "Tablica \"%s\" została Tobie udostępniona przez %s.", "{user} has shared {deck-board} with you." : "{user} udostępnił Tobie {deck-board}.", + "The remote board %1$s has been shared with you by %2$s" : "Zdalna tablica %1$s została Ci udostępniona przez %2$s", "Deck board" : "Tablica Deck", "Owned by %1$s" : "Właścicielem jest %1$s", "Deck boards, cards and comments" : "Tablice, karty i komentarze", @@ -126,6 +127,7 @@ "Card not found" : "Nie znaleziono karty", "Path is already shared with this card" : "Ścieżka jest już udostępniona dla tej karty", "Invalid date, date format must be YYYY-MM-DD" : "Nieprawidłowa data, format daty to RRRR-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Wszystkie tablice należące do Ciebie, w tym stosy, karty, etykiety, przypisania i komentarze", "Personal planning and team project organization" : "Indywidualne planowanie i organizacja projektu zespołowego", "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" : "Tablica to narzędzie organizacyjne w stylu kanban, którego celem jest osobiste planowanie i organizacja projektu dla zespołów zintegrowanych z Nextcloud.\n\n\n- 📥 Dodaj swoje zadania do kart i porządkuj je\n- 📄 Zapisuj dodatkowe notatki w Markdown\n- 🔖 Przypisuj etykiety dla jeszcze lepszej organizacji\n- 👥 Współdziel ze swoim zespołem, przyjaciółmi lub rodziną\n- 📎 Dołączaj pliki i umieszczaj je w opisie Markdown\n- 💬 Porozmawiaj ze swoim zespołem za pomocą komentarzy\n- ⚡ Śledź zmiany w strumieniu aktywności\n- 🚀 Organizuj swój projekt", "Add board" : "Dodaj tablicę", @@ -172,6 +174,8 @@ "Clear filter" : "Wyczyść filtr", "View Modes" : "Zobacz tryby", "Toggle View Modes" : "Przełącz tryb widoku", + "Kanban view" : "Widok Kanban", + "Gantt view" : "Widok Gantta", "Hide archived cards" : "Ukryj zarchiwizowane karty", "Show archived cards" : "Pokaż zarchiwizowane karty", "Toggle compact mode" : "Przełącz w tryb kompaktowy", @@ -188,6 +192,7 @@ "Admin settings" : "Ustawienia administratora", "Limit board creation to some groups" : "Ogranicz tworzenie tablic dla niektórych grup", "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Użytkownicy spoza tych grup nie będą mogli tworzyć własnych tablic, ale nadal będą mogli pracować na tablicach, które zostały im udostępnione.", + "Enable federation" : "Włącz federację", "Board actions" : "Akcje tablicy", "Scroll sideways" : "Przewijanie w bok", "Navigate between cards" : "Nawigacja między kartami", @@ -214,6 +219,13 @@ "Deleted lists" : "Usunięte listy", "Undo" : "Cofnij", "Deleted cards" : "Usunięte karty", + "Hours" : "Godzin", + "Days" : "Dni", + "Weeks" : "Tygodnie", + "Months" : "Miesiące", + "No cards yet" : "Brak kart", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Ustaw datę rozpoczęcia i termin wykonania na kartach, aby wyświetlić je na wykresie Gantta", + "Cards without dates ({count})" : "Karty bez dat ({count})", "Failed to create share with {displayName}" : "Nie udało się utworzyć udostępnienia dla {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Czy na pewno chcesz przenieść tablicę {title} do {user}?", "Transfer the board." : "Przeniesienie tablicy.", @@ -233,6 +245,8 @@ "Edit list title" : "Edytuj tytuł listy", "Archive all cards" : "Zarchiwizuj wszystkie karty", "Unarchive all cards" : "Przywróć wszystkie karty z archiwum", + "Do not set cards as \"done\"" : "Nie ustawiaj kart jako \"zrobione\"", + "Set cards as \"done\"" : "Ustaw karty jako \"zrobione\"", "Delete list" : "Usuń listę", "Archive all cards in this list" : "Zarchiwizuj wszystkie karty na tej liście", "Unarchive all cards in this list" : "Cofnij archiwizację wszystkich kart z tej listy", @@ -257,6 +271,9 @@ "Remove attachment" : "Usuń załącznik", "Delete Attachment" : "Usuń załącznik", "Restore Attachment" : "Przywróć załącznik", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Zmodyfikowano: {modifiedDate} utworzono {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Zmodyfikowano {modifiedDate}\nUtworzono: {createdDate}\nUtworzone przez: {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Zmodyfikowano: {modifiedDate}\nUtworzono: {createdDate}", "The title cannot be empty." : "Tytuł nie może być pusty.", "Cannot close unsaved card!" : "Nie można zamknąć niezapisanej karty!", "Open in sidebar view" : "Otwórz w widoku paska bocznego", @@ -266,12 +283,21 @@ "No comments yet. Begin the discussion!" : "Brak komentarzy. Rozpocznij dyskusję!", "The comment cannot be empty." : "Komentarz nie może być pusty.", "The comment cannot be longer than 1000 characters." : "Komentarz nie może być dłuższy niż 1000 znaków.", + "Submit" : "Wyślij", "Created:" : "Utworzono:", "In reply to" : "Odpowiedź na", "Cancel reply" : "Anuluj odpowiedź", "Reply" : "Odpowiedz", "Update" : "Aktualizuj", + "Assign dependent cards" : "Przypisz karty zależne", + "Mark as done" : "Oznacz jako wykonane", + "Mark as not done" : "Oznacz jako niewykonane", + "Remove dependency" : "Usuń zależność", + "Add dependent card" : "Dodaj kartę zależną", + "Assign a dependent card…" : "Przypisz kartę zależną...", + "Select a dependent card…" : "Wybierz kartę zależną...", "Write a description …" : "Napisz opis…", + "The description has been changed by another user." : "Opis został zmieniony przez innego użytkownika.", "Could not save description" : "Nie udało się zapisać opisu", "Description" : "Opis", "(Unsaved)" : "(Niezapisane)", @@ -295,11 +321,14 @@ "Add due date" : "Dodaj termin", "Choose a date" : "Wybierz datę", "Remove due date" : "Usuń datę realizacji", - "Mark as done" : "Oznacz jako wykonane", "Due at:" : "Termin:", "Not done" : "Nie zrobione", "Unarchive card" : "Nie archiwizuj karty", "Archive card" : "Zarchiwizuj kartę", + "Assign a start date to this card…" : "Przypisz datę rozpoczęcia do tej karty...", + "Set a start date" : "Ustaw datę rozpoczęcia", + "Add start date" : "Dodaj datę rozpoczęcia", + "Remove start date" : "Usuń datę rozpoczęcia", "Assign a tag to this card…" : "Przypisz etykietę do tej karty…", "Select or create a tag…" : "Wybierz lub utwórz tag…", "Create a new tag:" : "Utwórz nową etykietę:", @@ -309,12 +338,11 @@ "Edit card title" : "Edytuj nazwę karty", "Open link" : "Otwórz link", "Card deleted" : "Karta usunięta", + "Change card color" : "Zmień kolor karty", "Edit title" : "Edytuj tytuł", "Assign to me" : "Przydziel do mnie", "Unassign myself" : "Cofnij moje przypisanie", - "Mark as not done" : "Oznacz jako niewykonane", "Delete card" : "Usuń kartę", - "seconds ago" : "przed chwilą", "All boards" : "Wszystkie tablice", "Archived boards" : "Zarchiwizowane tablice", "Shared with you" : "Udostępnione Tobie", @@ -340,6 +368,8 @@ "Export board" : "Eksportuj tablicę", "Turn on due date reminders" : "Włącz przypomnienia o terminach", "Turn off due date reminders" : "Wyłącz przypomnienia o terminach", + "Remove as default board" : "Usuń jako domyślną tablicę", + "Set as default board" : "Ustaw jako domyślną tablicę", "Due date reminders" : "Przypomnienia o terminach", "Assigned cards" : "Przydzielone karty", "No notifications" : "Brak powiadomień", @@ -405,6 +435,7 @@ "Searching for users, groups and teams …" : "Wyszukiwanie użytkowników, grup i zespołów…", "No participants found" : "Nie znaleziono uczestników", "Save" : "Zapisz", + "seconds ago" : "przed chwilą", "Today" : "Dzisiaj", "Tomorrow" : "Jutro", "No due" : "Bez ważności" diff --git a/l10n/pt_BR.js b/l10n/pt_BR.js index da7af32ac9..56edbe307f 100644 --- a/l10n/pt_BR.js +++ b/l10n/pt_BR.js @@ -129,6 +129,7 @@ OC.L10N.register( "Card not found" : "Cartão não encontrado", "Path is already shared with this card" : "O caminho já é compartilhado com este cartão", "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser AAAA-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Todos os painéis de que você é proprietário, incluindo pilhas, cartões, etiquetas, tarefas e comentários", "Personal planning and team project organization" : "Planejamento pessoal e organização de projetos em equipe", "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" : "O Deck é uma ferramenta de organização ao estilo kanban voltada para o planejamento pessoal e para a organização de projetos para equipes, integrada ao Nextcloud.\n\n\n- 📥Adicione suas tarefas aos cartões e coloque-os em ordem\n- 📄 Escreva notas adicionais formatadas em Markdown \n- 🔖 Atribua rótulos para uma organização ainda melhor\n- 👥 Compartilhe com sua equipe, seus amigos ou sua família\n- 📎 Anexe arquivos e incorpore-os à sua descrição em Markdown\n- 💬 Discuta com sua equipe usando comentários\n- ⚡ Acompanhe as alterações no fluxo de atividades \n- 🚀 Organize seu projeto ", "Add board" : "Adicionar painel", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Limpar filtro", "View Modes" : "Modos de Visualização", "Toggle View Modes" : "Alternar Modos de Visualização", + "Kanban view" : "Visualização Kanban", + "Gantt view" : "Visualização Gantt", "Hide archived cards" : "Ocultar cartões arquivados", "Show archived cards" : "Exibir cartões arquivados", "Toggle compact mode" : "Alternar modo compacto", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "Listas excluídas", "Undo" : "Desfazer", "Deleted cards" : "Cartões excluídos", + "Hours" : "Horas", + "Days" : "Dias", + "Weeks" : "Semanas", + "Months" : "Meses", + "No cards yet" : "Ainda sem cartões", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Defina uma data de início e um prazo nos seus cartões para visualizá-los no gráfico de Gantt", + "Cards without dates ({count})" : "Cartões sem datas ({count})", "Failed to create share with {displayName}" : "Falha ao criar compartilhamento com {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Deseja realmente transferir o painel {title} para {user}?", "Transfer the board." : "Transferir o painel.", @@ -263,8 +273,8 @@ OC.L10N.register( "Remove attachment" : "Remover anexo", "Delete Attachment" : "Excluir Anexo", "Restore Attachment" : "Restaurar Anexo", - "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Modificado: ⸱{modifiedDate} Criado: {createdDate}", - "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Modificado: {modifiedDate}\nCriado: {createdDate}\nCriado por: {owner} ", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Modificado: ⸱{modifiedDate} ⸱ Criado: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Modificado: {modifiedDate}\nCriado: {createdDate}\nCriado por: {owner}", "Modified: {modifiedDate}\nCreated: {createdDate}" : "Modificado: {modifiedDate}\nCriado: {createdDate}", "The title cannot be empty." : "O título não pode ficar em branco.", "Cannot close unsaved card!" : "Não é possível fechar um cartão não salvo!", @@ -275,11 +285,19 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Nenhum comentário ainda. Inicie a conversa!", "The comment cannot be empty." : "O comentário não pode zer vazio.", "The comment cannot be longer than 1000 characters." : "O comentário não pode ter mais que 1000 caracteres.", + "Submit" : "Enviar", "Created:" : "Criado:", "In reply to" : "Em resposta para", "Cancel reply" : "Cancelar resposta", "Reply" : "Responder", "Update" : "Atualizar", + "Assign dependent cards" : "Atribuir cartões dependentes", + "Mark as done" : "Marcar como concluído", + "Mark as not done" : "Marcar como não concluído", + "Remove dependency" : "Remover dependência", + "Add dependent card" : "Adicionar cartão dependente", + "Assign a dependent card…" : "Atribuir um cartão dependente…", + "Select a dependent card…" : "Selecione um cartão dependente…", "Write a description …" : "Escreva uma descrição...", "The description has been changed by another user." : "A descrição foi alterada por outro usuário.", "Could not save description" : "Não foi possível salvar a descrição", @@ -305,7 +323,6 @@ OC.L10N.register( "Add due date" : "Adicionar data de vencimento", "Choose a date" : "Escolha uma data", "Remove due date" : "Remover data de vencimento", - "Mark as done" : "Marcar como concluído", "Due at:" : "Vencimento em:", "Not done" : "Não concluído", "Unarchive card" : "Desarquivar cartão", @@ -323,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Editar título do cartão", "Open link" : "Abrir link", "Card deleted" : "Cartão excluído", + "Change card color" : "Alterar cor do cartão", "Edit title" : "Editar título", "Assign to me" : "Atribuir a mim", "Unassign myself" : "Desatribuir-me", - "Mark as not done" : "Marcar como não concluído", "Delete card" : "Excluir cartão", - "seconds ago" : "segundos atrás", "All boards" : "Todos os painéis", "Archived boards" : "Painéis arquivados", "Shared with you" : "Compartilhado com você", @@ -421,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Pesquisando usuários, grupos e equipes …", "No participants found" : "Nenhum participante encontrado", "Save" : "Salvar", + "seconds ago" : "segundos atrás", "Today" : "Hoje", "Tomorrow" : "Amanhã", "No due" : "Sem vencimento" diff --git a/l10n/pt_BR.json b/l10n/pt_BR.json index 0196768bcc..b486c5f1a8 100644 --- a/l10n/pt_BR.json +++ b/l10n/pt_BR.json @@ -127,6 +127,7 @@ "Card not found" : "Cartão não encontrado", "Path is already shared with this card" : "O caminho já é compartilhado com este cartão", "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser AAAA-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Todos os painéis de que você é proprietário, incluindo pilhas, cartões, etiquetas, tarefas e comentários", "Personal planning and team project organization" : "Planejamento pessoal e organização de projetos em equipe", "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" : "O Deck é uma ferramenta de organização ao estilo kanban voltada para o planejamento pessoal e para a organização de projetos para equipes, integrada ao Nextcloud.\n\n\n- 📥Adicione suas tarefas aos cartões e coloque-os em ordem\n- 📄 Escreva notas adicionais formatadas em Markdown \n- 🔖 Atribua rótulos para uma organização ainda melhor\n- 👥 Compartilhe com sua equipe, seus amigos ou sua família\n- 📎 Anexe arquivos e incorpore-os à sua descrição em Markdown\n- 💬 Discuta com sua equipe usando comentários\n- ⚡ Acompanhe as alterações no fluxo de atividades \n- 🚀 Organize seu projeto ", "Add board" : "Adicionar painel", @@ -173,6 +174,8 @@ "Clear filter" : "Limpar filtro", "View Modes" : "Modos de Visualização", "Toggle View Modes" : "Alternar Modos de Visualização", + "Kanban view" : "Visualização Kanban", + "Gantt view" : "Visualização Gantt", "Hide archived cards" : "Ocultar cartões arquivados", "Show archived cards" : "Exibir cartões arquivados", "Toggle compact mode" : "Alternar modo compacto", @@ -216,6 +219,13 @@ "Deleted lists" : "Listas excluídas", "Undo" : "Desfazer", "Deleted cards" : "Cartões excluídos", + "Hours" : "Horas", + "Days" : "Dias", + "Weeks" : "Semanas", + "Months" : "Meses", + "No cards yet" : "Ainda sem cartões", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Defina uma data de início e um prazo nos seus cartões para visualizá-los no gráfico de Gantt", + "Cards without dates ({count})" : "Cartões sem datas ({count})", "Failed to create share with {displayName}" : "Falha ao criar compartilhamento com {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Deseja realmente transferir o painel {title} para {user}?", "Transfer the board." : "Transferir o painel.", @@ -261,8 +271,8 @@ "Remove attachment" : "Remover anexo", "Delete Attachment" : "Excluir Anexo", "Restore Attachment" : "Restaurar Anexo", - "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Modificado: ⸱{modifiedDate} Criado: {createdDate}", - "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Modificado: {modifiedDate}\nCriado: {createdDate}\nCriado por: {owner} ", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Modificado: ⸱{modifiedDate} ⸱ Criado: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Modificado: {modifiedDate}\nCriado: {createdDate}\nCriado por: {owner}", "Modified: {modifiedDate}\nCreated: {createdDate}" : "Modificado: {modifiedDate}\nCriado: {createdDate}", "The title cannot be empty." : "O título não pode ficar em branco.", "Cannot close unsaved card!" : "Não é possível fechar um cartão não salvo!", @@ -273,11 +283,19 @@ "No comments yet. Begin the discussion!" : "Nenhum comentário ainda. Inicie a conversa!", "The comment cannot be empty." : "O comentário não pode zer vazio.", "The comment cannot be longer than 1000 characters." : "O comentário não pode ter mais que 1000 caracteres.", + "Submit" : "Enviar", "Created:" : "Criado:", "In reply to" : "Em resposta para", "Cancel reply" : "Cancelar resposta", "Reply" : "Responder", "Update" : "Atualizar", + "Assign dependent cards" : "Atribuir cartões dependentes", + "Mark as done" : "Marcar como concluído", + "Mark as not done" : "Marcar como não concluído", + "Remove dependency" : "Remover dependência", + "Add dependent card" : "Adicionar cartão dependente", + "Assign a dependent card…" : "Atribuir um cartão dependente…", + "Select a dependent card…" : "Selecione um cartão dependente…", "Write a description …" : "Escreva uma descrição...", "The description has been changed by another user." : "A descrição foi alterada por outro usuário.", "Could not save description" : "Não foi possível salvar a descrição", @@ -303,7 +321,6 @@ "Add due date" : "Adicionar data de vencimento", "Choose a date" : "Escolha uma data", "Remove due date" : "Remover data de vencimento", - "Mark as done" : "Marcar como concluído", "Due at:" : "Vencimento em:", "Not done" : "Não concluído", "Unarchive card" : "Desarquivar cartão", @@ -321,12 +338,11 @@ "Edit card title" : "Editar título do cartão", "Open link" : "Abrir link", "Card deleted" : "Cartão excluído", + "Change card color" : "Alterar cor do cartão", "Edit title" : "Editar título", "Assign to me" : "Atribuir a mim", "Unassign myself" : "Desatribuir-me", - "Mark as not done" : "Marcar como não concluído", "Delete card" : "Excluir cartão", - "seconds ago" : "segundos atrás", "All boards" : "Todos os painéis", "Archived boards" : "Painéis arquivados", "Shared with you" : "Compartilhado com você", @@ -419,6 +435,7 @@ "Searching for users, groups and teams …" : "Pesquisando usuários, grupos e equipes …", "No participants found" : "Nenhum participante encontrado", "Save" : "Salvar", + "seconds ago" : "segundos atrás", "Today" : "Hoje", "Tomorrow" : "Amanhã", "No due" : "Sem vencimento" diff --git a/l10n/pt_PT.js b/l10n/pt_PT.js index c526de36b8..4ad1dd40b6 100644 --- a/l10n/pt_PT.js +++ b/l10n/pt_PT.js @@ -37,6 +37,10 @@ OC.L10N.register( "{user} has archived card {card} in list {stack} on board {board}" : "{user} arquivou o cartão {card} na lista {stack} do painel {board}", "You have unarchived card {card} in list {stack} on board {board}" : "Você desarquivou o cartão {card} na lista {stack} do painel {board}", "{user} has unarchived card {card} in list {stack} on board {board}" : "{user} desarquivou o cartão {card} na lista {stack} do painel {board}", + "You have marked the card {card} as done in list {stack} on board {board}" : "Você marcou o cartão {card} como concluído na lista {stack} no painel {board}", + "{user} has marked card {card} as done in list {stack} on board {board}" : "{user} marcou o cartão {card} como concluído na lista {stack} no painel {board}", + "You have marked the card {card} as undone in list {stack} on board {board}" : "Você marcou o cartão {card} como não concluído na lista {stack} no painel {board}", + "{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} marcou o cartão {card} como não concluído na lista {stack} no painel {board}", "You have removed the due date of card {card}" : "Você eliminou a data limite do cartão {card}", "{user} has removed the due date of card {card}" : "{user} excluiu a data limite do cartão {card}", "You have set the due date of card {card} to {after}" : "Você definiu a data limite do cartão {card} para {after}", @@ -66,6 +70,7 @@ OC.L10N.register( "Deck" : "Quadro", "Changes in the Deck app" : "Alterações na aplicação Quadro", "A comment was created on a card" : "Um comentário foi criado num cartão", + "A card description has been changed" : "Uma descrição do cartão foi alterada", "The file was uploaded" : "O ficheiro foi carregado", "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O ficheiro carregado excede a diretiva upload_max_filesize no php.ini ", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O ficheiro carregado excede a diretiva MAX_FILE_SIZE especificada no formulário HTML", @@ -75,28 +80,50 @@ OC.L10N.register( "Could not write file to disk" : "Não foi possível escrever o ficheiro no disco.", "A PHP extension stopped the file upload" : "Uma extensão PHP parou o carregamento do ficheiro.", "No file uploaded or file size exceeds maximum of %s" : "Nenhum ficheiro carregado ou o tamanho do ficheiro excede o máximo de%s", + "Invalid file type. Only JSON files are allowed." : "Tipo de arquivo inválido. Somente arquivos JSON são permitidos.", + "Invalid JSON data" : "Dados JSON inválidos", + "Failed to import board" : "Falha ao importar painel", + "Cards due today" : "Cartões com vencimento hoje", + "Cards due tomorrow" : "Cartões com vencimento amanhã", "Upcoming cards" : "Próximos cartões", "Load more" : "Carregar mais", "The card \"%s\" on \"%s\" has been assigned to you by %s." : "O cartão \"%s\" em \"%s\" foi-lhe vinculado por %s.", "{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} atribuiu-lhe o cartão {deck-card} no {deck-board}.", + "The card \"%1$s\" on \"%2$s\" has reached its due date." : "O cartão \"%1$s\" em \"%2$s\" atingiu a sua data limite.", "The card {deck-card} on {deck-board} has reached its due date." : "O cartão {deck-card} em {deck-board} atingiu a sua data limite.", "%s has mentioned you in a comment on \"%s\"." : "%s mencionou-o num comentário em \"%s\".", "{user} has mentioned you in a comment on {deck-card}." : "{user} mencionou-o num comentário em {deck-card}.", "The board \"%s\" has been shared with you by %s." : "O quadro \"%s\" foi partilhado consigo por %s.", "{user} has shared {deck-board} with you." : "{user} partilhou {deck-board} consigo.", + "The remote board %1$s has been shared with you by %2$s" : "O painel remoto %1$s foi compartilhado com você por %2$s", + "Deck board" : "Painel de Deck", + "Owned by %1$s" : "Propriedade de %1$s", + "Deck boards, cards and comments" : "Paineis, cartões e comentários de Deck", + "From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, em %2$s/%3$s, propriedade de %4$s", + "Create a new deck card" : "Criar um novo cartão de Deck", "Card comments" : "Comentários nos cartões", "%s on %s" : "%s no %s", + "Deck boards and cards" : "Paineis e cartões de Deck", "No data was provided to create an attachment." : "Nenhum dado foi fornecido para criar um anexo.", "Finished" : "Terminado", "To review" : "A rever", "Action needed" : "Ação necessária", "Later" : "Mais tarde", "copy" : "copiar", + "Read more inside" : "Leia mais no interior", + "Custom lists - click to rename!" : "Listas personalizadas - clique para renomear!", "To Do" : "A fazer", + "In Progress" : "Em Andamento", "Done" : "Concluído", + "1. Open to learn more about boards and cards" : "1. Abra para saber mais sobre painéis e cartões", + "2. Drag cards left and right, up and down" : "2. Arraste os cartões para a esquerda e para a direita, para cima e para baixo", + "3. Apply rich formatting and link content" : "3. Aplique formatação avançada e conteúdo de links", + "4. Share, comment and collaborate!" : "4. Compartilhe, comente e colabore!", + "Create your first card!" : "Crie seu primeiro cartão!", "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentário tem mais de %s caracteres.\nAdicionado como um anexo ao cartão com o nome %s.\nAcessível no URL: %s.", "Attachments" : "Anexos", "File" : "Ficheiro", + "date" : "data", "Card not found" : "Cartão não encontrado", "Path is already shared with this card" : "O caminho já é partilhado com este cartão", "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser AAAA-MM-DD", @@ -104,71 +131,281 @@ OC.L10N.register( "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" : "Quadro é uma ferramenta de organização ao estilo kanban voltada para o planeamento pessoal e organização de projetos para equipas integradas no Nextcloud.\n\n\n- 📥Adicione as suas tarefas aos cartões e coloque-as em ordem\n- 📄 Escreva notas adicionais em Markdown\n- 🔖 Atribua etiquetas para uma organização ainda melhor\n- 👥 Partilhe com a sua equipa, amigos ou família\n- 📎 Anexe ficheiros e incorpore-os à descrição em Markdown\n- 💬 Debata com a sua equipa usando comentários\n- ⚡ Acompanhe as mudanças no fluxo de atividades \n- 🚀 Organize o seu projeto", "Add board" : "Adicionar quadro", "Card details" : "Detalhes do cartão", + "Search by board title" : "Pesquisar pelo título do painel", + "Select board" : "Selecionar painel", + "Move/copy card" : "Mover/copiar cartão", + "Select a board" : "Selecionar um painel", + "No lists available" : "Nenhuma lista disponível", + "Select a list" : "Selecione uma lista", + "Move card" : "Mover cartão", + "Copy card" : "Copiar cartão", + "Select the card to link to a project" : "Selecione o cartão para vincular a um projeto", + "Link to card" : "Vincular ao cartão", "Cancel" : "Cancelar", + "This board is read only" : "Este painel é somente leitura", + "Drop your files to upload" : "Arraste seus arquivos para enviar", "File already exists" : "O ficheiro já existe", + "A file with the name {filename} already exists." : "Um arquivo com o nome {filename} já existe.", + "Overwrite file" : "Sobrescrever arquivo", + "Keep existing file" : "Manter o arquivo existente", "Add card" : "Adicionar um cartão", + "Archived cards" : "Cartões arquivados", + "Add list" : "Adicionar lista", + "List name" : "Nome da lista", "Active filters" : "Filtros ativos", + "Apply filter" : "Aplicar filtro", + "Filter by tag" : "Filtrar por etiqueta", + "Filter by assigned user" : "Filtrar por usuário atribuído", + "Unassigned" : "Não atribuído", + "Open and completed" : "Aberto e concluído", "Open" : "Abrir", "Completed" : "Concluída", + "Filter by due date" : "Filtrar por data de vencimento", + "Overdue" : "Vencidos", + "Next 24 hours" : "Próximas 24 horas", + "Next 7 days" : "Próximos 7 dias", + "Next 30 days" : "Próximos 30 dias", + "No due date" : "Sem data de vencimento", "Clear filter" : "Limpar filtro", + "Toggle View Modes" : "Alternar Modos de Visualização", + "Kanban view" : "Visualização Kanban", + "Gantt view" : "Visualização Gantt", "Hide archived cards" : "Esconder cartões arquivados", "Show archived cards" : "Mostrar cartões arquivados", + "Hide card cover images" : "Ocultar imagens de capa de cartão", + "Show card cover images" : "Mostrar imagens de capa de cartão", + "Open details" : "Abrir detalhes", "Details" : "Detalhes", + "Deck settings" : "Configurações do Deck", "General" : "Geral", + "Use bigger card view" : "Use uma exibição de cartão maior", "Appearance" : "Aspeto", + "Show card ID badge" : "Exibir o distintivo de identificação do cartão", + "Show boards in calendar/tasks" : "Exibir os painéis em calendários/tarefas", + "Limit board creation to some groups" : "Limitar a criação de painéis a alguns grupos", + "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Os usuários fora desses grupos não poderão criar seus próprios painéis, mas ainda poderão trabalhar nos painéis que foram compartilhados com eles.", + "Board actions" : "Ações de painel", + "Scroll sideways" : "Rolar para o lado", + "Navigate between cards" : "Navegar entre os cartões", + "Close card details" : "Fechar detalhes do cartão", "Search" : "Pesquisa sobre", + "Show card filters" : "Mostrar filtros de cartão", + "Clear card filters" : "Limpar filtros de cartão", "Show those shortcuts" : "Mostrar esses atalhos", + "Card actions" : "Ações de cartão", + "Open card details" : "Abrir detalhes do cartão", + "Edit the card title" : "Editar o título do cartão", + "Archive/unarchive the current card" : "Arquivar/desarquivar o cartão atual", + "Mark card as completed/not completed" : "Marcar cartão como concluído/não concluído", + "Open card menu" : "Abrir menu do cartão", + "Currently present people" : "Pessoas atualmente presentes", + "Board not found" : "Painel não encontrado", + "Create a new list to add cards to this board" : "Criar uma nova lista para adicionar cartões a este painel", "Sharing" : "Partilha", "Tags" : "Etiquetas", + "Deleted items" : "Itens excluídos", "Activity" : "Atividade", + "Deleted lists" : "Listas excluídas", "Undo" : "Desfazer", + "Deleted cards" : "Cartões excluídos", + "Hours" : "Horas", + "Days" : "Dias", + "Weeks" : "Semanas", + "Months" : "Meses", + "No cards yet" : "Ainda sem cartões", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Defina uma data de início e um prazo nos seus cartões para visualizá-los no gráfico de Gantt", + "Cards without dates ({count})" : "Cartões sem datas ({count})", + "Failed to create share with {displayName}" : "Falha ao criar compartilhamento com {displayName}", + "Are you sure you want to transfer the board {title} to {user}?" : "Deseja realmente transferir o painel {title} para {user}?", "Transfer" : "Transfere", + "The board has been transferred to {user}" : "A painel foi transferida para {user}", + "Failed to transfer the board to {user}" : "Não foi possível transferir o painel para {user}", + "Board owner" : "Proprietário do painel", "(Group)" : "(Grupo)", "(remote)" : "(remoto)", "Can edit" : "Can edit", "Can share" : "Can share", + "Can manage" : "Pode gerenciar", "Owner" : "Proprietário", "Delete" : "Apagar", + "List deleted" : "Lista excluída", + "Edit list title" : "Editar título da lista", + "Unarchive all cards" : "Desarquivar todos os cartões", + "Do not set cards as \"done\"" : "Não definir cartões como \"concluído\"", + "Set cards as \"done\"" : "Definir cartões como \"concluído\"", + "Delete list" : "Excluir lista", + "Archive all cards in this list" : "Arquivar todos os cartões desta lista", + "Unarchive all cards in this list" : "Desarquivar todos os cartões desta lista", + "Card name" : "Nome do cartão", + "title and color value must be provided" : "o título e o valor da cor devem ser fornecidos", "Edit" : "Editar", + "Add a new tag" : "Adicionar uma nova etiqueta", + "Board name" : "Nome do quadro", "Members" : "Membros", + "Assign to users/groups/team" : "Atribuir a usuários/grupos/equipe", + "Assign a user to this card…" : "Atribuir um usuário a este cartão...", + "Select a user to assign to this card…" : "Selecione um usuário para atribuir a este cartão…", "File to share" : "Ficheiro a partilhar", "Invalid path selected" : "Caminho inválido selecionado", "Upload new files" : "Enviar novos ficheiros", + "Share from Files" : "Compartilhar de Arquivos", + "Add this attachment" : "Adicionar este anexo", + "Show in Files" : "Mostrar em Arquivos", "Download" : "Transferir", + "Remove attachment" : "Remover anexo", + "Delete Attachment" : "Excluir Anexo", + "Restore Attachment" : "Restaurar Anexo", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Modificado: ⸱{modifiedDate} ⸱ Criado: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Modificado: {modifiedDate}\nCriado: {createdDate}\nCriado por: {owner}", + "The title cannot be empty." : "O título não pode ficar em branco.", + "Cannot close unsaved card!" : "Não é possível fechar um cartão não salvo!", + "Open in sidebar view" : "Abrir em visualização da barra lateral", + "Open in bigger view" : "Abrir em visualização ampliada", "Comments" : "Comentários", + "No comments yet. Begin the discussion!" : "Nenhum comentário ainda. Inicie a conversa!", + "The comment cannot be empty." : "O comentário não pode zer vazio.", + "The comment cannot be longer than 1000 characters." : "O comentário não pode ter mais que 1000 caracteres.", + "Submit" : "Submeter", "Created:" : "Criado:", + "In reply to" : "Em resposta a", + "Cancel reply" : "Cancelar resposta", "Reply" : "Resposta", "Update" : "Atualizar", + "Assign dependent cards" : "Atribuir cartões dependentes", + "Mark as done" : "Marcar como concluído", + "Mark as not done" : "Marcar como não concluído", + "Remove dependency" : "Remover dependência", + "Add dependent card" : "Adicionar cartão dependente", + "Write a description …" : "Escreva uma descrição...", + "The description has been changed by another user." : "A descrição foi alterada por outro usuário.", + "Could not save description" : "Não foi possível salvar a descrição", "Description" : "Descrição", + "(Unsaved)" : "(Não salvo)", + "(Saving…)" : "(Salvando...)", + "Formatting help" : "Ajuda para formatação", + "Edit description" : "Editar descrição", + "View description" : "Exibir descrição", + "Add Attachment" : "Adicionar anexo", + "Choose attachment" : "Escolher anexo", "Select Date" : "Escolha a data", + "Later today – {timeLocale}" : "Hoje mais tarde – {timeLocale}", + "Set due date for later today" : "Definir a data de vencimento para hoje mais tarde", + "Tomorrow – {timeLocale}" : "Amanhã – {timeLocale}", + "Set due date for tomorrow" : "Defina a data de vencimento para amanhã", + "This weekend – {timeLocale}" : "Este fim de semana – {timeLocale}", + "Set due date for this weekend" : "Defina a data de vencimento para este fim de semana", + "Next week – {timeLocale}" : "Próxima semana – {timeLocale}", + "Set due date for next week" : "Defina a data de vencimento para a próxima semana", + "Assign a due date to this card…" : "Atribuir uma data de vencimento a este cartão…", + "Set a due date" : "Definir uma data de vencimento", + "Choose a date" : "Escolha uma data", + "Remove due date" : "Remover data de vencimento", + "Due at:" : "Vencimento em:", + "Not done" : "Não concluído", + "Unarchive card" : "Desarquivar cartão", "Archive card" : "Arquivar cartão", + "Assign a start date to this card…" : "Defina uma data de início para este cartão…", + "Add start date" : "Adicionar data de início", + "Remove start date" : "Remover data de início", + "Select or create a tag…" : "Selecionar ou criar uma etiqueta…", + "Create a new tag:" : "Criar uma nova etiqueta:", "(group)" : "(grupo)", + "{count} comments, {unread} unread" : "{count} comentários, {unread} não lidos", + "Todo items" : "Itens a fazer", + "Edit card title" : "Editar título do cartão", + "Open link" : "Abrir link", + "Card deleted" : "Cartão excluído", + "Change card color" : "Alterar cor do cartão", + "Edit title" : "Editar título", + "Unassign myself" : "Desatribuir-me", "Delete card" : "Eliminar cartão", - "seconds ago" : "segundos atrás", + "All boards" : "Todos os painéis", "Archived boards" : "Quadros arquivados", "Shared with you" : "Shared with you", "Cancel edit" : "Cancelar edição", + "Save board" : "Salvar painel", + "Board {0} deleted" : "Painel {0} excluído", + "All cards" : "Todos os cartões", "No reminder" : "Nenhum lembrete", "An error occurred" : "Ocorreu um erro", + "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Deseja realmente excluir o painel {title}? Isso excluirá todos os dados deste painel, inclusive os cartões arquivados.", + "Delete the board?" : "Excluir o painel?", + "Are you sure you want to leave the board {title}?" : "Tem certeza de que deseja sair do painel {title}?", + "Leave the board?" : "Sair do painel?", + "Leave" : "Sair", + "Failed to leave the board" : "Falha ao sair do painel", + "Exporting board..." : "Exportando painel...", "Board details" : "Detalhes do quadro", "Edit board" : "Editar quadro", + "Clone board" : "Clonar painel", + "Unarchive board" : "Desarquivar painel", "Archive board" : "Arquivar quadro", + "Export board" : "Exportar painel", + "Turn off due date reminders" : "Desativar lembretes de vencimento", + "Remove as default board" : "Remover como painel padrão", + "Set as default board" : "Definir como painel padrão", + "Due date reminders" : "Lembretes de vencimento", + "Assigned cards" : "Cartões atribuídos", "No notifications" : "Sem notificações", "Delete board" : "Eliminar quadro", + "Leave board" : "Sair do painel", + "Importing board..." : "Importando painel...", + "Board imported successfully" : "Painel importado com sucesso", + "Clone {boardTitle}" : "Clonar {boardTitle}", + "Clone cards" : "Clonar cartões", + "Clone assignments" : "Clonar atribuições", + "Clone labels" : "Clonar rótulos", + "Clone due dates" : "Clonar datas de vencimento", "Advanced options" : "Opções avançadas", + "Move all cards to the first list" : "Mover todos os cartões para a primeira lista", + "Clone" : "Clonar", + "Export {boardTitle}" : "Exportar {boardTitle}", + "Export as CSV" : "Exportar como CSV", + "Note: Only the JSON format is supported for importing back into the Deck app." : "Observação: somente o formato JSON é compatível com a importação de volta para o aplicativo Deck.", "Export" : "Exportar", + "Loading filtered view" : "Carregando exibição filtrada", + "Search for {searchQuery} in other boards" : "Pesquisar {searchQuery} em outros painéis.", + "Search for {searchQuery} in all boards" : "Pesquisar por {searchQuery} em todos os painéis", "No results found" : "No results found", + "Deck board {name}\n* Last modified on {lastMod}" : "Painel de Deck {name}\n* Última modificação em {lastMod}", + "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Criado em {created}\n* Última modificação em {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentários", "Due on {date}" : "Due on {date}", + "{stack} in {board}" : "{stack} em {board}", + "Click to expand description" : "Clique para expandir a descrição", + "Click to expand comment" : "Clique para expandir o comentário", "Create card" : "Criar cartão", + "Create a new card" : "Criar um novo cartão", + "Card title" : "Título do cartão", + "Creating the new card …" : "Criando o novo cartão …", + "Open card" : "Abrir o cartão", "Close" : "Fechar", + "No upcoming cards" : "Não há próximos cartões", + "upcoming cards today" : "próximos cartões hoje", + "upcoming cards tomorrow" : "próximos cartões amanhã", + "New card" : "Novo cartão", + "Link to a board" : "Vincular a um painel", + "Link to a card" : "Vincular a um cartão", + "Create a card" : "Criar um cartão", + "Message from {author} in {conversationName}" : "Mensagem de {author} em {conversationName}", + "Something went wrong" : "Algo deu errado", "Failed to upload {name}" : "Failed to upload {name}", + "Maximum file size of {size} exceeded" : "Excedeu o tamanho máximo de arquivo de {size}", + "Assigned users" : "Usuários atribuídos", "Due date" : "Data limite", "Created" : "Criado", "Modified" : "Modificado", + "Error creating the share" : "Erro ao criar o compartilhamento", + "Share with a Deck card" : "Compartilhar com um cartão Deck", + "Share {file} with a Deck card" : "Compartilhar {file} com um cartão Deck", "Share" : "Partilhar", "The card \"%s\" on \"%s\" has reached its due date." : "O cartão \"%s\" em \"%s\" atingiu a sua data limite.", + "Share board with a user, group or team …" : "Compartilhar painel com um usuário, grupo ou equipe…", + "Searching for users, groups and teams …" : "Pesquisando usuários, grupos e equipes …", + "No participants found" : "Nenhum participante encontrado", "Save" : "Guardar", + "seconds ago" : "segundos atrás", "Today" : "Hoje", - "Tomorrow" : "Amanhã" + "Tomorrow" : "Amanhã", + "No due" : "Sem vencimento" }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/l10n/pt_PT.json b/l10n/pt_PT.json index 88829db05e..196b624293 100644 --- a/l10n/pt_PT.json +++ b/l10n/pt_PT.json @@ -35,6 +35,10 @@ "{user} has archived card {card} in list {stack} on board {board}" : "{user} arquivou o cartão {card} na lista {stack} do painel {board}", "You have unarchived card {card} in list {stack} on board {board}" : "Você desarquivou o cartão {card} na lista {stack} do painel {board}", "{user} has unarchived card {card} in list {stack} on board {board}" : "{user} desarquivou o cartão {card} na lista {stack} do painel {board}", + "You have marked the card {card} as done in list {stack} on board {board}" : "Você marcou o cartão {card} como concluído na lista {stack} no painel {board}", + "{user} has marked card {card} as done in list {stack} on board {board}" : "{user} marcou o cartão {card} como concluído na lista {stack} no painel {board}", + "You have marked the card {card} as undone in list {stack} on board {board}" : "Você marcou o cartão {card} como não concluído na lista {stack} no painel {board}", + "{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} marcou o cartão {card} como não concluído na lista {stack} no painel {board}", "You have removed the due date of card {card}" : "Você eliminou a data limite do cartão {card}", "{user} has removed the due date of card {card}" : "{user} excluiu a data limite do cartão {card}", "You have set the due date of card {card} to {after}" : "Você definiu a data limite do cartão {card} para {after}", @@ -64,6 +68,7 @@ "Deck" : "Quadro", "Changes in the Deck app" : "Alterações na aplicação Quadro", "A comment was created on a card" : "Um comentário foi criado num cartão", + "A card description has been changed" : "Uma descrição do cartão foi alterada", "The file was uploaded" : "O ficheiro foi carregado", "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O ficheiro carregado excede a diretiva upload_max_filesize no php.ini ", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O ficheiro carregado excede a diretiva MAX_FILE_SIZE especificada no formulário HTML", @@ -73,28 +78,50 @@ "Could not write file to disk" : "Não foi possível escrever o ficheiro no disco.", "A PHP extension stopped the file upload" : "Uma extensão PHP parou o carregamento do ficheiro.", "No file uploaded or file size exceeds maximum of %s" : "Nenhum ficheiro carregado ou o tamanho do ficheiro excede o máximo de%s", + "Invalid file type. Only JSON files are allowed." : "Tipo de arquivo inválido. Somente arquivos JSON são permitidos.", + "Invalid JSON data" : "Dados JSON inválidos", + "Failed to import board" : "Falha ao importar painel", + "Cards due today" : "Cartões com vencimento hoje", + "Cards due tomorrow" : "Cartões com vencimento amanhã", "Upcoming cards" : "Próximos cartões", "Load more" : "Carregar mais", "The card \"%s\" on \"%s\" has been assigned to you by %s." : "O cartão \"%s\" em \"%s\" foi-lhe vinculado por %s.", "{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} atribuiu-lhe o cartão {deck-card} no {deck-board}.", + "The card \"%1$s\" on \"%2$s\" has reached its due date." : "O cartão \"%1$s\" em \"%2$s\" atingiu a sua data limite.", "The card {deck-card} on {deck-board} has reached its due date." : "O cartão {deck-card} em {deck-board} atingiu a sua data limite.", "%s has mentioned you in a comment on \"%s\"." : "%s mencionou-o num comentário em \"%s\".", "{user} has mentioned you in a comment on {deck-card}." : "{user} mencionou-o num comentário em {deck-card}.", "The board \"%s\" has been shared with you by %s." : "O quadro \"%s\" foi partilhado consigo por %s.", "{user} has shared {deck-board} with you." : "{user} partilhou {deck-board} consigo.", + "The remote board %1$s has been shared with you by %2$s" : "O painel remoto %1$s foi compartilhado com você por %2$s", + "Deck board" : "Painel de Deck", + "Owned by %1$s" : "Propriedade de %1$s", + "Deck boards, cards and comments" : "Paineis, cartões e comentários de Deck", + "From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, em %2$s/%3$s, propriedade de %4$s", + "Create a new deck card" : "Criar um novo cartão de Deck", "Card comments" : "Comentários nos cartões", "%s on %s" : "%s no %s", + "Deck boards and cards" : "Paineis e cartões de Deck", "No data was provided to create an attachment." : "Nenhum dado foi fornecido para criar um anexo.", "Finished" : "Terminado", "To review" : "A rever", "Action needed" : "Ação necessária", "Later" : "Mais tarde", "copy" : "copiar", + "Read more inside" : "Leia mais no interior", + "Custom lists - click to rename!" : "Listas personalizadas - clique para renomear!", "To Do" : "A fazer", + "In Progress" : "Em Andamento", "Done" : "Concluído", + "1. Open to learn more about boards and cards" : "1. Abra para saber mais sobre painéis e cartões", + "2. Drag cards left and right, up and down" : "2. Arraste os cartões para a esquerda e para a direita, para cima e para baixo", + "3. Apply rich formatting and link content" : "3. Aplique formatação avançada e conteúdo de links", + "4. Share, comment and collaborate!" : "4. Compartilhe, comente e colabore!", + "Create your first card!" : "Crie seu primeiro cartão!", "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentário tem mais de %s caracteres.\nAdicionado como um anexo ao cartão com o nome %s.\nAcessível no URL: %s.", "Attachments" : "Anexos", "File" : "Ficheiro", + "date" : "data", "Card not found" : "Cartão não encontrado", "Path is already shared with this card" : "O caminho já é partilhado com este cartão", "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser AAAA-MM-DD", @@ -102,71 +129,281 @@ "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" : "Quadro é uma ferramenta de organização ao estilo kanban voltada para o planeamento pessoal e organização de projetos para equipas integradas no Nextcloud.\n\n\n- 📥Adicione as suas tarefas aos cartões e coloque-as em ordem\n- 📄 Escreva notas adicionais em Markdown\n- 🔖 Atribua etiquetas para uma organização ainda melhor\n- 👥 Partilhe com a sua equipa, amigos ou família\n- 📎 Anexe ficheiros e incorpore-os à descrição em Markdown\n- 💬 Debata com a sua equipa usando comentários\n- ⚡ Acompanhe as mudanças no fluxo de atividades \n- 🚀 Organize o seu projeto", "Add board" : "Adicionar quadro", "Card details" : "Detalhes do cartão", + "Search by board title" : "Pesquisar pelo título do painel", + "Select board" : "Selecionar painel", + "Move/copy card" : "Mover/copiar cartão", + "Select a board" : "Selecionar um painel", + "No lists available" : "Nenhuma lista disponível", + "Select a list" : "Selecione uma lista", + "Move card" : "Mover cartão", + "Copy card" : "Copiar cartão", + "Select the card to link to a project" : "Selecione o cartão para vincular a um projeto", + "Link to card" : "Vincular ao cartão", "Cancel" : "Cancelar", + "This board is read only" : "Este painel é somente leitura", + "Drop your files to upload" : "Arraste seus arquivos para enviar", "File already exists" : "O ficheiro já existe", + "A file with the name {filename} already exists." : "Um arquivo com o nome {filename} já existe.", + "Overwrite file" : "Sobrescrever arquivo", + "Keep existing file" : "Manter o arquivo existente", "Add card" : "Adicionar um cartão", + "Archived cards" : "Cartões arquivados", + "Add list" : "Adicionar lista", + "List name" : "Nome da lista", "Active filters" : "Filtros ativos", + "Apply filter" : "Aplicar filtro", + "Filter by tag" : "Filtrar por etiqueta", + "Filter by assigned user" : "Filtrar por usuário atribuído", + "Unassigned" : "Não atribuído", + "Open and completed" : "Aberto e concluído", "Open" : "Abrir", "Completed" : "Concluída", + "Filter by due date" : "Filtrar por data de vencimento", + "Overdue" : "Vencidos", + "Next 24 hours" : "Próximas 24 horas", + "Next 7 days" : "Próximos 7 dias", + "Next 30 days" : "Próximos 30 dias", + "No due date" : "Sem data de vencimento", "Clear filter" : "Limpar filtro", + "Toggle View Modes" : "Alternar Modos de Visualização", + "Kanban view" : "Visualização Kanban", + "Gantt view" : "Visualização Gantt", "Hide archived cards" : "Esconder cartões arquivados", "Show archived cards" : "Mostrar cartões arquivados", + "Hide card cover images" : "Ocultar imagens de capa de cartão", + "Show card cover images" : "Mostrar imagens de capa de cartão", + "Open details" : "Abrir detalhes", "Details" : "Detalhes", + "Deck settings" : "Configurações do Deck", "General" : "Geral", + "Use bigger card view" : "Use uma exibição de cartão maior", "Appearance" : "Aspeto", + "Show card ID badge" : "Exibir o distintivo de identificação do cartão", + "Show boards in calendar/tasks" : "Exibir os painéis em calendários/tarefas", + "Limit board creation to some groups" : "Limitar a criação de painéis a alguns grupos", + "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Os usuários fora desses grupos não poderão criar seus próprios painéis, mas ainda poderão trabalhar nos painéis que foram compartilhados com eles.", + "Board actions" : "Ações de painel", + "Scroll sideways" : "Rolar para o lado", + "Navigate between cards" : "Navegar entre os cartões", + "Close card details" : "Fechar detalhes do cartão", "Search" : "Pesquisa sobre", + "Show card filters" : "Mostrar filtros de cartão", + "Clear card filters" : "Limpar filtros de cartão", "Show those shortcuts" : "Mostrar esses atalhos", + "Card actions" : "Ações de cartão", + "Open card details" : "Abrir detalhes do cartão", + "Edit the card title" : "Editar o título do cartão", + "Archive/unarchive the current card" : "Arquivar/desarquivar o cartão atual", + "Mark card as completed/not completed" : "Marcar cartão como concluído/não concluído", + "Open card menu" : "Abrir menu do cartão", + "Currently present people" : "Pessoas atualmente presentes", + "Board not found" : "Painel não encontrado", + "Create a new list to add cards to this board" : "Criar uma nova lista para adicionar cartões a este painel", "Sharing" : "Partilha", "Tags" : "Etiquetas", + "Deleted items" : "Itens excluídos", "Activity" : "Atividade", + "Deleted lists" : "Listas excluídas", "Undo" : "Desfazer", + "Deleted cards" : "Cartões excluídos", + "Hours" : "Horas", + "Days" : "Dias", + "Weeks" : "Semanas", + "Months" : "Meses", + "No cards yet" : "Ainda sem cartões", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Defina uma data de início e um prazo nos seus cartões para visualizá-los no gráfico de Gantt", + "Cards without dates ({count})" : "Cartões sem datas ({count})", + "Failed to create share with {displayName}" : "Falha ao criar compartilhamento com {displayName}", + "Are you sure you want to transfer the board {title} to {user}?" : "Deseja realmente transferir o painel {title} para {user}?", "Transfer" : "Transfere", + "The board has been transferred to {user}" : "A painel foi transferida para {user}", + "Failed to transfer the board to {user}" : "Não foi possível transferir o painel para {user}", + "Board owner" : "Proprietário do painel", "(Group)" : "(Grupo)", "(remote)" : "(remoto)", "Can edit" : "Can edit", "Can share" : "Can share", + "Can manage" : "Pode gerenciar", "Owner" : "Proprietário", "Delete" : "Apagar", + "List deleted" : "Lista excluída", + "Edit list title" : "Editar título da lista", + "Unarchive all cards" : "Desarquivar todos os cartões", + "Do not set cards as \"done\"" : "Não definir cartões como \"concluído\"", + "Set cards as \"done\"" : "Definir cartões como \"concluído\"", + "Delete list" : "Excluir lista", + "Archive all cards in this list" : "Arquivar todos os cartões desta lista", + "Unarchive all cards in this list" : "Desarquivar todos os cartões desta lista", + "Card name" : "Nome do cartão", + "title and color value must be provided" : "o título e o valor da cor devem ser fornecidos", "Edit" : "Editar", + "Add a new tag" : "Adicionar uma nova etiqueta", + "Board name" : "Nome do quadro", "Members" : "Membros", + "Assign to users/groups/team" : "Atribuir a usuários/grupos/equipe", + "Assign a user to this card…" : "Atribuir um usuário a este cartão...", + "Select a user to assign to this card…" : "Selecione um usuário para atribuir a este cartão…", "File to share" : "Ficheiro a partilhar", "Invalid path selected" : "Caminho inválido selecionado", "Upload new files" : "Enviar novos ficheiros", + "Share from Files" : "Compartilhar de Arquivos", + "Add this attachment" : "Adicionar este anexo", + "Show in Files" : "Mostrar em Arquivos", "Download" : "Transferir", + "Remove attachment" : "Remover anexo", + "Delete Attachment" : "Excluir Anexo", + "Restore Attachment" : "Restaurar Anexo", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Modificado: ⸱{modifiedDate} ⸱ Criado: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Modificado: {modifiedDate}\nCriado: {createdDate}\nCriado por: {owner}", + "The title cannot be empty." : "O título não pode ficar em branco.", + "Cannot close unsaved card!" : "Não é possível fechar um cartão não salvo!", + "Open in sidebar view" : "Abrir em visualização da barra lateral", + "Open in bigger view" : "Abrir em visualização ampliada", "Comments" : "Comentários", + "No comments yet. Begin the discussion!" : "Nenhum comentário ainda. Inicie a conversa!", + "The comment cannot be empty." : "O comentário não pode zer vazio.", + "The comment cannot be longer than 1000 characters." : "O comentário não pode ter mais que 1000 caracteres.", + "Submit" : "Submeter", "Created:" : "Criado:", + "In reply to" : "Em resposta a", + "Cancel reply" : "Cancelar resposta", "Reply" : "Resposta", "Update" : "Atualizar", + "Assign dependent cards" : "Atribuir cartões dependentes", + "Mark as done" : "Marcar como concluído", + "Mark as not done" : "Marcar como não concluído", + "Remove dependency" : "Remover dependência", + "Add dependent card" : "Adicionar cartão dependente", + "Write a description …" : "Escreva uma descrição...", + "The description has been changed by another user." : "A descrição foi alterada por outro usuário.", + "Could not save description" : "Não foi possível salvar a descrição", "Description" : "Descrição", + "(Unsaved)" : "(Não salvo)", + "(Saving…)" : "(Salvando...)", + "Formatting help" : "Ajuda para formatação", + "Edit description" : "Editar descrição", + "View description" : "Exibir descrição", + "Add Attachment" : "Adicionar anexo", + "Choose attachment" : "Escolher anexo", "Select Date" : "Escolha a data", + "Later today – {timeLocale}" : "Hoje mais tarde – {timeLocale}", + "Set due date for later today" : "Definir a data de vencimento para hoje mais tarde", + "Tomorrow – {timeLocale}" : "Amanhã – {timeLocale}", + "Set due date for tomorrow" : "Defina a data de vencimento para amanhã", + "This weekend – {timeLocale}" : "Este fim de semana – {timeLocale}", + "Set due date for this weekend" : "Defina a data de vencimento para este fim de semana", + "Next week – {timeLocale}" : "Próxima semana – {timeLocale}", + "Set due date for next week" : "Defina a data de vencimento para a próxima semana", + "Assign a due date to this card…" : "Atribuir uma data de vencimento a este cartão…", + "Set a due date" : "Definir uma data de vencimento", + "Choose a date" : "Escolha uma data", + "Remove due date" : "Remover data de vencimento", + "Due at:" : "Vencimento em:", + "Not done" : "Não concluído", + "Unarchive card" : "Desarquivar cartão", "Archive card" : "Arquivar cartão", + "Assign a start date to this card…" : "Defina uma data de início para este cartão…", + "Add start date" : "Adicionar data de início", + "Remove start date" : "Remover data de início", + "Select or create a tag…" : "Selecionar ou criar uma etiqueta…", + "Create a new tag:" : "Criar uma nova etiqueta:", "(group)" : "(grupo)", + "{count} comments, {unread} unread" : "{count} comentários, {unread} não lidos", + "Todo items" : "Itens a fazer", + "Edit card title" : "Editar título do cartão", + "Open link" : "Abrir link", + "Card deleted" : "Cartão excluído", + "Change card color" : "Alterar cor do cartão", + "Edit title" : "Editar título", + "Unassign myself" : "Desatribuir-me", "Delete card" : "Eliminar cartão", - "seconds ago" : "segundos atrás", + "All boards" : "Todos os painéis", "Archived boards" : "Quadros arquivados", "Shared with you" : "Shared with you", "Cancel edit" : "Cancelar edição", + "Save board" : "Salvar painel", + "Board {0} deleted" : "Painel {0} excluído", + "All cards" : "Todos os cartões", "No reminder" : "Nenhum lembrete", "An error occurred" : "Ocorreu um erro", + "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Deseja realmente excluir o painel {title}? Isso excluirá todos os dados deste painel, inclusive os cartões arquivados.", + "Delete the board?" : "Excluir o painel?", + "Are you sure you want to leave the board {title}?" : "Tem certeza de que deseja sair do painel {title}?", + "Leave the board?" : "Sair do painel?", + "Leave" : "Sair", + "Failed to leave the board" : "Falha ao sair do painel", + "Exporting board..." : "Exportando painel...", "Board details" : "Detalhes do quadro", "Edit board" : "Editar quadro", + "Clone board" : "Clonar painel", + "Unarchive board" : "Desarquivar painel", "Archive board" : "Arquivar quadro", + "Export board" : "Exportar painel", + "Turn off due date reminders" : "Desativar lembretes de vencimento", + "Remove as default board" : "Remover como painel padrão", + "Set as default board" : "Definir como painel padrão", + "Due date reminders" : "Lembretes de vencimento", + "Assigned cards" : "Cartões atribuídos", "No notifications" : "Sem notificações", "Delete board" : "Eliminar quadro", + "Leave board" : "Sair do painel", + "Importing board..." : "Importando painel...", + "Board imported successfully" : "Painel importado com sucesso", + "Clone {boardTitle}" : "Clonar {boardTitle}", + "Clone cards" : "Clonar cartões", + "Clone assignments" : "Clonar atribuições", + "Clone labels" : "Clonar rótulos", + "Clone due dates" : "Clonar datas de vencimento", "Advanced options" : "Opções avançadas", + "Move all cards to the first list" : "Mover todos os cartões para a primeira lista", + "Clone" : "Clonar", + "Export {boardTitle}" : "Exportar {boardTitle}", + "Export as CSV" : "Exportar como CSV", + "Note: Only the JSON format is supported for importing back into the Deck app." : "Observação: somente o formato JSON é compatível com a importação de volta para o aplicativo Deck.", "Export" : "Exportar", + "Loading filtered view" : "Carregando exibição filtrada", + "Search for {searchQuery} in other boards" : "Pesquisar {searchQuery} em outros painéis.", + "Search for {searchQuery} in all boards" : "Pesquisar por {searchQuery} em todos os painéis", "No results found" : "No results found", + "Deck board {name}\n* Last modified on {lastMod}" : "Painel de Deck {name}\n* Última modificação em {lastMod}", + "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Criado em {created}\n* Última modificação em {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentários", "Due on {date}" : "Due on {date}", + "{stack} in {board}" : "{stack} em {board}", + "Click to expand description" : "Clique para expandir a descrição", + "Click to expand comment" : "Clique para expandir o comentário", "Create card" : "Criar cartão", + "Create a new card" : "Criar um novo cartão", + "Card title" : "Título do cartão", + "Creating the new card …" : "Criando o novo cartão …", + "Open card" : "Abrir o cartão", "Close" : "Fechar", + "No upcoming cards" : "Não há próximos cartões", + "upcoming cards today" : "próximos cartões hoje", + "upcoming cards tomorrow" : "próximos cartões amanhã", + "New card" : "Novo cartão", + "Link to a board" : "Vincular a um painel", + "Link to a card" : "Vincular a um cartão", + "Create a card" : "Criar um cartão", + "Message from {author} in {conversationName}" : "Mensagem de {author} em {conversationName}", + "Something went wrong" : "Algo deu errado", "Failed to upload {name}" : "Failed to upload {name}", + "Maximum file size of {size} exceeded" : "Excedeu o tamanho máximo de arquivo de {size}", + "Assigned users" : "Usuários atribuídos", "Due date" : "Data limite", "Created" : "Criado", "Modified" : "Modificado", + "Error creating the share" : "Erro ao criar o compartilhamento", + "Share with a Deck card" : "Compartilhar com um cartão Deck", + "Share {file} with a Deck card" : "Compartilhar {file} com um cartão Deck", "Share" : "Partilhar", "The card \"%s\" on \"%s\" has reached its due date." : "O cartão \"%s\" em \"%s\" atingiu a sua data limite.", + "Share board with a user, group or team …" : "Compartilhar painel com um usuário, grupo ou equipe…", + "Searching for users, groups and teams …" : "Pesquisando usuários, grupos e equipes …", + "No participants found" : "Nenhum participante encontrado", "Save" : "Guardar", + "seconds ago" : "segundos atrás", "Today" : "Hoje", - "Tomorrow" : "Amanhã" + "Tomorrow" : "Amanhã", + "No due" : "Sem vencimento" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" } \ No newline at end of file diff --git a/l10n/ro.js b/l10n/ro.js index d4d603c970..976f2436f8 100644 --- a/l10n/ro.js +++ b/l10n/ro.js @@ -183,6 +183,7 @@ OC.L10N.register( "Deleted lists" : "Liste șterse", "Undo" : "Anulează ultima acțiune", "Deleted cards" : "Carduri șterse", + "No cards yet" : "Nu există carduri încă ", "Failed to create share with {displayName}" : "Nu s-a creat partajarea cu {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Sigur transferați panoul {title} la {user}?", "Transfer the board." : "Transferă panoul.", @@ -231,11 +232,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Niciun comentariu încă. Începeți discuția!", "The comment cannot be empty." : "Comentariul nu poate fi gol", "The comment cannot be longer than 1000 characters." : "Comentariul nu poate avea mai mult de 1000 de caractere.", + "Submit" : "Trimite", "Created:" : "Creat:", "In reply to" : "Ca răspuns la", "Cancel reply" : "Anulează răspunsul", "Reply" : "Răspunde", "Update" : "Actualizare", + "Mark as done" : "Marchează ca realizat", + "Mark as not done" : "Marchează ca realizat", "Write a description …" : "Scrieți o descriere ...", "Description" : "Descriere", "(Unsaved)" : "(Nesalvat)", @@ -259,7 +263,6 @@ OC.L10N.register( "Add due date" : "Adăugați o scadență", "Choose a date" : "Alegeți o dată", "Remove due date" : "Șterge scadența", - "Mark as done" : "Marchează ca realizat", "Due at:" : "Scadență la:", "Unarchive card" : "Dezarhivează cardul", "Archive card" : "Arhivează card", @@ -273,9 +276,7 @@ OC.L10N.register( "Edit title" : "Editează titlul", "Assign to me" : "Atribuie-mi mie", "Unassign myself" : "Dezasociază-mi-l", - "Mark as not done" : "Marchează ca realizat", "Delete card" : "Șterge card", - "seconds ago" : "secunde în urmă", "All boards" : "Toate panourile", "Archived boards" : "Panouri arhivate", "Shared with you" : "Partajat cu tine", @@ -343,6 +344,7 @@ OC.L10N.register( "The card \"%s\" on \"%s\" has reached its due date." : "Cardul \"%s\" din \"%s\" a ajuns la scadență.", "No participants found" : "Nu s-au găsit participanți", "Save" : "Salvează", + "seconds ago" : "secunde în urmă", "Today" : "Azi", "Tomorrow" : "Mâine", "No due" : "Fără scadență" diff --git a/l10n/ro.json b/l10n/ro.json index 41f8fbbcf8..3c0c224fa2 100644 --- a/l10n/ro.json +++ b/l10n/ro.json @@ -181,6 +181,7 @@ "Deleted lists" : "Liste șterse", "Undo" : "Anulează ultima acțiune", "Deleted cards" : "Carduri șterse", + "No cards yet" : "Nu există carduri încă ", "Failed to create share with {displayName}" : "Nu s-a creat partajarea cu {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Sigur transferați panoul {title} la {user}?", "Transfer the board." : "Transferă panoul.", @@ -229,11 +230,14 @@ "No comments yet. Begin the discussion!" : "Niciun comentariu încă. Începeți discuția!", "The comment cannot be empty." : "Comentariul nu poate fi gol", "The comment cannot be longer than 1000 characters." : "Comentariul nu poate avea mai mult de 1000 de caractere.", + "Submit" : "Trimite", "Created:" : "Creat:", "In reply to" : "Ca răspuns la", "Cancel reply" : "Anulează răspunsul", "Reply" : "Răspunde", "Update" : "Actualizare", + "Mark as done" : "Marchează ca realizat", + "Mark as not done" : "Marchează ca realizat", "Write a description …" : "Scrieți o descriere ...", "Description" : "Descriere", "(Unsaved)" : "(Nesalvat)", @@ -257,7 +261,6 @@ "Add due date" : "Adăugați o scadență", "Choose a date" : "Alegeți o dată", "Remove due date" : "Șterge scadența", - "Mark as done" : "Marchează ca realizat", "Due at:" : "Scadență la:", "Unarchive card" : "Dezarhivează cardul", "Archive card" : "Arhivează card", @@ -271,9 +274,7 @@ "Edit title" : "Editează titlul", "Assign to me" : "Atribuie-mi mie", "Unassign myself" : "Dezasociază-mi-l", - "Mark as not done" : "Marchează ca realizat", "Delete card" : "Șterge card", - "seconds ago" : "secunde în urmă", "All boards" : "Toate panourile", "Archived boards" : "Panouri arhivate", "Shared with you" : "Partajat cu tine", @@ -341,6 +342,7 @@ "The card \"%s\" on \"%s\" has reached its due date." : "Cardul \"%s\" din \"%s\" a ajuns la scadență.", "No participants found" : "Nu s-au găsit participanți", "Save" : "Salvează", + "seconds ago" : "secunde în urmă", "Today" : "Azi", "Tomorrow" : "Mâine", "No due" : "Fără scadență" diff --git a/l10n/ru.js b/l10n/ru.js index 8a5a8849be..7e657c00a2 100644 --- a/l10n/ru.js +++ b/l10n/ru.js @@ -17,46 +17,46 @@ OC.L10N.register( "{user} has archived the board {before}" : "{user} переместил(а) доску «{board}» в архив", "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 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 marked the card {card} as done in list {stack} on board {board}" : "Вы отметили как завершённую карточку «{card}» в списке «{stack}» на доске «{board}»", - "{user} has marked card {card} as done in list {stack} on board {board}" : "{user} отметил(а) как завершённую карточку «{card}» в списке «{stack}» на доске «{board}»", - "You have marked the card {card} as undone in list {stack} on board {board}" : "Вы отметили как незавершённую карточку «{card}» в списке «{stack}» на доске «{board}»", - "{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} отметил(а) как незавершённую карточку «{card}» в списке «{stack}» на доске «{board}»", - "You have removed the due date of card {card}" : "Вы удалили срок исполнения по карточке «{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 marked the card {card} as done in list {stack} on board {board}" : "Вы отметили как завершённую карточку «{card}» в колонке «{stack}» на доске «{board}»", + "{user} has marked card {card} as done in list {stack} on board {board}" : "{user} отметил(а) как завершённую карточку «{card}» в колонке «{stack}» на доске «{board}»", + "You have marked the card {card} as undone in list {stack} on board {board}" : "Вы отметили как незавершённую карточку «{card}» в колонке «{stack}» на доске «{board}»", + "{user} has marked the card {card} as undone 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}» до {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 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}»", @@ -69,7 +69,7 @@ OC.L10N.register( "{user} has commented on card {card}" : "{user} добавил(а) комментарий к карточке «{card}»", "Deck" : "Карточки", "Changes in the Deck app" : "Изменения в приложении Карточки", - "A board, list or card was changed" : "Доска, список или карточка были изменены", + "A board, list or card was changed" : "Доска, колонка или карточка были изменены", "A comment was created on a card" : "Добавлен комментарий к карточке", "A card description has been changed" : "Описание карточки изменено", "The file was uploaded" : "Файл загружен", @@ -81,23 +81,29 @@ OC.L10N.register( "Could not write file to disk" : "Невозможно записать файл на диск", "A PHP extension stopped the file upload" : "Загрузка файла была прервана модулем расширений PHP", "No file uploaded or file size exceeds maximum of %s" : "Файл не получен или его размер превышает %s", + "Invalid file type. Only JSON files are allowed." : "Неверный тип файла. Разрешены только файлы JSON.", + "Invalid JSON data" : "Неверные данные JSON", + "Failed to import board" : "Не удалось импортировать доску", "Cards due today" : "Завершающиеся сегодня", "Cards due tomorrow" : "Завершающиеся завтра", "Upcoming cards" : "Ожидающие выполнения", "Load more" : "Загрузить больше", - "The card \"%s\" on \"%s\" has been assigned to you by %s." : "Вам назначена карточка «%s» с рабочей доски «%s» пользователем %s.", + "Welcome to Nextcloud Deck!" : "Добро пожаловать в Nextcloud Deck!", + "The card \"%s\" on \"%s\" has been assigned to you by %s." : "Вам назначена карточка «%s» с доски «%s» пользователем %s.", "{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} назначил Вам карточку {deck-card} из {deck-board}.", - "The card {deck-card} on {deck-board} has reached its due date." : "Сегодня дата исполнения по карточке {deck-card} в {deck-board}.", + "The card \"%1$s\" on \"%2$s\" has reached its due date." : "Дедлайн карточки \"%1$s\" на \"%2$s\" истёк.", + "The card {deck-card} on {deck-board} has reached its due date." : "Сегодня дедлайн карточки {deck-card} в {deck-board}.", "%s has mentioned you in a comment on \"%s\"." : "Вы были упомянуты пользователем %s в комментарии «%s».", "{user} has mentioned you in a comment on {deck-card}." : "Вы были упомянуты пользователем {user} в комментарии {deck-card}.", "The board \"%s\" has been shared with you by %s." : "Вам предоставлен доступ к рабочей доске «%s» пользователем %s.", "{user} has shared {deck-board} with you." : "{user} предоставил(а) вам доступ к {deck-board}.", + "The remote board %1$s has been shared with you by %2$s" : " Вам предоставлен доступ к удалённой доске %1$s пользователем %2$s", "Deck board" : "Доска", "Owned by %1$s" : "Владелец: %1$s", "Deck boards, cards and comments" : "Доски, карточки и комментарии", "From %1$s, in %2$s/%3$s, owned by %4$s" : "Из %1$s, в %2$s/%3$s, принадлежит %4$s", "Create a new deck card" : "Создать новую карточку на доске", - "Card comments" : "Комментарии карточки", + "Card comments" : "Комментарии к карточке", "%s on %s" : "%s на %s", "Deck boards and cards" : "Доски и карточки", "No data was provided to create an attachment." : "Отсутствуют данные для создания вложения.", @@ -106,27 +112,37 @@ OC.L10N.register( "Action needed" : "Требуется действие", "Later" : "Позже", "copy" : "Копировать", - "Custom lists - click to rename!" : "Пользовательские списки — нажмите, чтобы переименовать!", + "Read more inside" : "Подробнее читайте внутри", + "Custom lists - click to rename!" : "Пользовательские колонки — нажмите, чтобы переименовать!", "To Do" : "Задачи", "In Progress" : "Выполянется", "Done" : "Выполненные", + "1. Open to learn more about boards and cards" : "1. Откройте, чтобы узнать больше о досках и карточках.", + "2. Drag cards left and right, up and down" : "2. Перетаскивайте карточки влево и вправо, вверх и вниз.", + "3. Apply rich formatting and link content" : "3. Примените расширенное форматирование и свяжите контент", + "4. Share, comment and collaborate!" : "4. Делитесь, комментируйте и сотрудничайте!", + "Create your first card!" : "Создайте свою первую карточку!", "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Этот комментарий содержит более %s символов.\nКомментарий добавлен к карточке «%s» в виде вложения.\nПостоянный адрес этого комментария: %s.", "Attachments" : "Вложения", "File" : "Файл", + "date" : "дата", "Card not found" : "Карточка не найдена", "Path is already shared with this card" : "Этот путь уже опубликован в карточке", "Invalid date, date format must be YYYY-MM-DD" : "Некорректный формат даты, дата должна быть в формате YYYY-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Все доски, принадлежащие вам, включая колонки, карточки, метки, задания и комментарии.", "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" : "Карточки — приложение для Nextcloud, предоставляющее возможности личного планирования и управления проектами для рабочих групп в стиле канбан.\n\n\n- 📥 Создавайте карточки задач и упорядочите их;\n- 📄 Добавляйте описания задач с возможностью использовать формат разметки «markdown»;\n- 🔖 Присваивайте ярлыки для ещё лучшей организации;\n- 👥 Делитесь со своей командой, друзьями или семьей;\n- 📎 Вкладывайте файлы в виде ссылок в описании, используя формат разметки «Markdown»;\n- 💬 Обсуждайте в комментариях;\n- ⚡ Отслеживайте изменения в ленте событий;\n- 🚀 Сделайте свой проект более организованным.", + "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" : "Карточки — приложение для Nextcloud, предоставляющее возможности личного планирования и управления проектами для рабочих групп в стиле канбан.\n\n\n- 📥 Создавайте карточки задач и упорядочивайте их;\n- 📄 Добавляйте описания задач с возможностью использовать формат разметки «markdown»;\n- 🔖 Присваивайте ярлыки для ещё лучшей организации;\n- 👥 Делитесь со своей командой, друзьями или семьей;\n- 📎 Вкладывайте файлы в виде ссылок в описании, используя формат разметки «Markdown»;\n- 💬 Обсуждайте в комментариях;\n- ⚡ Отслеживайте изменения в ленте событий;\n- 🚀 Сделайте свой проект более организованным.", "Add board" : "Добавить доску", "Card details" : "Свойства карточки", - "Select the board to link to a project" : "Выберите рабочую доску, чтобы связать с проектом", + "Select the board to link to a project" : "Выберите доску, чтобы связать с проектом", "Search by board title" : "Поиск по заголовкам досок", - "Select board" : "Выбор рабочей доски", + "Select board" : "Выбор доски", + "Move/copy card" : "Переместить/копировать карточку", "Select a board" : "Выберите доску", - "No lists available" : "Нет ни одного списка", - "Select a list" : "Выберите список", + "No lists available" : "Нет ни одной колонки", + "Select a list" : "Выберите колонку", "Move card" : "Переместить карточку", + "Copy card" : "Копировать карточку", "Select the card to link to a project" : "Выберите карточку для связывания с проектом", "Link to card" : "Ссылка на карточку", "Select a card" : "Выберите карточку", @@ -140,8 +156,8 @@ OC.L10N.register( "Keep existing file" : "Сохранить имеющийся", "Add card" : "Создать карточку", "Archived cards" : "Карточки в архиве", - "Add list" : "Добавить список", - "List name" : "Название списка", + "Add list" : "Добавить колонку", + "List name" : "Название колонки", "Active filters" : "Активные фильтры", "Apply filter" : "Применить фильтр", "Filter by tag" : "Отбор по меткам:", @@ -156,15 +172,17 @@ OC.L10N.register( "Next 24 hours" : "Ближайшие 24 часа", "Next 7 days" : "Ближайшие 7 дней", "Next 30 days" : "Ближайшие 30 дней", - "No due date" : "Без назначенной даты", + "No due date" : "Без дедлайна", "Clear filter" : "Сбросить фильтр", "View Modes" : "Режимы просмотра", "Toggle View Modes" : "Выбор режима просмотра", - "Hide archived cards" : "Скрывать архивные карточки", + "Kanban view" : "Kanban вид", + "Gantt view" : "Gantt вид", + "Hide archived cards" : "Скрыть архивные карточки", "Show archived cards" : "Показывать архивные карточки", "Toggle compact mode" : "Выбор компактного или обычного режима просмотра", "Hide card cover images" : "Скрыть обложки карточек", - "Show card cover images" : "Показывать обложки карточек", + "Show card cover images" : "Показать обложки карточек", "Open details" : "Открыть подробности", "Details" : "Свойства", "Deck settings" : "Параметры карточек", @@ -176,32 +194,40 @@ OC.L10N.register( "Admin settings" : "Настройки администратора", "Limit board creation to some groups" : "Разрешить создавать доски только участниками определённых групп", "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Создание собственных рабочих досок пользователям, не входящим в заданные группы, будет заблокировано. Тем не менее такие пользователи смогут продолжить работать с общими досками, к которым у них есть доступ. ", + "Enable federation" : "Включить федерацию", "Board actions" : "Управление доской", "Scroll sideways" : "Боковая прокрутка", "Navigate between cards" : "Перемещение между карточками", "Close card details" : "Закрыть свойства карточки", "Search" : "Поиск", - "Show card filters" : "Открыть фильтр отбора", - "Clear card filters" : "Очистить фильтр отбора", + "Show card filters" : "Открыть фильтр карточек", + "Clear card filters" : "Очистить фильтр карточек", "Show those shortcuts" : "Показать ярлыки", "Card actions" : "Управление карточками", "Open card details" : "Открыть свойства карточки", "Edit the card title" : "Изменить заголовок карточки", "Assign yourself to the current card" : "Назначить открытую карточку себе", "Archive/unarchive the current card" : "Переместить карточку в архив или вернуть из архива", - "Mark card as completed/not completed" : "Изменить отметку завершения карточки", + "Mark card as completed/not completed" : "Изменить отметку выполнении карточки", "Open card menu" : "Открыть меню управления карточкой", "Currently present people" : "Присутствующие в настоящее время люди", "Loading board" : "Загрузка доски", "Board not found" : "Доска не найдена", - "Create a new list to add cards to this board" : "Создайте список чтобы добавить карточки на эту доску", + "Create a new list to add cards to this board" : "Создайте колонку чтобы добавить карточки на эту доску", "Sharing" : "Общий доступ", "Tags" : "Метки", "Deleted items" : "Корзина", "Activity" : "Активность", - "Deleted lists" : "Удалённые списки", + "Deleted lists" : "Удалённые колонки", "Undo" : "Отменить", "Deleted cards" : "Карточки в корзине", + "Hours" : "Часы", + "Days" : "Дней", + "Weeks" : "Недель", + "Months" : "Месяц(ев)", + "No cards yet" : "Ещё нет ни одной карточки", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Установите дату начала и дедлайн на своих карточках, чтобы увидеть их на диаграмме Ганта", + "Cards without dates ({count})" : "Карточки без дат ({count})", "Failed to create share with {displayName}" : "Не удалось предоставить общий доступ для {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Вы уверены, что хотите передать доску {title} пользователю {user}?", "Transfer the board." : "Перенесите доску.", @@ -217,13 +243,15 @@ OC.L10N.register( "Can manage" : "Разрешить изменять", "Owner" : "Владелец", "Delete" : "Удалить", - "List deleted" : "Список удалён", - "Edit list title" : "Изменить название списка", + "List deleted" : "Колонка удалена", + "Edit list title" : "Изменить название колонки", "Archive all cards" : "Переместить все карточки в архив", "Unarchive all cards" : "Восстановить все карточки из архива", - "Delete list" : "Удалить список", - "Archive all cards in this list" : "Переместить в архив все карточки текущего списка", - "Unarchive all cards in this list" : "Восстановить из архива все карточки списка", + "Do not set cards as \"done\"" : "Не устанавливать статус карточек как «выполнено»", + "Set cards as \"done\"" : "Установить статус карточек как «выполнено»", + "Delete list" : "Удалить колонку", + "Archive all cards in this list" : "Переместить в архив все карточки колонки", + "Unarchive all cards in this list" : "Восстановить из архива все карточки колонки", "Add a new card" : "Создать карточку", "Card name" : "Название карточки", "title and color value must be provided" : "необходимо указать цвет и название", @@ -236,7 +264,7 @@ OC.L10N.register( "Select a user to assign to this card…" : "Выберите пользователя, которому будет назначена карточка…", "File to share" : "Файл для публикации", "Invalid path selected" : "Выбран некорректный путь", - "Upload new files" : "Передать на сервер новые файлы", + "Upload new files" : "Загрузить новые файлы", "Share from Files" : "Опубликовать из приложения «Файлы»", "Pending share" : "Ожидающие публикации", "Add this attachment" : "Добавить это вложение", @@ -245,7 +273,11 @@ OC.L10N.register( "Remove attachment" : "Убрать вложение", "Delete Attachment" : "Удалить вложение", "Restore Attachment" : "Восстановить вложение", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Изменено: {modifiedDate} ⸱ Дата создания: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Изменено: {modifiedDate}\nДата создания: {createdDate}\nСоздано пользователем: {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Изменено: {modifiedDate}\nДата создания: {createdDate}", "The title cannot be empty." : "Название не может быть пустым", + "Cannot close unsaved card!" : "Невозможно закрыть несохранённую карточку!", "Open in sidebar view" : "Открыть в боковой панели", "Open in bigger view" : "Открыть режиме подробного просмотра", "Comments" : "Комментарии", @@ -253,12 +285,22 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Комментарии отсутствуют, начните обсуждение!", "The comment cannot be empty." : "Комментарий не может быть пустым.", "The comment cannot be longer than 1000 characters." : "Комментарий не может быть длиннее 1 000 символов.", + "Submit" : "Отправить ответ", "Created:" : "Создание:", "In reply to" : "В ответ", "Cancel reply" : "Отменить ответ", "Reply" : "Ответить", "Update" : "Обновить", + "Assign dependent cards" : "Назначить дочерние карточки (подзадачи)", + "Mark as done" : "Отметить как выполненную", + "Mark as not done" : "Отметить как невыполненную", + "Remove dependency" : "Удалить зависимость", + "Add dependent card" : "Добавить дочернюю карточку (подзадачу)", + "Assign a dependent card…" : "Назначить дочернюю карточку (подзадачу)...", + "Select a dependent card…" : "Выбрать дочернюю карточку (подзадачу)…", "Write a description …" : "Добавьте описание...", + "The description has been changed by another user." : "Описание изменено другим пользователем.", + "Could not save description" : "Не удалось сохранить описание", "Description" : "Описание", "(Unsaved)" : "(Не сохранен)", "(Saving…)" : "(Сохранение...)", @@ -269,23 +311,26 @@ OC.L10N.register( "Choose attachment" : "Выберите вложение", "Select Date" : "Выберите дату", "Later today – {timeLocale}" : "Позднее сегодня – {timeLocale}", - "Set due date for later today" : "Задать дату завершения на сегодня позднее", + "Set due date for later today" : "Задать дедлайн на сегодня позднее", "Tomorrow – {timeLocale}" : "Завтра – {timeLocale}", - "Set due date for tomorrow" : "Задать дату завершения на завтра", + "Set due date for tomorrow" : "Задать дедлайн на завтра", "This weekend – {timeLocale}" : "Эти выходные – {timeLocale}", - "Set due date for this weekend" : "Задать дату завершения на ближайшие выходные", + "Set due date for this weekend" : "Задать дедлайн на ближайшие выходные", "Next week – {timeLocale}" : "Следующая неделя – {timeLocale}", - "Set due date for next week" : "Задать дату завершения на следующую неделю", - "Assign a due date to this card…" : "Назначить срок истечения карточки...", - "Set a due date" : "Задать дату исполнения", - "Add due date" : "Назначить дату завершения", + "Set due date for next week" : "Задать дедлайн на следующую неделю", + "Assign a due date to this card…" : "Назначить дедлайн карточки...", + "Set a due date" : "Установить дедлайн", + "Add due date" : "Добавить дедлайн", "Choose a date" : "Выбрать дату…", - "Remove due date" : "Удалить срок исполнения", - "Mark as done" : "Отметить как выполненную", - "Due at:" : "Дата завершения:", + "Remove due date" : "Удалить дедлайн", + "Due at:" : "Дедлайн:", "Not done" : "Незавершённые", "Unarchive card" : "Восстановить из архива", "Archive card" : "Переместить в архив", + "Assign a start date to this card…" : "Назначьте этой карточке дату начала…", + "Set a start date" : "Установите дату начала", + "Add start date" : "Добавить дату начала", + "Remove start date" : "Удалить дату начала", "Assign a tag to this card…" : "Назначить метку этой карточке…", "Select or create a tag…" : "Выбрать или создать метку…", "Create a new tag:" : "Создать метку:", @@ -295,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Изменить заголовок карточки", "Open link" : "Открыть ссылку", "Card deleted" : "Карточка удалена", + "Change card color" : "Изменить цвет карточки", "Edit title" : "Редактировать заголовок", "Assign to me" : "Назначить себе", "Unassign myself" : "Отказаться от назначения", - "Mark as not done" : "Отметить как невыполненную", "Delete card" : "Удалить", - "seconds ago" : "несколько секунд назад", "All boards" : "Все доски", "Archived boards" : "Архив досок", "Shared with you" : "Предоставленные вам", @@ -313,33 +357,53 @@ OC.L10N.register( "An error occurred" : "Произошла ошибка", "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Подтвердите удаление доски «{title}»; это действие приведёт к удалению также все данных, принадлежащих этой доске, включая карточки в архиве.", "Delete the board?" : "Удалить доску?", + "Are you sure you want to leave the board {title}?" : "Вы уверены, что хотите покинуть доску {title}?", + "Leave the board?" : "Покинуть доску?", "Leave" : "Выйти", + "Failed to leave the board" : "Не удалось покинуть доску", + "Exporting board..." : "Экспорт доски...", "Board details" : "Свойства доски", "Edit board" : "Редактировать", "Clone board" : "Скопировать доску", "Unarchive board" : "Восстановить доску из архива", "Archive board" : "Переместить доску в архив", "Export board" : "Экспортировать доску", - "Turn on due date reminders" : "Включить напоминания о сроке выполнения", - "Turn off due date reminders" : "Отключить напоминания о сроке выполнения", - "Due date reminders" : "Напоминания о сроке выполнения", + "Turn on due date reminders" : "Включить напоминания о дедлайне", + "Turn off due date reminders" : "Отключить напоминания о дедлайне", + "Remove as default board" : "Удалить как доску по умолчанию", + "Set as default board" : "Установить как доску по умолчанию", + "Due date reminders" : "Напоминания о дедлайне", "Assigned cards" : "Назначенные карточки", "No notifications" : "Без уведомлений", "Delete board" : "Удалить доску", + "Leave board" : "Покинуть доску", + "Importing board..." : "Импорт доски...", + "Board imported successfully" : "Доска успешно импортирована", + "Import board" : "Импортировать доску", + "Clone {boardTitle}" : "Клонировать {boardTitle}", "Clone cards" : "Скопировать карточку", + "Clone assignments" : "Клонировать назнечение карточек", + "Clone labels" : "Клонировать метки", + "Clone due dates" : "Клонировать дедлайны", "Advanced options" : "Дополнительные настройки", + "Move all cards to the first list" : "Переместить все карточки в первую колонку", + "Restore archived cards" : "Восстановить заархивированные карточки", "Clone" : "Скопировать", + "Export {boardTitle}" : "Экспортировать {boardTitle}", + "Export as JSON" : "Экспорт как JSON", "Export as CSV" : "Экспортировать в файл CSV", + "Note: Only the JSON format is supported for importing back into the Deck app." : "Примечание. Для обратного импорта в приложение Deck поддерживается только формат JSON.", "Export" : "Экспорт", - "Loading filtered view" : "Выполняется отбор", + "Loading filtered view" : "Применяется фильтр", + "Search for {searchQuery} in other boards" : "Искать {searchQuery} на других досках", "Search for {searchQuery} in all boards" : "Искать {searchQuery} на всех досках", "No results found" : "Результаты отсутствуют", "Deck board {name}\n* Last modified on {lastMod}" : "Доска «{name}»\n* Последнее изменение: {lastMod}", "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Создано {created}\n* Последнее изменение {lastMod}\n* {nbAttachments} вложений\n* {nbComments} комментариев", "{nbCards} cards" : "карточек: {nbCards}", - "Due on {date}" : "Дата исполнения: {date}", + "Due on {date}" : "Дедлайн: {date}", "{stack} in {board}" : "«{stack}» с доски «{board}»", - "Click to expand description" : "Нажмите, чтобы развернуть поле описания", + "Click to expand description" : "Нажмите, чтобы развернуть описание", "Click to expand comment" : "Нажмите, чтобы развернуть комментарии", "Create card" : "Создать карточку", "Create a new card" : "Создать карточку", @@ -350,17 +414,18 @@ OC.L10N.register( "Close" : "Закрыть", "No upcoming cards" : "Отсутствуют карточки, ожидающие выполнения", "upcoming cards today" : "карточки, которые должны быть выполнены сегодня", - "upcoming cards tomorrow" : "карточки, которые должны быть выполнены до завтра", + "upcoming cards tomorrow" : "карточки, которые должны быть выполнены завтра", "upcoming cards" : "карточки, ожидающие выполнения", "New card" : "Новая карточка", "Link to a board" : "Ссылка на доску", "Link to a card" : "Ссылка на карточку", "Create a card" : "Создать карточку", "Message from {author} in {conversationName}" : "Сообщение от {author} из беседы «{conversationName}»", - "Something went wrong" : "Неизвестная ошибка", + "Something went wrong" : "Что-то пошло не так", "Failed to upload {name}" : "Не удалось передать на сервер {name}", "Maximum file size of {size} exceeded" : "Превышен максимально разрешённый размер файла в {size}", - "Due date" : "Дата исполнения", + "Assigned users" : "Назначенные пользователи", + "Due date" : "Дедлайн", "Created" : "Создано", "Modified" : "Изменено", "Error creating the share" : "Не удалось опубликовать", @@ -372,8 +437,9 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Поиск пользователей, групп и команд…", "No participants found" : "Не удалось найти ни одного участника", "Save" : "Сохранить", + "seconds ago" : "несколько секунд назад", "Today" : "Сегодня", "Tomorrow" : "Завтра", - "No due" : "Без назначенной даты" + "No due" : "Без дедлайна" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/l10n/ru.json b/l10n/ru.json index eaa561c15d..8a7d7700e8 100644 --- a/l10n/ru.json +++ b/l10n/ru.json @@ -15,46 +15,46 @@ "{user} has archived the board {before}" : "{user} переместил(а) доску «{board}» в архив", "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 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 marked the card {card} as done in list {stack} on board {board}" : "Вы отметили как завершённую карточку «{card}» в списке «{stack}» на доске «{board}»", - "{user} has marked card {card} as done in list {stack} on board {board}" : "{user} отметил(а) как завершённую карточку «{card}» в списке «{stack}» на доске «{board}»", - "You have marked the card {card} as undone in list {stack} on board {board}" : "Вы отметили как незавершённую карточку «{card}» в списке «{stack}» на доске «{board}»", - "{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} отметил(а) как незавершённую карточку «{card}» в списке «{stack}» на доске «{board}»", - "You have removed the due date of card {card}" : "Вы удалили срок исполнения по карточке «{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 marked the card {card} as done in list {stack} on board {board}" : "Вы отметили как завершённую карточку «{card}» в колонке «{stack}» на доске «{board}»", + "{user} has marked card {card} as done in list {stack} on board {board}" : "{user} отметил(а) как завершённую карточку «{card}» в колонке «{stack}» на доске «{board}»", + "You have marked the card {card} as undone in list {stack} on board {board}" : "Вы отметили как незавершённую карточку «{card}» в колонке «{stack}» на доске «{board}»", + "{user} has marked the card {card} as undone 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}» до {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 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}»", @@ -67,7 +67,7 @@ "{user} has commented on card {card}" : "{user} добавил(а) комментарий к карточке «{card}»", "Deck" : "Карточки", "Changes in the Deck app" : "Изменения в приложении Карточки", - "A board, list or card was changed" : "Доска, список или карточка были изменены", + "A board, list or card was changed" : "Доска, колонка или карточка были изменены", "A comment was created on a card" : "Добавлен комментарий к карточке", "A card description has been changed" : "Описание карточки изменено", "The file was uploaded" : "Файл загружен", @@ -79,23 +79,29 @@ "Could not write file to disk" : "Невозможно записать файл на диск", "A PHP extension stopped the file upload" : "Загрузка файла была прервана модулем расширений PHP", "No file uploaded or file size exceeds maximum of %s" : "Файл не получен или его размер превышает %s", + "Invalid file type. Only JSON files are allowed." : "Неверный тип файла. Разрешены только файлы JSON.", + "Invalid JSON data" : "Неверные данные JSON", + "Failed to import board" : "Не удалось импортировать доску", "Cards due today" : "Завершающиеся сегодня", "Cards due tomorrow" : "Завершающиеся завтра", "Upcoming cards" : "Ожидающие выполнения", "Load more" : "Загрузить больше", - "The card \"%s\" on \"%s\" has been assigned to you by %s." : "Вам назначена карточка «%s» с рабочей доски «%s» пользователем %s.", + "Welcome to Nextcloud Deck!" : "Добро пожаловать в Nextcloud Deck!", + "The card \"%s\" on \"%s\" has been assigned to you by %s." : "Вам назначена карточка «%s» с доски «%s» пользователем %s.", "{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} назначил Вам карточку {deck-card} из {deck-board}.", - "The card {deck-card} on {deck-board} has reached its due date." : "Сегодня дата исполнения по карточке {deck-card} в {deck-board}.", + "The card \"%1$s\" on \"%2$s\" has reached its due date." : "Дедлайн карточки \"%1$s\" на \"%2$s\" истёк.", + "The card {deck-card} on {deck-board} has reached its due date." : "Сегодня дедлайн карточки {deck-card} в {deck-board}.", "%s has mentioned you in a comment on \"%s\"." : "Вы были упомянуты пользователем %s в комментарии «%s».", "{user} has mentioned you in a comment on {deck-card}." : "Вы были упомянуты пользователем {user} в комментарии {deck-card}.", "The board \"%s\" has been shared with you by %s." : "Вам предоставлен доступ к рабочей доске «%s» пользователем %s.", "{user} has shared {deck-board} with you." : "{user} предоставил(а) вам доступ к {deck-board}.", + "The remote board %1$s has been shared with you by %2$s" : " Вам предоставлен доступ к удалённой доске %1$s пользователем %2$s", "Deck board" : "Доска", "Owned by %1$s" : "Владелец: %1$s", "Deck boards, cards and comments" : "Доски, карточки и комментарии", "From %1$s, in %2$s/%3$s, owned by %4$s" : "Из %1$s, в %2$s/%3$s, принадлежит %4$s", "Create a new deck card" : "Создать новую карточку на доске", - "Card comments" : "Комментарии карточки", + "Card comments" : "Комментарии к карточке", "%s on %s" : "%s на %s", "Deck boards and cards" : "Доски и карточки", "No data was provided to create an attachment." : "Отсутствуют данные для создания вложения.", @@ -104,27 +110,37 @@ "Action needed" : "Требуется действие", "Later" : "Позже", "copy" : "Копировать", - "Custom lists - click to rename!" : "Пользовательские списки — нажмите, чтобы переименовать!", + "Read more inside" : "Подробнее читайте внутри", + "Custom lists - click to rename!" : "Пользовательские колонки — нажмите, чтобы переименовать!", "To Do" : "Задачи", "In Progress" : "Выполянется", "Done" : "Выполненные", + "1. Open to learn more about boards and cards" : "1. Откройте, чтобы узнать больше о досках и карточках.", + "2. Drag cards left and right, up and down" : "2. Перетаскивайте карточки влево и вправо, вверх и вниз.", + "3. Apply rich formatting and link content" : "3. Примените расширенное форматирование и свяжите контент", + "4. Share, comment and collaborate!" : "4. Делитесь, комментируйте и сотрудничайте!", + "Create your first card!" : "Создайте свою первую карточку!", "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Этот комментарий содержит более %s символов.\nКомментарий добавлен к карточке «%s» в виде вложения.\nПостоянный адрес этого комментария: %s.", "Attachments" : "Вложения", "File" : "Файл", + "date" : "дата", "Card not found" : "Карточка не найдена", "Path is already shared with this card" : "Этот путь уже опубликован в карточке", "Invalid date, date format must be YYYY-MM-DD" : "Некорректный формат даты, дата должна быть в формате YYYY-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Все доски, принадлежащие вам, включая колонки, карточки, метки, задания и комментарии.", "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" : "Карточки — приложение для Nextcloud, предоставляющее возможности личного планирования и управления проектами для рабочих групп в стиле канбан.\n\n\n- 📥 Создавайте карточки задач и упорядочите их;\n- 📄 Добавляйте описания задач с возможностью использовать формат разметки «markdown»;\n- 🔖 Присваивайте ярлыки для ещё лучшей организации;\n- 👥 Делитесь со своей командой, друзьями или семьей;\n- 📎 Вкладывайте файлы в виде ссылок в описании, используя формат разметки «Markdown»;\n- 💬 Обсуждайте в комментариях;\n- ⚡ Отслеживайте изменения в ленте событий;\n- 🚀 Сделайте свой проект более организованным.", + "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" : "Карточки — приложение для Nextcloud, предоставляющее возможности личного планирования и управления проектами для рабочих групп в стиле канбан.\n\n\n- 📥 Создавайте карточки задач и упорядочивайте их;\n- 📄 Добавляйте описания задач с возможностью использовать формат разметки «markdown»;\n- 🔖 Присваивайте ярлыки для ещё лучшей организации;\n- 👥 Делитесь со своей командой, друзьями или семьей;\n- 📎 Вкладывайте файлы в виде ссылок в описании, используя формат разметки «Markdown»;\n- 💬 Обсуждайте в комментариях;\n- ⚡ Отслеживайте изменения в ленте событий;\n- 🚀 Сделайте свой проект более организованным.", "Add board" : "Добавить доску", "Card details" : "Свойства карточки", - "Select the board to link to a project" : "Выберите рабочую доску, чтобы связать с проектом", + "Select the board to link to a project" : "Выберите доску, чтобы связать с проектом", "Search by board title" : "Поиск по заголовкам досок", - "Select board" : "Выбор рабочей доски", + "Select board" : "Выбор доски", + "Move/copy card" : "Переместить/копировать карточку", "Select a board" : "Выберите доску", - "No lists available" : "Нет ни одного списка", - "Select a list" : "Выберите список", + "No lists available" : "Нет ни одной колонки", + "Select a list" : "Выберите колонку", "Move card" : "Переместить карточку", + "Copy card" : "Копировать карточку", "Select the card to link to a project" : "Выберите карточку для связывания с проектом", "Link to card" : "Ссылка на карточку", "Select a card" : "Выберите карточку", @@ -138,8 +154,8 @@ "Keep existing file" : "Сохранить имеющийся", "Add card" : "Создать карточку", "Archived cards" : "Карточки в архиве", - "Add list" : "Добавить список", - "List name" : "Название списка", + "Add list" : "Добавить колонку", + "List name" : "Название колонки", "Active filters" : "Активные фильтры", "Apply filter" : "Применить фильтр", "Filter by tag" : "Отбор по меткам:", @@ -154,15 +170,17 @@ "Next 24 hours" : "Ближайшие 24 часа", "Next 7 days" : "Ближайшие 7 дней", "Next 30 days" : "Ближайшие 30 дней", - "No due date" : "Без назначенной даты", + "No due date" : "Без дедлайна", "Clear filter" : "Сбросить фильтр", "View Modes" : "Режимы просмотра", "Toggle View Modes" : "Выбор режима просмотра", - "Hide archived cards" : "Скрывать архивные карточки", + "Kanban view" : "Kanban вид", + "Gantt view" : "Gantt вид", + "Hide archived cards" : "Скрыть архивные карточки", "Show archived cards" : "Показывать архивные карточки", "Toggle compact mode" : "Выбор компактного или обычного режима просмотра", "Hide card cover images" : "Скрыть обложки карточек", - "Show card cover images" : "Показывать обложки карточек", + "Show card cover images" : "Показать обложки карточек", "Open details" : "Открыть подробности", "Details" : "Свойства", "Deck settings" : "Параметры карточек", @@ -174,32 +192,40 @@ "Admin settings" : "Настройки администратора", "Limit board creation to some groups" : "Разрешить создавать доски только участниками определённых групп", "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Создание собственных рабочих досок пользователям, не входящим в заданные группы, будет заблокировано. Тем не менее такие пользователи смогут продолжить работать с общими досками, к которым у них есть доступ. ", + "Enable federation" : "Включить федерацию", "Board actions" : "Управление доской", "Scroll sideways" : "Боковая прокрутка", "Navigate between cards" : "Перемещение между карточками", "Close card details" : "Закрыть свойства карточки", "Search" : "Поиск", - "Show card filters" : "Открыть фильтр отбора", - "Clear card filters" : "Очистить фильтр отбора", + "Show card filters" : "Открыть фильтр карточек", + "Clear card filters" : "Очистить фильтр карточек", "Show those shortcuts" : "Показать ярлыки", "Card actions" : "Управление карточками", "Open card details" : "Открыть свойства карточки", "Edit the card title" : "Изменить заголовок карточки", "Assign yourself to the current card" : "Назначить открытую карточку себе", "Archive/unarchive the current card" : "Переместить карточку в архив или вернуть из архива", - "Mark card as completed/not completed" : "Изменить отметку завершения карточки", + "Mark card as completed/not completed" : "Изменить отметку выполнении карточки", "Open card menu" : "Открыть меню управления карточкой", "Currently present people" : "Присутствующие в настоящее время люди", "Loading board" : "Загрузка доски", "Board not found" : "Доска не найдена", - "Create a new list to add cards to this board" : "Создайте список чтобы добавить карточки на эту доску", + "Create a new list to add cards to this board" : "Создайте колонку чтобы добавить карточки на эту доску", "Sharing" : "Общий доступ", "Tags" : "Метки", "Deleted items" : "Корзина", "Activity" : "Активность", - "Deleted lists" : "Удалённые списки", + "Deleted lists" : "Удалённые колонки", "Undo" : "Отменить", "Deleted cards" : "Карточки в корзине", + "Hours" : "Часы", + "Days" : "Дней", + "Weeks" : "Недель", + "Months" : "Месяц(ев)", + "No cards yet" : "Ещё нет ни одной карточки", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Установите дату начала и дедлайн на своих карточках, чтобы увидеть их на диаграмме Ганта", + "Cards without dates ({count})" : "Карточки без дат ({count})", "Failed to create share with {displayName}" : "Не удалось предоставить общий доступ для {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Вы уверены, что хотите передать доску {title} пользователю {user}?", "Transfer the board." : "Перенесите доску.", @@ -215,13 +241,15 @@ "Can manage" : "Разрешить изменять", "Owner" : "Владелец", "Delete" : "Удалить", - "List deleted" : "Список удалён", - "Edit list title" : "Изменить название списка", + "List deleted" : "Колонка удалена", + "Edit list title" : "Изменить название колонки", "Archive all cards" : "Переместить все карточки в архив", "Unarchive all cards" : "Восстановить все карточки из архива", - "Delete list" : "Удалить список", - "Archive all cards in this list" : "Переместить в архив все карточки текущего списка", - "Unarchive all cards in this list" : "Восстановить из архива все карточки списка", + "Do not set cards as \"done\"" : "Не устанавливать статус карточек как «выполнено»", + "Set cards as \"done\"" : "Установить статус карточек как «выполнено»", + "Delete list" : "Удалить колонку", + "Archive all cards in this list" : "Переместить в архив все карточки колонки", + "Unarchive all cards in this list" : "Восстановить из архива все карточки колонки", "Add a new card" : "Создать карточку", "Card name" : "Название карточки", "title and color value must be provided" : "необходимо указать цвет и название", @@ -234,7 +262,7 @@ "Select a user to assign to this card…" : "Выберите пользователя, которому будет назначена карточка…", "File to share" : "Файл для публикации", "Invalid path selected" : "Выбран некорректный путь", - "Upload new files" : "Передать на сервер новые файлы", + "Upload new files" : "Загрузить новые файлы", "Share from Files" : "Опубликовать из приложения «Файлы»", "Pending share" : "Ожидающие публикации", "Add this attachment" : "Добавить это вложение", @@ -243,7 +271,11 @@ "Remove attachment" : "Убрать вложение", "Delete Attachment" : "Удалить вложение", "Restore Attachment" : "Восстановить вложение", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Изменено: {modifiedDate} ⸱ Дата создания: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Изменено: {modifiedDate}\nДата создания: {createdDate}\nСоздано пользователем: {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Изменено: {modifiedDate}\nДата создания: {createdDate}", "The title cannot be empty." : "Название не может быть пустым", + "Cannot close unsaved card!" : "Невозможно закрыть несохранённую карточку!", "Open in sidebar view" : "Открыть в боковой панели", "Open in bigger view" : "Открыть режиме подробного просмотра", "Comments" : "Комментарии", @@ -251,12 +283,22 @@ "No comments yet. Begin the discussion!" : "Комментарии отсутствуют, начните обсуждение!", "The comment cannot be empty." : "Комментарий не может быть пустым.", "The comment cannot be longer than 1000 characters." : "Комментарий не может быть длиннее 1 000 символов.", + "Submit" : "Отправить ответ", "Created:" : "Создание:", "In reply to" : "В ответ", "Cancel reply" : "Отменить ответ", "Reply" : "Ответить", "Update" : "Обновить", + "Assign dependent cards" : "Назначить дочерние карточки (подзадачи)", + "Mark as done" : "Отметить как выполненную", + "Mark as not done" : "Отметить как невыполненную", + "Remove dependency" : "Удалить зависимость", + "Add dependent card" : "Добавить дочернюю карточку (подзадачу)", + "Assign a dependent card…" : "Назначить дочернюю карточку (подзадачу)...", + "Select a dependent card…" : "Выбрать дочернюю карточку (подзадачу)…", "Write a description …" : "Добавьте описание...", + "The description has been changed by another user." : "Описание изменено другим пользователем.", + "Could not save description" : "Не удалось сохранить описание", "Description" : "Описание", "(Unsaved)" : "(Не сохранен)", "(Saving…)" : "(Сохранение...)", @@ -267,23 +309,26 @@ "Choose attachment" : "Выберите вложение", "Select Date" : "Выберите дату", "Later today – {timeLocale}" : "Позднее сегодня – {timeLocale}", - "Set due date for later today" : "Задать дату завершения на сегодня позднее", + "Set due date for later today" : "Задать дедлайн на сегодня позднее", "Tomorrow – {timeLocale}" : "Завтра – {timeLocale}", - "Set due date for tomorrow" : "Задать дату завершения на завтра", + "Set due date for tomorrow" : "Задать дедлайн на завтра", "This weekend – {timeLocale}" : "Эти выходные – {timeLocale}", - "Set due date for this weekend" : "Задать дату завершения на ближайшие выходные", + "Set due date for this weekend" : "Задать дедлайн на ближайшие выходные", "Next week – {timeLocale}" : "Следующая неделя – {timeLocale}", - "Set due date for next week" : "Задать дату завершения на следующую неделю", - "Assign a due date to this card…" : "Назначить срок истечения карточки...", - "Set a due date" : "Задать дату исполнения", - "Add due date" : "Назначить дату завершения", + "Set due date for next week" : "Задать дедлайн на следующую неделю", + "Assign a due date to this card…" : "Назначить дедлайн карточки...", + "Set a due date" : "Установить дедлайн", + "Add due date" : "Добавить дедлайн", "Choose a date" : "Выбрать дату…", - "Remove due date" : "Удалить срок исполнения", - "Mark as done" : "Отметить как выполненную", - "Due at:" : "Дата завершения:", + "Remove due date" : "Удалить дедлайн", + "Due at:" : "Дедлайн:", "Not done" : "Незавершённые", "Unarchive card" : "Восстановить из архива", "Archive card" : "Переместить в архив", + "Assign a start date to this card…" : "Назначьте этой карточке дату начала…", + "Set a start date" : "Установите дату начала", + "Add start date" : "Добавить дату начала", + "Remove start date" : "Удалить дату начала", "Assign a tag to this card…" : "Назначить метку этой карточке…", "Select or create a tag…" : "Выбрать или создать метку…", "Create a new tag:" : "Создать метку:", @@ -293,12 +338,11 @@ "Edit card title" : "Изменить заголовок карточки", "Open link" : "Открыть ссылку", "Card deleted" : "Карточка удалена", + "Change card color" : "Изменить цвет карточки", "Edit title" : "Редактировать заголовок", "Assign to me" : "Назначить себе", "Unassign myself" : "Отказаться от назначения", - "Mark as not done" : "Отметить как невыполненную", "Delete card" : "Удалить", - "seconds ago" : "несколько секунд назад", "All boards" : "Все доски", "Archived boards" : "Архив досок", "Shared with you" : "Предоставленные вам", @@ -311,33 +355,53 @@ "An error occurred" : "Произошла ошибка", "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Подтвердите удаление доски «{title}»; это действие приведёт к удалению также все данных, принадлежащих этой доске, включая карточки в архиве.", "Delete the board?" : "Удалить доску?", + "Are you sure you want to leave the board {title}?" : "Вы уверены, что хотите покинуть доску {title}?", + "Leave the board?" : "Покинуть доску?", "Leave" : "Выйти", + "Failed to leave the board" : "Не удалось покинуть доску", + "Exporting board..." : "Экспорт доски...", "Board details" : "Свойства доски", "Edit board" : "Редактировать", "Clone board" : "Скопировать доску", "Unarchive board" : "Восстановить доску из архива", "Archive board" : "Переместить доску в архив", "Export board" : "Экспортировать доску", - "Turn on due date reminders" : "Включить напоминания о сроке выполнения", - "Turn off due date reminders" : "Отключить напоминания о сроке выполнения", - "Due date reminders" : "Напоминания о сроке выполнения", + "Turn on due date reminders" : "Включить напоминания о дедлайне", + "Turn off due date reminders" : "Отключить напоминания о дедлайне", + "Remove as default board" : "Удалить как доску по умолчанию", + "Set as default board" : "Установить как доску по умолчанию", + "Due date reminders" : "Напоминания о дедлайне", "Assigned cards" : "Назначенные карточки", "No notifications" : "Без уведомлений", "Delete board" : "Удалить доску", + "Leave board" : "Покинуть доску", + "Importing board..." : "Импорт доски...", + "Board imported successfully" : "Доска успешно импортирована", + "Import board" : "Импортировать доску", + "Clone {boardTitle}" : "Клонировать {boardTitle}", "Clone cards" : "Скопировать карточку", + "Clone assignments" : "Клонировать назнечение карточек", + "Clone labels" : "Клонировать метки", + "Clone due dates" : "Клонировать дедлайны", "Advanced options" : "Дополнительные настройки", + "Move all cards to the first list" : "Переместить все карточки в первую колонку", + "Restore archived cards" : "Восстановить заархивированные карточки", "Clone" : "Скопировать", + "Export {boardTitle}" : "Экспортировать {boardTitle}", + "Export as JSON" : "Экспорт как JSON", "Export as CSV" : "Экспортировать в файл CSV", + "Note: Only the JSON format is supported for importing back into the Deck app." : "Примечание. Для обратного импорта в приложение Deck поддерживается только формат JSON.", "Export" : "Экспорт", - "Loading filtered view" : "Выполняется отбор", + "Loading filtered view" : "Применяется фильтр", + "Search for {searchQuery} in other boards" : "Искать {searchQuery} на других досках", "Search for {searchQuery} in all boards" : "Искать {searchQuery} на всех досках", "No results found" : "Результаты отсутствуют", "Deck board {name}\n* Last modified on {lastMod}" : "Доска «{name}»\n* Последнее изменение: {lastMod}", "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Создано {created}\n* Последнее изменение {lastMod}\n* {nbAttachments} вложений\n* {nbComments} комментариев", "{nbCards} cards" : "карточек: {nbCards}", - "Due on {date}" : "Дата исполнения: {date}", + "Due on {date}" : "Дедлайн: {date}", "{stack} in {board}" : "«{stack}» с доски «{board}»", - "Click to expand description" : "Нажмите, чтобы развернуть поле описания", + "Click to expand description" : "Нажмите, чтобы развернуть описание", "Click to expand comment" : "Нажмите, чтобы развернуть комментарии", "Create card" : "Создать карточку", "Create a new card" : "Создать карточку", @@ -348,17 +412,18 @@ "Close" : "Закрыть", "No upcoming cards" : "Отсутствуют карточки, ожидающие выполнения", "upcoming cards today" : "карточки, которые должны быть выполнены сегодня", - "upcoming cards tomorrow" : "карточки, которые должны быть выполнены до завтра", + "upcoming cards tomorrow" : "карточки, которые должны быть выполнены завтра", "upcoming cards" : "карточки, ожидающие выполнения", "New card" : "Новая карточка", "Link to a board" : "Ссылка на доску", "Link to a card" : "Ссылка на карточку", "Create a card" : "Создать карточку", "Message from {author} in {conversationName}" : "Сообщение от {author} из беседы «{conversationName}»", - "Something went wrong" : "Неизвестная ошибка", + "Something went wrong" : "Что-то пошло не так", "Failed to upload {name}" : "Не удалось передать на сервер {name}", "Maximum file size of {size} exceeded" : "Превышен максимально разрешённый размер файла в {size}", - "Due date" : "Дата исполнения", + "Assigned users" : "Назначенные пользователи", + "Due date" : "Дедлайн", "Created" : "Создано", "Modified" : "Изменено", "Error creating the share" : "Не удалось опубликовать", @@ -370,8 +435,9 @@ "Searching for users, groups and teams …" : "Поиск пользователей, групп и команд…", "No participants found" : "Не удалось найти ни одного участника", "Save" : "Сохранить", + "seconds ago" : "несколько секунд назад", "Today" : "Сегодня", "Tomorrow" : "Завтра", - "No due" : "Без назначенной даты" + "No due" : "Без дедлайна" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" } \ No newline at end of file diff --git a/l10n/sc.js b/l10n/sc.js index 0d3d0329a0..65a32fe69a 100644 --- a/l10n/sc.js +++ b/l10n/sc.js @@ -157,6 +157,9 @@ OC.L10N.register( "Deleted lists" : "Elencos cantzellados", "Undo" : "Annulla", "Deleted cards" : "Ischeda cantzellada", + "Weeks" : "Chidas", + "Months" : "Meses", + "No cards yet" : "Perun'ischeda ancora", "Failed to create share with {displayName}" : "No at fatu a creare cumpartzidura cun {displayName}", "Transfer" : "Tràmuda", "Board owner" : "Mere lavagna", @@ -196,11 +199,13 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Perunu cummentu ancora. Cumintzat sa chistionada!", "The comment cannot be empty." : "Su cummentu non podet èssere bòidu", "The comment cannot be longer than 1000 characters." : "Su cummentu non podet èssere prus longu de 1000 caràteres.", + "Submit" : "Imbia", "Created:" : "Creadu:", "In reply to" : "Rispondende a ", "Cancel reply" : "Annulla risposta", "Reply" : "Risponde", "Update" : "Agiorna", + "Mark as done" : "Marca comente cumpletadu", "Write a description …" : "Iscrie una descritzione ...", "Description" : "Descritzione", "(Unsaved)" : "(Non sarvada)", @@ -213,7 +218,6 @@ OC.L10N.register( "Select Date" : "Seletziona data", "Set a due date" : "Cunfigura data de iscadèntzia", "Remove due date" : "Boga s'iscadèntzia", - "Mark as done" : "Marca comente cumpletadu", "Unarchive card" : "Ischeda no archiviada", "Archive card" : "Archìviu no archiviadu", "Assign a tag to this card…" : "Assigna un'eticheta a cust'ischeda...", @@ -225,7 +229,6 @@ OC.L10N.register( "Assign to me" : "Assigna a mie", "Unassign myself" : "Annulla s'assignatzione a mie", "Delete card" : "Cantzella ischeda", - "seconds ago" : "segundos a immoe", "All boards" : "Totu is lavagnas", "Archived boards" : "Lavagnas archiviadas", "Shared with you" : "Cumpartzidu cun tegus", @@ -282,6 +285,7 @@ OC.L10N.register( "The card \"%s\" on \"%s\" has reached its due date." : "S'ischeda \"%s\" in \"%s\" est cròmpida a sa data de iscadèntzia.", "No participants found" : "Perunu partetzipante agatadu", "Save" : "Sarva", + "seconds ago" : "segundos a immoe", "Today" : "Oe", "Tomorrow" : "Cras", "No due" : "Peruna iscadèntzia" diff --git a/l10n/sc.json b/l10n/sc.json index 2722cc7bac..e2e00a983c 100644 --- a/l10n/sc.json +++ b/l10n/sc.json @@ -155,6 +155,9 @@ "Deleted lists" : "Elencos cantzellados", "Undo" : "Annulla", "Deleted cards" : "Ischeda cantzellada", + "Weeks" : "Chidas", + "Months" : "Meses", + "No cards yet" : "Perun'ischeda ancora", "Failed to create share with {displayName}" : "No at fatu a creare cumpartzidura cun {displayName}", "Transfer" : "Tràmuda", "Board owner" : "Mere lavagna", @@ -194,11 +197,13 @@ "No comments yet. Begin the discussion!" : "Perunu cummentu ancora. Cumintzat sa chistionada!", "The comment cannot be empty." : "Su cummentu non podet èssere bòidu", "The comment cannot be longer than 1000 characters." : "Su cummentu non podet èssere prus longu de 1000 caràteres.", + "Submit" : "Imbia", "Created:" : "Creadu:", "In reply to" : "Rispondende a ", "Cancel reply" : "Annulla risposta", "Reply" : "Risponde", "Update" : "Agiorna", + "Mark as done" : "Marca comente cumpletadu", "Write a description …" : "Iscrie una descritzione ...", "Description" : "Descritzione", "(Unsaved)" : "(Non sarvada)", @@ -211,7 +216,6 @@ "Select Date" : "Seletziona data", "Set a due date" : "Cunfigura data de iscadèntzia", "Remove due date" : "Boga s'iscadèntzia", - "Mark as done" : "Marca comente cumpletadu", "Unarchive card" : "Ischeda no archiviada", "Archive card" : "Archìviu no archiviadu", "Assign a tag to this card…" : "Assigna un'eticheta a cust'ischeda...", @@ -223,7 +227,6 @@ "Assign to me" : "Assigna a mie", "Unassign myself" : "Annulla s'assignatzione a mie", "Delete card" : "Cantzella ischeda", - "seconds ago" : "segundos a immoe", "All boards" : "Totu is lavagnas", "Archived boards" : "Lavagnas archiviadas", "Shared with you" : "Cumpartzidu cun tegus", @@ -280,6 +283,7 @@ "The card \"%s\" on \"%s\" has reached its due date." : "S'ischeda \"%s\" in \"%s\" est cròmpida a sa data de iscadèntzia.", "No participants found" : "Perunu partetzipante agatadu", "Save" : "Sarva", + "seconds ago" : "segundos a immoe", "Today" : "Oe", "Tomorrow" : "Cras", "No due" : "Peruna iscadèntzia" diff --git a/l10n/si.js b/l10n/si.js index c0258df152..8569097aef 100644 --- a/l10n/si.js +++ b/l10n/si.js @@ -17,8 +17,12 @@ OC.L10N.register( "Search" : "සොයන්න", "Activity" : "ක්‍රියාකාරකම", "Undo" : "පෙරසේ", + "Days" : "දින", + "Weeks" : "සති", + "Months" : "මාස", "(Group)" : "(සමූහය)", "Owner" : "හිමිකරු", + "Delete" : "Delete", "Edit" : "සංස්කරණය", "Download" : "බාගන්න", "Comments" : "අදහස්", @@ -26,10 +30,10 @@ OC.L10N.register( "Update" : "යාවත්කාල", "Description" : "විස්තරය", "Select Date" : "දිනය තෝරන්න", - "seconds ago" : "තත්පර කිහිපයකට පෙර", "Close" : "වසන්න", "Share" : "බෙදාගන්න", "Save" : "සුරකින්න", + "seconds ago" : "තත්පර කිහිපයකට පෙර", "Today" : "අද", "Tomorrow" : "හෙට" }, diff --git a/l10n/si.json b/l10n/si.json index ce74662149..709946d561 100644 --- a/l10n/si.json +++ b/l10n/si.json @@ -15,8 +15,12 @@ "Search" : "සොයන්න", "Activity" : "ක්‍රියාකාරකම", "Undo" : "පෙරසේ", + "Days" : "දින", + "Weeks" : "සති", + "Months" : "මාස", "(Group)" : "(සමූහය)", "Owner" : "හිමිකරු", + "Delete" : "Delete", "Edit" : "සංස්කරණය", "Download" : "බාගන්න", "Comments" : "අදහස්", @@ -24,10 +28,10 @@ "Update" : "යාවත්කාල", "Description" : "විස්තරය", "Select Date" : "දිනය තෝරන්න", - "seconds ago" : "තත්පර කිහිපයකට පෙර", "Close" : "වසන්න", "Share" : "බෙදාගන්න", "Save" : "සුරකින්න", + "seconds ago" : "තත්පර කිහිපයකට පෙර", "Today" : "අද", "Tomorrow" : "හෙට" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/l10n/sk.js b/l10n/sk.js index 66fcf3575a..9a350c9a00 100644 --- a/l10n/sk.js +++ b/l10n/sk.js @@ -218,6 +218,11 @@ OC.L10N.register( "Deleted lists" : "Vymazané zoznamy", "Undo" : "Odvolať", "Deleted cards" : "Odstránené karty", + "Hours" : "Hodiny", + "Days" : "Dni", + "Weeks" : "Týždňov", + "Months" : "Mesiacov", + "No cards yet" : "Zatiaľ žiadne karty", "Failed to create share with {displayName}" : "Nepodarilo sa vytvoriť zdieľanie pre {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Naozaj chcete preniesť nástenku {title} na užívateľa {user}?", "Transfer the board." : "Prenos nástenky.", @@ -272,11 +277,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Zatiaľ bez komentárov. Začnite diskusiu!", "The comment cannot be empty." : "Komentár nemôže byť prázdny.", "The comment cannot be longer than 1000 characters." : "Komentár nemôže byť dlhší ako 1000 znakov.", + "Submit" : "Odoslať", "Created:" : "Vytvorené:", "In reply to" : "Odpoveď na", "Cancel reply" : "Zrušiť odpoveď", "Reply" : "Odpoveď", "Update" : "Aktualizovať", + "Mark as done" : "Označiť ako dokončené", + "Mark as not done" : "Označiť ako nedokončené", "Write a description …" : "Napíšte popis...", "The description has been changed by another user." : "Popis bol zmenený iným používateľom.", "Could not save description" : "Nepodarilo sa uložiť popis", @@ -302,7 +310,6 @@ OC.L10N.register( "Add due date" : "Pridať termín", "Choose a date" : "Vyberte dátum", "Remove due date" : "Odstrániť termín dokončenia", - "Mark as done" : "Označiť ako dokončené", "Due at:" : "Termín dokončenia:", "Not done" : "Neurobené", "Unarchive card" : "Zrušiť archiváciu karty", @@ -323,9 +330,7 @@ OC.L10N.register( "Edit title" : "Premenovať", "Assign to me" : "Priradiť mne", "Unassign myself" : "Zrušiť priradenie mne", - "Mark as not done" : "Označiť ako nedokončené", "Delete card" : "Zmazať kartu", - "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é", @@ -418,6 +423,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Vyhľadávam užívateľov, skupiny a tímy ...", "No participants found" : "Nenašli sa žiadni účastníci", "Save" : "Uložiť", + "seconds ago" : "pred niekoľkými sekundami", "Today" : "Dnes", "Tomorrow" : "Zajtra", "No due" : "Žiadny termín dokončenia" diff --git a/l10n/sk.json b/l10n/sk.json index 136132d97e..93f59617af 100644 --- a/l10n/sk.json +++ b/l10n/sk.json @@ -216,6 +216,11 @@ "Deleted lists" : "Vymazané zoznamy", "Undo" : "Odvolať", "Deleted cards" : "Odstránené karty", + "Hours" : "Hodiny", + "Days" : "Dni", + "Weeks" : "Týždňov", + "Months" : "Mesiacov", + "No cards yet" : "Zatiaľ žiadne karty", "Failed to create share with {displayName}" : "Nepodarilo sa vytvoriť zdieľanie pre {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Naozaj chcete preniesť nástenku {title} na užívateľa {user}?", "Transfer the board." : "Prenos nástenky.", @@ -270,11 +275,14 @@ "No comments yet. Begin the discussion!" : "Zatiaľ bez komentárov. Začnite diskusiu!", "The comment cannot be empty." : "Komentár nemôže byť prázdny.", "The comment cannot be longer than 1000 characters." : "Komentár nemôže byť dlhší ako 1000 znakov.", + "Submit" : "Odoslať", "Created:" : "Vytvorené:", "In reply to" : "Odpoveď na", "Cancel reply" : "Zrušiť odpoveď", "Reply" : "Odpoveď", "Update" : "Aktualizovať", + "Mark as done" : "Označiť ako dokončené", + "Mark as not done" : "Označiť ako nedokončené", "Write a description …" : "Napíšte popis...", "The description has been changed by another user." : "Popis bol zmenený iným používateľom.", "Could not save description" : "Nepodarilo sa uložiť popis", @@ -300,7 +308,6 @@ "Add due date" : "Pridať termín", "Choose a date" : "Vyberte dátum", "Remove due date" : "Odstrániť termín dokončenia", - "Mark as done" : "Označiť ako dokončené", "Due at:" : "Termín dokončenia:", "Not done" : "Neurobené", "Unarchive card" : "Zrušiť archiváciu karty", @@ -321,9 +328,7 @@ "Edit title" : "Premenovať", "Assign to me" : "Priradiť mne", "Unassign myself" : "Zrušiť priradenie mne", - "Mark as not done" : "Označiť ako nedokončené", "Delete card" : "Zmazať kartu", - "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é", @@ -416,6 +421,7 @@ "Searching for users, groups and teams …" : "Vyhľadávam užívateľov, skupiny a tímy ...", "No participants found" : "Nenašli sa žiadni účastníci", "Save" : "Uložiť", + "seconds ago" : "pred niekoľkými sekundami", "Today" : "Dnes", "Tomorrow" : "Zajtra", "No due" : "Žiadny termín dokončenia" diff --git a/l10n/sl.js b/l10n/sl.js index 312d520835..d6e2b8e689 100644 --- a/l10n/sl.js +++ b/l10n/sl.js @@ -172,6 +172,11 @@ OC.L10N.register( "Deleted lists" : "Izbrisani seznami", "Undo" : "Razveljavi", "Deleted cards" : "Izbrisane naloge", + "Hours" : "Ure", + "Days" : "Dnevi", + "Weeks" : "tednov", + "Months" : "mesecev", + "No cards yet" : "Ni še vpisanih nalog", "Failed to create share with {displayName}" : "Souporaba z uporabnikom {displayName} je spodletela", "Transfer" : "Prenos", "Board owner" : "Lastnik zbirke", @@ -212,11 +217,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Ni še odzivov, bodite prvi!", "The comment cannot be empty." : "Polje opombe ne sme biti prazno.", "The comment cannot be longer than 1000 characters." : "Opomba ne sme biti daljša od 1000 znakov.", + "Submit" : "Pošlji", "Created:" : "Ustvarjeno:", "In reply to" : "V odgovor", "Cancel reply" : "Prekliči odgovor", "Reply" : "Odgovori", "Update" : "Posodobi", + "Mark as done" : "Označi kot končano", + "Mark as not done" : "Označi kot Ni končano", "Write a description …" : "Vpišite opis ...", "Description" : "Opis", "(Unsaved)" : "(neshranjeno)", @@ -239,7 +247,6 @@ OC.L10N.register( "Add due date" : "Dodaj datum preteka", "Choose a date" : "Izbor datuma", "Remove due date" : "Odstrani datum preteka", - "Mark as done" : "Označi kot končano", "Due at:" : "Poteče:", "Not done" : "Ni končano", "Unarchive card" : "Povrni nalogo", @@ -255,9 +262,7 @@ OC.L10N.register( "Edit title" : "Uredi naslov", "Assign to me" : "Nalogo dodeli meni", "Unassign myself" : "Odstrani me z naloge", - "Mark as not done" : "Označi kot Ni končano", "Delete card" : "Izbriši nalogo", - "seconds ago" : "pred nekaj sekundami", "All boards" : "Vse zbirke", "Archived boards" : "Arhivirane zbirke", "Shared with you" : "V souporabi z vami", @@ -317,6 +322,7 @@ OC.L10N.register( "The card \"%s\" on \"%s\" has reached its due date." : "Naloga »%s« na »%s« je dosegla datum preteka.", "No participants found" : "Ni zaznanih udeleženev", "Save" : "Shrani", + "seconds ago" : "pred nekaj sekundami", "Today" : "Danes", "Tomorrow" : "Jutri", "No due" : "Ni datuma preteka" diff --git a/l10n/sl.json b/l10n/sl.json index 29d8949064..e0672c65a4 100644 --- a/l10n/sl.json +++ b/l10n/sl.json @@ -170,6 +170,11 @@ "Deleted lists" : "Izbrisani seznami", "Undo" : "Razveljavi", "Deleted cards" : "Izbrisane naloge", + "Hours" : "Ure", + "Days" : "Dnevi", + "Weeks" : "tednov", + "Months" : "mesecev", + "No cards yet" : "Ni še vpisanih nalog", "Failed to create share with {displayName}" : "Souporaba z uporabnikom {displayName} je spodletela", "Transfer" : "Prenos", "Board owner" : "Lastnik zbirke", @@ -210,11 +215,14 @@ "No comments yet. Begin the discussion!" : "Ni še odzivov, bodite prvi!", "The comment cannot be empty." : "Polje opombe ne sme biti prazno.", "The comment cannot be longer than 1000 characters." : "Opomba ne sme biti daljša od 1000 znakov.", + "Submit" : "Pošlji", "Created:" : "Ustvarjeno:", "In reply to" : "V odgovor", "Cancel reply" : "Prekliči odgovor", "Reply" : "Odgovori", "Update" : "Posodobi", + "Mark as done" : "Označi kot končano", + "Mark as not done" : "Označi kot Ni končano", "Write a description …" : "Vpišite opis ...", "Description" : "Opis", "(Unsaved)" : "(neshranjeno)", @@ -237,7 +245,6 @@ "Add due date" : "Dodaj datum preteka", "Choose a date" : "Izbor datuma", "Remove due date" : "Odstrani datum preteka", - "Mark as done" : "Označi kot končano", "Due at:" : "Poteče:", "Not done" : "Ni končano", "Unarchive card" : "Povrni nalogo", @@ -253,9 +260,7 @@ "Edit title" : "Uredi naslov", "Assign to me" : "Nalogo dodeli meni", "Unassign myself" : "Odstrani me z naloge", - "Mark as not done" : "Označi kot Ni končano", "Delete card" : "Izbriši nalogo", - "seconds ago" : "pred nekaj sekundami", "All boards" : "Vse zbirke", "Archived boards" : "Arhivirane zbirke", "Shared with you" : "V souporabi z vami", @@ -315,6 +320,7 @@ "The card \"%s\" on \"%s\" has reached its due date." : "Naloga »%s« na »%s« je dosegla datum preteka.", "No participants found" : "Ni zaznanih udeleženev", "Save" : "Shrani", + "seconds ago" : "pred nekaj sekundami", "Today" : "Danes", "Tomorrow" : "Jutri", "No due" : "Ni datuma preteka" diff --git a/l10n/sq.js b/l10n/sq.js index 687e68b113..83f337d72b 100644 --- a/l10n/sq.js +++ b/l10n/sq.js @@ -31,6 +31,7 @@ OC.L10N.register( "Tags" : "Etiketa", "Activity" : "Aktiviteti", "Undo" : "Ktheje pas", + "Hours" : "Orët", "Can edit" : "Can edit", "Can share" : "Mund të ndaj", "Owner" : "Zotëruesi", @@ -39,6 +40,7 @@ OC.L10N.register( "Members" : "Anëtar", "Download" : "Shkarko", "Comments" : "Komentet", + "Submit" : "Dërgo", "Created:" : "Krijuar:", "Reply" : "Përgjigju", "Update" : "Përditëso", @@ -47,7 +49,6 @@ OC.L10N.register( "Select Date" : "Zgjidhni Datën", "Remove due date" : "Hiq datën e mbarimit", "(group)" : "(grup)", - "seconds ago" : "sekonda më parë", "Archived boards" : "Borde të arkivuara", "Shared with you" : "E ndarë me ju", "Board details" : "Detajet e Tabeles ", @@ -64,6 +65,7 @@ OC.L10N.register( "Modified" : "Modifikuar ", "Share" : "Shpërndaje", "Save" : "Ruaj", + "seconds ago" : "sekonda më parë", "Today" : "Sot", "Tomorrow" : "Nesër" }, diff --git a/l10n/sq.json b/l10n/sq.json index 9a5b88f2a3..a5ff618b11 100644 --- a/l10n/sq.json +++ b/l10n/sq.json @@ -29,6 +29,7 @@ "Tags" : "Etiketa", "Activity" : "Aktiviteti", "Undo" : "Ktheje pas", + "Hours" : "Orët", "Can edit" : "Can edit", "Can share" : "Mund të ndaj", "Owner" : "Zotëruesi", @@ -37,6 +38,7 @@ "Members" : "Anëtar", "Download" : "Shkarko", "Comments" : "Komentet", + "Submit" : "Dërgo", "Created:" : "Krijuar:", "Reply" : "Përgjigju", "Update" : "Përditëso", @@ -45,7 +47,6 @@ "Select Date" : "Zgjidhni Datën", "Remove due date" : "Hiq datën e mbarimit", "(group)" : "(grup)", - "seconds ago" : "sekonda më parë", "Archived boards" : "Borde të arkivuara", "Shared with you" : "E ndarë me ju", "Board details" : "Detajet e Tabeles ", @@ -62,6 +63,7 @@ "Modified" : "Modifikuar ", "Share" : "Shpërndaje", "Save" : "Ruaj", + "seconds ago" : "sekonda më parë", "Today" : "Sot", "Tomorrow" : "Nesër" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/l10n/sr.js b/l10n/sr.js index 2d27088cbb..7459b53934 100644 --- a/l10n/sr.js +++ b/l10n/sr.js @@ -216,6 +216,11 @@ OC.L10N.register( "Deleted lists" : "Обрисани спискови", "Undo" : "Опозови", "Deleted cards" : "Обрисане картице", + "Hours" : "Сати", + "Days" : "Дана", + "Weeks" : "Недеља", + "Months" : "Месеци", + "No cards yet" : "Још нема картица", "Failed to create share with {displayName}" : "Грешка у прављењу дељења са {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Да ли сте сигурни да кориснику {user} пренесете таблу {title}?", "Transfer the board." : "Пренос табле.", @@ -268,11 +273,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Нема још коментара. Започните дискусију!", "The comment cannot be empty." : "Коментар не може да буде празан.", "The comment cannot be longer than 1000 characters." : "Коментар не може да има преко 1000 карактера.", + "Submit" : "Пошаљи", "Created:" : "Направљен:", "In reply to" : "Као одговор на", "Cancel reply" : "Откажи одговор", "Reply" : "Одговори", "Update" : "Ажурирај", + "Mark as done" : "Означи као завршен", + "Mark as not done" : "Означи да није завршена", "Write a description …" : "Напишите опис ...", "Could not save description" : "Не може да се сачува опис", "Description" : "Опис", @@ -297,7 +305,6 @@ OC.L10N.register( "Add due date" : "Додај датум доспећа", "Choose a date" : "Изаберите датум", "Remove due date" : "Уклони рок", - "Mark as done" : "Означи као завршен", "Due at:" : "Рок завршетка:", "Not done" : "Није завршено", "Unarchive card" : "Врати картицу из архиве", @@ -314,9 +321,7 @@ OC.L10N.register( "Edit title" : "Измени наслов", "Assign to me" : "Додели мени", "Unassign myself" : "Склони са мене", - "Mark as not done" : "Означи да није завршена", "Delete card" : "Обриши картицу", - "seconds ago" : "пре неколико секунди", "All boards" : "Све табле", "Archived boards" : "Архивиране табле", "Shared with you" : "Дељено са Вама", @@ -403,6 +408,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Траже се корисници, групе и тимови…", "No participants found" : "Нема нађених учесника", "Save" : "Сачувај", + "seconds ago" : "пре неколико секунди", "Today" : "Данас", "Tomorrow" : "сутра", "No due" : "Нема рокова" diff --git a/l10n/sr.json b/l10n/sr.json index 3e7abac344..b08b16d9f4 100644 --- a/l10n/sr.json +++ b/l10n/sr.json @@ -214,6 +214,11 @@ "Deleted lists" : "Обрисани спискови", "Undo" : "Опозови", "Deleted cards" : "Обрисане картице", + "Hours" : "Сати", + "Days" : "Дана", + "Weeks" : "Недеља", + "Months" : "Месеци", + "No cards yet" : "Још нема картица", "Failed to create share with {displayName}" : "Грешка у прављењу дељења са {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Да ли сте сигурни да кориснику {user} пренесете таблу {title}?", "Transfer the board." : "Пренос табле.", @@ -266,11 +271,14 @@ "No comments yet. Begin the discussion!" : "Нема још коментара. Започните дискусију!", "The comment cannot be empty." : "Коментар не може да буде празан.", "The comment cannot be longer than 1000 characters." : "Коментар не може да има преко 1000 карактера.", + "Submit" : "Пошаљи", "Created:" : "Направљен:", "In reply to" : "Као одговор на", "Cancel reply" : "Откажи одговор", "Reply" : "Одговори", "Update" : "Ажурирај", + "Mark as done" : "Означи као завршен", + "Mark as not done" : "Означи да није завршена", "Write a description …" : "Напишите опис ...", "Could not save description" : "Не може да се сачува опис", "Description" : "Опис", @@ -295,7 +303,6 @@ "Add due date" : "Додај датум доспећа", "Choose a date" : "Изаберите датум", "Remove due date" : "Уклони рок", - "Mark as done" : "Означи као завршен", "Due at:" : "Рок завршетка:", "Not done" : "Није завршено", "Unarchive card" : "Врати картицу из архиве", @@ -312,9 +319,7 @@ "Edit title" : "Измени наслов", "Assign to me" : "Додели мени", "Unassign myself" : "Склони са мене", - "Mark as not done" : "Означи да није завршена", "Delete card" : "Обриши картицу", - "seconds ago" : "пре неколико секунди", "All boards" : "Све табле", "Archived boards" : "Архивиране табле", "Shared with you" : "Дељено са Вама", @@ -401,6 +406,7 @@ "Searching for users, groups and teams …" : "Траже се корисници, групе и тимови…", "No participants found" : "Нема нађених учесника", "Save" : "Сачувај", + "seconds ago" : "пре неколико секунди", "Today" : "Данас", "Tomorrow" : "сутра", "No due" : "Нема рокова" diff --git a/l10n/sr@latin.js b/l10n/sr@latin.js index 7df2e52c21..9145a6c22f 100644 --- a/l10n/sr@latin.js +++ b/l10n/sr@latin.js @@ -27,6 +27,7 @@ OC.L10N.register( "Tags" : "Oznake", "Activity" : "Aktivnost", "Undo" : "Opozovi", + "No cards yet" : "Još nema kartica", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Vlasnik", @@ -38,7 +39,6 @@ OC.L10N.register( "Description" : "Opis", "Archive card" : "Arhiviraj karticu", "Delete card" : "Obriši karticu", - "seconds ago" : "pre nekoliko sekundi", "Shared with you" : "Shared with you", "Edit board" : "Izmeni tablu", "Archive board" : "Arhiviraj tablu", @@ -48,6 +48,7 @@ OC.L10N.register( "Due date" : "Rok", "Share" : "Podeli", "Save" : "Sačuvaj", + "seconds ago" : "pre nekoliko sekundi", "Today" : "Danas" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/l10n/sr@latin.json b/l10n/sr@latin.json index da48d35fc1..25c903dd32 100644 --- a/l10n/sr@latin.json +++ b/l10n/sr@latin.json @@ -25,6 +25,7 @@ "Tags" : "Oznake", "Activity" : "Aktivnost", "Undo" : "Opozovi", + "No cards yet" : "Još nema kartica", "Can edit" : "Can edit", "Can share" : "Can share", "Owner" : "Vlasnik", @@ -36,7 +37,6 @@ "Description" : "Opis", "Archive card" : "Arhiviraj karticu", "Delete card" : "Obriši karticu", - "seconds ago" : "pre nekoliko sekundi", "Shared with you" : "Shared with you", "Edit board" : "Izmeni tablu", "Archive board" : "Arhiviraj tablu", @@ -46,6 +46,7 @@ "Due date" : "Rok", "Share" : "Podeli", "Save" : "Sačuvaj", + "seconds ago" : "pre nekoliko sekundi", "Today" : "Danas" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" } \ No newline at end of file diff --git a/l10n/sv.js b/l10n/sv.js index bd5e2be70f..bdc160f9d8 100644 --- a/l10n/sv.js +++ b/l10n/sv.js @@ -3,14 +3,14 @@ OC.L10N.register( { "You have created a new board {board}" : "Du har skapat en ny tavla {board}", "{user} has created a new board {board}" : "{user} har skapat en ny tavla {board}", - "You have deleted the board {board}" : "Du har raderat tavlan {board}", - "{user} has deleted the board {board}" : "{user} har raderat tavlan {board}", + "You have deleted the board {board}" : "Du har tagit bort tavlan {board}", + "{user} has deleted the board {board}" : "{user} har tagit bort tavlan {board}", "You have restored the board {board}" : "Du har återställt tavlan {board}", "{user} has restored the board {board}" : "{user} har återställt tavlan {board}", "You have shared the board {board} with {acl}" : "Du har delat tavlan {board} med {acl}", "{user} has shared the board {board} with {acl}" : "{user} har delat tavlan {board} med {acl}", - "You have removed {acl} from the board {board}" : "Du har raderat {acl} från tavlan {board}", - "{user} has removed {acl} from the board {board}" : "{user} har raderat {acl} från tavlan {board}", + "You have removed {acl} from the board {board}" : "Du har tagit bort {acl} från tavlan {board}", + "{user} has removed {acl} from the board {board}" : "{user} har tagit bort {acl} från tavlan {board}", "You have renamed the board {before} to {board}" : "Du har bytt namn på tavlan {before} till {board}", "{user} has renamed the board {before} to {board}" : "{user} har bytt namn på tavlan {before} till {board}", "You have archived the board {board}" : "Du har arkiverat tavlan {board}", @@ -21,52 +21,52 @@ OC.L10N.register( "{user} has created a new list {stack} on board {board}" : "{user} har skapat en ny lista {stack} på tavlan {board}", "You have renamed list {before} to {stack} on board {board}" : "Du har bytt namn på listan {before} till {stack} på tavlan {board}", "{user} has renamed list {before} to {stack} on board {board}" : "{user} har bytt namn på listan {before} till {stack} på tavlan {board}", - "You have deleted list {stack} on board {board}" : "Du har raderat listan {stack} på tavlan {board}", - "{user} has deleted list {stack} on board {board}" : "{user} har raderat listan {stack} på tavlan {board}", + "You have deleted list {stack} on board {board}" : "Du har tagit bort listan {stack} på tavlan {board}", + "{user} has deleted list {stack} on board {board}" : "{user} har tagit bort listan {stack} på tavlan {board}", "You have created card {card} in list {stack} on board {board}" : "Du har skapat kortet {card} i listan {stack} på tavlan {board}", "{user} has created card {card} in list {stack} on board {board}" : "{user} har skapat kortet {card} i listan {stack} på tavlan {board}", - "You have deleted card {card} in list {stack} on board {board}" : "Du har raderat kortet {card} i listan {stack} på tavlan {board}", - "{user} has deleted card {card} in list {stack} on board {board}" : "{user} har raderat kortet {card} i listan {stack} på tavlan {board}", + "You have deleted card {card} in list {stack} on board {board}" : "Du har tagit bort kortet {card} i listan {stack} på tavlan {board}", + "{user} has deleted card {card} in list {stack} on board {board}" : "{user} har tagit bort kortet {card} i listan {stack} på tavlan {board}", "You have renamed the card {before} to {card}" : "Du har bytt namn på kortet {before} till {card}", "{user} has renamed the card {before} to {card}" : "{user} har bytt namn på kortet {before} till {card}", - "You have added a description to card {card} in list {stack} on board {board}" : "Du har lagt till en beskrivning till kortet {card} i listan {stack} på tavlan {board}", - "{user} has added a description to card {card} in list {stack} on board {board}" : "{user} har lagt till en beskrivning till kortet {card} i listan {stack} på tavlan {board}", + "You have added a description to card {card} in list {stack} on board {board}" : "Du har lagt till en beskrivning av kortet {card} i listan {stack} på tavlan {board}", + "{user} has added a description to card {card} in list {stack} on board {board}" : "{user} har lagt till en beskrivning av kortet {card} i listan {stack} på tavlan {board}", "You have updated the description of card {card} in list {stack} on board {board}" : "Du har uppdaterat beskrivningen för kortet {card} i listan {stack} på tavlan {board}", "{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} har uppdaterat beskrivningen för kortet {card} i listan {stack} på tavlan {board}", "You have archived card {card} in list {stack} on board {board}" : "Du har arkiverat kortet {card} i listan {stack} på tavlan {board}", "{user} has archived card {card} in list {stack} on board {board}" : "{user} har arkiverat kortet {card} i listan {stack} på tavlan {board}", "You have unarchived card {card} in list {stack} on board {board}" : "Du har avarkiverat kortet {card} i listan {stack} på tavlan {board}", "{user} has unarchived card {card} in list {stack} on board {board}" : "{user} har avarkiverat kortet {card} i listan {stack} på tavlan {board}", - "You have marked the card {card} as done in list {stack} on board {board}" : "Du har markerat kortet {card} som gjord i listan {stack} på tavlan {board}", - "{user} has marked card {card} as done in list {stack} on board {board}" : "{user} har markerat kortet {card} som gjord i listan {stack} på tavlan {board}", - "You have marked the card {card} as undone in list {stack} on board {board}" : "Du har markerat kortet {card} som ogjord i listan {stack} på tavlan {board}", - "{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} har markerat kortet {card} som ogjord i listan {stack} på tavlan {board}", + "You have marked the card {card} as done in list {stack} on board {board}" : "Du har markerat kortet {card} som klart i listan {stack} på tavlan {board}", + "{user} has marked card {card} as done in list {stack} on board {board}" : "{user} har markerat kortet {card} som klart i listan {stack} på tavlan {board}", + "You have marked the card {card} as undone in list {stack} on board {board}" : "Du har markerat kortet {card} som inte slutfört i listan {stack} på tavlan {board}", + "{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} har markerat kortet {card} som inte slutfört i listan {stack} på tavlan {board}", "You have removed the due date of card {card}" : "Du har tagit bort förfallodatum för kortet {card}", - "{user} has removed the due date of card {card}" : "{user} tagit bort förfallodatum för kortet {card}", + "{user} has removed the due date of card {card}" : "{user} har tagit bort förfallodatumet för kortet {card}", "You have set the due date of card {card} to {after}" : "Du har satt förfallodatum för kortet {card} till {after}", "{user} has set the due date of card {card} to {after}" : "{user} har satt förfallodatum för kortet {card} till {after}", "You have updated the due date of card {card} to {after}" : "Du har uppdaterat förfallodatum för kortet {card} till {after}", "{user} has updated the due date of card {card} to {after}" : "{user} har uppdaterat förfallodatum för kortet {card} till {after}", - "You have added the tag {label} to card {card} in list {stack} on board {board}" : "Du har lagt till taggen {label} till kortet {card} i listan {stack} på tavlan {board}", - "{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} har lagt till taggen {label} till kortet {card} i listan {stack} på tavlan {board}", - "You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Du har raderat taggen {label} från kortet {card} i listan {stack} på tavlan {board}", - "{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} har raderat taggen {label} från kortet {card} i listan {stack} på tavlan {board}", - "You have assigned {assigneduser} to card {card} on board {board}" : "Du har tilldelat {assigneduser} till kortet {card} på tavlan {board}", - "{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} har tilldelat {assigneduser} till kortet {card} på tavlan {board}", + "You have added the tag {label} to card {card} in list {stack} on board {board}" : "Du har lagt till taggen {label} på kortet {card} i listan {stack} på tavlan {board}", + "{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} har lagt till taggen {label} på kortet {card} i listan {stack} på tavlan {board}", + "You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Du har tagit bort taggen {label} från kortet {card} i listan {stack} på tavlan {board}", + "{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} har tagit bort taggen {label} från kortet {card} i listan {stack} på tavlan {board}", + "You have assigned {assigneduser} to card {card} on board {board}" : "Du har tilldelat kortet {card} på tavlan {board} till {assigneduser}", + "{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} har tilldelat kortet {card} på tavlan {board} till {assigneduser}", "You have unassigned {assigneduser} from card {card} on board {board}" : "Du har tagit bort tilldelningen för {assigneduser} från kortet {card} på tavlan {board}", "{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} har tagit bort tilldelningen för {assigneduser} från kortet {card} på tavlan {board}", "You have moved the card {card} from list {stackBefore} to {stack}" : "Du har flyttat kortet {card} från listan {stackBefore} till {stack}", "{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} har flyttat kortet {card} från listan {stackBefore} till {stack}", - "You have added the attachment {attachment} to card {card}" : "Du har lagt till bilagan {attachment} till kortet {card}", - "{user} has added the attachment {attachment} to card {card}" : "{user} har lagt till bilagan {attachment} till kortet {card}", + "You have added the attachment {attachment} to card {card}" : "Du har lagt till bilagan {attachment} på kortet {card}", + "{user} has added the attachment {attachment} to card {card}" : "{user} har lagt till bilagan {attachment} på kortet {card}", "You have updated the attachment {attachment} on card {card}" : "Du har uppdaterat bilagan {attachment} på kortet {card}", "{user} has updated the attachment {attachment} on card {card}" : "{user} har uppdaterat bilagan {attachment} på kortet {card}", - "You have deleted the attachment {attachment} from card {card}" : "Du har raderat bilagan {attachment} från kortet {card}", - "{user} has deleted the attachment {attachment} from card {card}" : "{user} har raderat bilagan {attachment} från kortet {card}", + "You have deleted the attachment {attachment} from card {card}" : "Du har tagit bort bilagan {attachment} från kortet {card}", + "{user} has deleted the attachment {attachment} from card {card}" : "{user} har tagit bort bilagan {attachment} från kortet {card}", "You have restored the attachment {attachment} to card {card}" : "Du har återställt bilagan {attachment} till kortet {card}", "{user} has restored the attachment {attachment} to card {card}" : "{user} har återställt bilagan {attachment} till kortet {card}", - "You have commented on card {card}" : "Du har kommenterat på kortet {card}", - "{user} has commented on card {card}" : "{user} har kommenterat på kortet {card}", + "You have commented on card {card}" : "Du har kommenterat kortet {card}", + "{user} has commented on card {card}" : "{user} har kommenterat kortet {card}", "Deck" : "Deck", "Changes in the Deck app" : "Ändringar i Deck-appen", "A board, list or card was changed" : "En tavla, lista eller kort ändrades", @@ -78,34 +78,34 @@ OC.L10N.register( "The file was only partially uploaded" : "Filen var endast delvis uppladdad", "No file was uploaded" : "Ingen fil laddades upp", "Missing a temporary folder" : "Saknas en tillfällig mapp", - "Could not write file to disk" : "Kunde inte skriva fil till disk", + "Could not write file to disk" : "Det gick inte att skriva filen till disken", "A PHP extension stopped the file upload" : "Ett PHP-tillägg stoppade filuppladdningen", "No file uploaded or file size exceeds maximum of %s" : "Ingen fil uppladdad eller filstorleken överstiger max %s", "Invalid file type. Only JSON files are allowed." : "Ogiltig filtyp. Endast JSON-filer är tillåtna.", "Invalid JSON data" : "Ogiltig JSON-data", - "Failed to import board" : "Kunde inte importera tavla", - "Cards due today" : "Kort som går ut idag", - "Cards due tomorrow" : "Kort som går ut imorgon", + "Failed to import board" : "Det gick inte att importera tavlan", + "Cards due today" : "Kort som förfaller idag", + "Cards due tomorrow" : "Kort som förfaller i morgon", "Upcoming cards" : "Kommande kort", "Load more" : "Ladda mer", "Welcome to Nextcloud Deck!" : "Välkommen till Nextcloud Deck!", "The card \"%s\" on \"%s\" has been assigned to you by %s." : "Kortet \"%s\" på \"%s\" har tilldelats dig av %s.", "{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} har tilldelat kortet {deck-card} från {deck-board} till dig.", - "The card \"%1$s\" on \"%2$s\" has reached its due date." : "Kortet \"%1$s\" på \"%2$s\" har nått sitt slutdatum.", - "The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} från {deck-board} har nått sitt slutdatum.", + "The card \"%1$s\" on \"%2$s\" has reached its due date." : "Kortet \"%1$s\" på \"%2$s\" har nått sitt förfallodatum.", + "The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} på {deck-board} har nått sitt förfallodatum.", "%s has mentioned you in a comment on \"%s\"." : "%s har nämnt dig i en kommentar på \"%s\".", - "{user} has mentioned you in a comment on {deck-card}." : "{user} har nämnt dig i en kommentar i {deck-card}.", + "{user} has mentioned you in a comment on {deck-card}." : "{user} har nämnt dig i en kommentar på {deck-card}.", "The board \"%s\" has been shared with you by %s." : "Tavlan \"%s\" har delats med dig av %s.", "{user} has shared {deck-board} with you." : "{user} har delat {deck-board} med dig.", "The remote board %1$s has been shared with you by %2$s" : "Den externa tavlan %1$s har delats med dig av %2$s", "Deck board" : "Deck-tavla", "Owned by %1$s" : "Ägd av %1$s", - "Deck boards, cards and comments" : "Deck tavlor, kort och kommentarer", + "Deck boards, cards and comments" : "Deck-tavlor, kort och kommentarer", "From %1$s, in %2$s/%3$s, owned by %4$s" : "Från %1$s, i %2$s/%3$s, ägd av %4$s", - "Create a new deck card" : "Skapa ett nytt deck-kort", - "Card comments" : "Kort kommentarer", + "Create a new deck card" : "Skapa ett nytt Deck-kort", + "Card comments" : "Kortkommentarer", "%s on %s" : "%s på %s", - "Deck boards and cards" : "Deck tavlor och kort", + "Deck boards and cards" : "Deck-tavlor och kort", "No data was provided to create an attachment." : "Inga data lämnades för att skapa en bilaga.", "Finished" : "Slutförd", "To review" : "Att granska", @@ -122,15 +122,16 @@ OC.L10N.register( "3. Apply rich formatting and link content" : "3. Använd rik formatering och länka innehåll", "4. Share, comment and collaborate!" : "4. Dela, kommentera och samarbeta!", "Create your first card!" : "Skapa ditt första kort!", - "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Den här kommentaren har mer än %s tecken.\nTillagd som en bilaga till kortet men namnet %s.\nÅtkomlig via URL: %s.", + "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Kommentaren innehåller fler än %s tecken.\nDen lades till som en bilaga på kortet med namnet %s.\nDen är tillgänglig på webbadressen %s.", "Attachments" : "Bilagor", "File" : "Fil", "date" : "datum", "Card not found" : "Kortet hittades inte", "Path is already shared with this card" : "Sökvägen är redan delad med detta kort", "Invalid date, date format must be YYYY-MM-DD" : "Ogiltigt datum, måste anges: ÅÅÅÅ-MM-DD", - "Personal planning and team project organization" : "Personlig planering och projekthantering för teams", - "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 är en kanban-liknande organiseringsverktyg för personlig planering samt projektorganisering för arbetsgrupper integrerade med Nextcloud.\n\n\n- 📥 Lägg till uppgifter på kort och lägg de i ordning\n- 📄 Skriv anteckningar i Markdown\n- 🔖 Tilldela etiketter för bättre organisering\n- 👥 Dela med arbetsgruppen, vänner eller familj\n- 📎 Bifoga filer och bädda in dem i Markdown-anteckningarna\n- 💬 Diskutera med arbetsgruppen med hjälp av kommentarer\n- ⚡ Håll koll på ändringar i aktivitetsflödet\n- 🚀 Få struktur på dina projekt", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Alla tavlor som ägs av dig inklusive listor, kort, etiketter, tilldelningar och kommentarer", + "Personal planning and team project organization" : "Personlig planering och projektorganisation för team", + "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 är ett organisationsverktyg i kanbanstil för personlig planering och projektarbete i team, integrerat med Nextcloud.\n\n\n- 📥 Lägg till uppgifter på kort och ordna dem\n- 📄 Skriv ytterligare anteckningar i Markdown\n- 🔖 Tilldela etiketter för bättre organisation\n- 👥 Dela med teamet, vänner eller familj\n- 📎 Bifoga filer och bädda in dem i Markdown-beskrivningen\n- 💬 Diskutera med teamet genom kommentarer\n- ⚡ Följ ändringar i aktivitetsflödet\n- 🚀 Organisera projektet", "Add board" : "Lägg till tavla", "Card details" : "Kortdetaljer", "Select the board to link to a project" : "Välj tavla att länka till ett projekt", @@ -150,12 +151,12 @@ OC.L10N.register( "Drop your files to upload" : "Släpp dina filer för att ladda upp", "File already exists" : "Filen finns redan", "A file with the name {filename} already exists." : "En fil med namnet {filename} finns redan.", - "Do you want to overwrite it?" : "Vill du skriva över det?", + "Do you want to overwrite it?" : "Vill du skriva över den?", "Overwrite file" : "Skriv över filen", "Keep existing file" : "Behåll nuvarande fil", "Add card" : "Lägg till kort", "Archived cards" : "Arkiverade kort", - "Add list" : "Lägg till lista...", + "Add list" : "Lägg till lista", "List name" : "Namn på lista", "Active filters" : "Aktiva filter", "Apply filter" : "Tillämpa filter", @@ -164,17 +165,19 @@ OC.L10N.register( "Unassigned" : "Ej tilldelad", "Filter by status" : "Filtrera efter status", "Open and completed" : "Öppen och klar", - "Open" : "Öppna", + "Open" : "Öppen", "Completed" : "Slutförd", "Filter by due date" : "Filtrera efter förfallodatum", "Overdue" : "Förfallen", "Next 24 hours" : "Nästa 24 timmar", "Next 7 days" : "Nästa 7 dagar", "Next 30 days" : "Nästa 30 dagar", - "No due date" : "Inget slutdatum", + "No due date" : "Inget förfallodatum", "Clear filter" : "Rensa filter", - "View Modes" : "Visa lägen", - "Toggle View Modes" : "Växla visningslägen", + "View Modes" : "Visningslägen", + "Toggle View Modes" : "Växla visningsläge", + "Kanban view" : "Kanban-vy", + "Gantt view" : "Gantt-vy", "Hide archived cards" : "Göm arkiverade kort", "Show archived cards" : "Visa arkiverade kort", "Toggle compact mode" : "Växla kompakt läge", @@ -188,12 +191,12 @@ OC.L10N.register( "Appearance" : "Utseende", "Show card ID badge" : "Visa kortets ID-märke", "Show boards in calendar/tasks" : "Visa tavlor i kalender / uppgifter", - "Admin settings" : "Admin-inställningar", + "Admin settings" : "Administratörsinställningar", "Limit board creation to some groups" : "Begränsa skapandet av tavlor till vissa grupper", "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Användare utanför dessa grupper kommer inte att kunna skapa sina egna tavlor, men kommer fortfarande att kunna arbeta på tavlor som har delats med dem.", "Enable federation" : "Aktivera federering", - "Board actions" : "Tavelåtgärder", - "Scroll sideways" : "Skrolla i sidled", + "Board actions" : "Tavlåtgärder", + "Scroll sideways" : "Rulla i sidled", "Navigate between cards" : "Navigera mellan korten", "Close card details" : "Stäng kortdetaljer", "Search" : "Sök", @@ -217,23 +220,30 @@ OC.L10N.register( "Activity" : "Aktivitet", "Deleted lists" : "Borttagna listor", "Undo" : "Ångra", - "Deleted cards" : "Ta bort kort", - "Failed to create share with {displayName}" : "Kunde inte skapa delning med {displayName}", - "Are you sure you want to transfer the board {title} to {user}?" : "Är du säker att du vill överföra tavlan {title} till {user}?", + "Deleted cards" : "Borttagna kort", + "Hours" : "Timmar", + "Days" : "Dagar", + "Weeks" : "Veckor", + "Months" : "Månader", + "No cards yet" : "Inga kort än", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Ange ett startdatum och ett förfallodatum på dina kort för att se dem i Gantt-diagrammet", + "Cards without dates ({count})" : "Kort utan datum ({count})", + "Failed to create share with {displayName}" : "Det gick inte att skapa delning med {displayName}", + "Are you sure you want to transfer the board {title} to {user}?" : "Är du säker på att du vill överföra tavlan {title} till {user}?", "Transfer the board." : "Överför tavlan.", "Transfer" : "Överför", "The board has been transferred to {user}" : "Tavlan har överförts till {user}", - "Failed to transfer the board to {user}" : "Kunde inte överföra tavlan till {user}", + "Failed to transfer the board to {user}" : "Det gick inte att överföra tavlan till {user}", "Board owner" : "Tavlans ägare", "(Group)" : "(Grupp)", "(Team)" : "(Team)", - "(remote)" : "(avlägsen)", + "(remote)" : "(fjärr)", "Can edit" : "Kan redigera", "Can share" : "Kan dela", - "Can manage" : "Kan hanter", + "Can manage" : "Kan hantera", "Owner" : "Ägare", "Delete" : "Ta bort", - "List deleted" : "Listan har raderats", + "List deleted" : "Listan har tagits bort", "Edit list title" : "Redigera listans titel", "Archive all cards" : "Arkivera alla kort", "Unarchive all cards" : "Ta ut alla kort ur arkivet", @@ -249,9 +259,9 @@ OC.L10N.register( "Add a new tag" : "Lägg till en ny tagg", "Board name" : "Tavlans namn", "Members" : "Medlemmar", - "Assign to users/groups/team" : "Tilldela till användare/grupper/team", - "Assign a user to this card…" : "Tilldela en användare till det här kortet ...", - "Select a user to assign to this card…" : "Välj en användare att tilldela detta kort...", + "Assign to users/groups/team" : "Tilldela användare, grupper eller team", + "Assign a user to this card…" : "Tilldela en användare till kortet …", + "Select a user to assign to this card…" : "Välj en användare att tilldela kortet …", "File to share" : "Fil att dela", "Invalid path selected" : "Ogiltig sökväg vald", "Upload new files" : "Ladda upp nya filer", @@ -267,26 +277,34 @@ OC.L10N.register( "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Ändrad: {modifiedDate}\nSkapad: {createdDate}\nSkapad av: {owner}", "Modified: {modifiedDate}\nCreated: {createdDate}" : "Ändrad: {modifiedDate}\nSkapad: {createdDate}", "The title cannot be empty." : "Titeln får inte lämnas tom.", - "Cannot close unsaved card!" : "Kan inte stänga osparat kort!", + "Cannot close unsaved card!" : "Det går inte att stänga osparat kort!", "Open in sidebar view" : "Öppna i sidofältet", "Open in bigger view" : "Öppna i större vy", "Comments" : "Kommentarer", - "Failed to load comments" : "Kunde inte ladda kommentarerna.", + "Failed to load comments" : "Det gick inte att läsa in kommentarerna", "No comments yet. Begin the discussion!" : "Inga kommentarer än. Börja diskussionen!", "The comment cannot be empty." : "Kommentaren kan inte vara tom.", "The comment cannot be longer than 1000 characters." : "Kommentaren kan inte vara längre än 1000 tecken.", + "Submit" : "Skicka", "Created:" : "Skapad:", "In reply to" : "Som svar på", "Cancel reply" : "Avbryt svar", "Reply" : "Svara", "Update" : "Uppdatera", - "Write a description …" : "Ange en beskrivning ...", + "Assign dependent cards" : "Tilldela beroende kort", + "Mark as done" : "Markera som klar", + "Mark as not done" : "Markera som ej klar", + "Remove dependency" : "Ta bort beroende", + "Add dependent card" : "Lägg till beroende kort", + "Assign a dependent card…" : "Tilldela ett beroende kort…", + "Select a dependent card…" : "Välj ett beroende kort…", + "Write a description …" : "Skriv en beskrivning …", "The description has been changed by another user." : "Beskrivningen har ändrats av en annan användare", - "Could not save description" : "Kunde inte spara beskrivning", + "Could not save description" : "Det gick inte att spara beskrivningen", "Description" : "Beskrivning", "(Unsaved)" : "(Inte sparad)", "(Saving…)" : "(Sparar…)", - "Formatting help" : "Formatteringshjälp", + "Formatting help" : "Formateringshjälp", "Edit description" : "Ändra beskrivning", "View description" : "Visa beskrivning", "Add Attachment" : "Lägg till bilaga", @@ -300,12 +318,11 @@ OC.L10N.register( "Set due date for this weekend" : "Ställ in förfallodatum för denna helg", "Next week – {timeLocale}" : "Nästa vecka – {timeLocale}", "Set due date for next week" : "Ställ in förfallodatum för nästa vecka", - "Assign a due date to this card…" : "Tilldela ett förfallodatum till detta kort...", - "Set a due date" : "Sätt ett slutdatum", + "Assign a due date to this card…" : "Tilldela kortet ett förfallodatum …", + "Set a due date" : "Ange ett förfallodatum", "Add due date" : "Lägg till förfallodatum", "Choose a date" : "Välj ett datum", - "Remove due date" : "Ta bort slutdatum", - "Mark as done" : "Markera som klar", + "Remove due date" : "Ta bort förfallodatum", "Due at:" : "Förfaller:", "Not done" : "Inte klar", "Unarchive card" : "Avarkivera kort", @@ -314,38 +331,37 @@ OC.L10N.register( "Set a start date" : "Ange startdatum", "Add start date" : "Lägg till startdatum", "Remove start date" : "Ta bort startdatum", - "Assign a tag to this card…" : "Tilldela en tagg till det här kortet ...", - "Select or create a tag…" : "Välj eller skapa en tagg...", + "Assign a tag to this card…" : "Tilldela kortet en tagg …", + "Select or create a tag…" : "Välj eller skapa en tagg …", "Create a new tag:" : "Skapa en ny tagg:", "(group)" : " (grupp)", "{count} comments, {unread} unread" : "{count} kommentarer, {unread} olästa", - "Todo items" : "Att göra saker", + "Todo items" : "Att göra-poster", "Edit card title" : "Ändra korttitel", "Open link" : "Öppna länken", "Card deleted" : "Kortet har raderats", + "Change card color" : "Ändra kortfärg", "Edit title" : "Redigera titel", "Assign to me" : "Tilldela till mig", "Unassign myself" : "Ta bort från mig själv", - "Mark as not done" : "Markera som ej klar", "Delete card" : "Ta bort kort", - "seconds ago" : "sekunder sedan", "All boards" : "Alla tavlor", "Archived boards" : "Arkiverade tavlor", "Shared with you" : "Delad med dig", "Cancel edit" : "Avbryt redigering", "Save board" : "Spara tavla", - "Board {0} deleted" : "Tavla {0} raderad", + "Board {0} deleted" : "Tavlan {0} har tagits bort", "All cards" : "Alla kort", "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 including archived cards." : "Är du säker på att du vill radera tavla {title}? Detta kommer radera all data som tillhör tavlan inklusive arkiverade kort.", + "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Är du säker på att du vill ta bort tavlan {title}? Alla tavlans uppgifter, inklusive arkiverade kort, tas bort.", "Delete the board?" : "Ta bort tavlan?", - "Are you sure you want to leave the board {title}?" : "Är du säker att du vill lämna tavlan {title}?", + "Are you sure you want to leave the board {title}?" : "Är du säker på att du vill lämna tavlan {title}?", "Leave the board?" : "Lämna tavlan?", "Leave" : "Lämna", - "Failed to leave the board" : "Kunde inte lämna tavlan", - "Exporting board..." : "Exporterar tavla...", + "Failed to leave the board" : "Det gick inte att lämna tavlan", + "Exporting board..." : "Exporterar tavlan …", "Board details" : "Taveldetaljer", "Edit board" : "Ändra tavla", "Clone board" : "Kopiera tavla", @@ -359,16 +375,16 @@ OC.L10N.register( "Due date reminders" : "Påminnelser om förfallodatum", "Assigned cards" : "Tilldelade kort", "No notifications" : "Inga aviseringar", - "Delete board" : "Radera tavla", + "Delete board" : "Ta bort tavla", "Leave board" : "Lämna tavla", - "Importing board..." : "Importerar tavla...", + "Importing board..." : "Importerar tavlan …", "Board imported successfully" : "Tavlan har importerats", "Import board" : "Importera tavla", "Clone {boardTitle}" : "Klona {boardTitle}", "Clone cards" : "Klona kort", "Clone assignments" : "Klona tilldelningar", "Clone labels" : "Klona etiketter", - "Clone due dates" : "Klona slutdatum", + "Clone due dates" : "Kopiera förfallodatum", "Advanced options" : "Avancerade inställningar", "Move all cards to the first list" : "Flytta alla kort till den första listan", "Restore archived cards" : "Återställ arkiverade kort", @@ -381,19 +397,19 @@ OC.L10N.register( "Loading filtered view" : "Laddar filtrerad vy", "Search for {searchQuery} in other boards" : "Sök efter {searchQuery} i andra tavlor", "Search for {searchQuery} in all boards" : "Sök efter {searchQuery} i alla tavlor", - "No results found" : "Inga resultat funna", - "Deck board {name}\n* Last modified on {lastMod}" : "Deck tavla {name}\n* Senast ändrad den {lastMod}", + "No results found" : "Inga resultat hittades", + "Deck board {name}\n* Last modified on {lastMod}" : "Deck-tavlan {name}\n* Senast ändrad {lastMod}", "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Skapades {created}\n* Ändrades senast {lastMod}\n* {nbAttachments} bilagor\n* {nbComments} kommentarer", "{nbCards} cards" : "{nbCards} kort", - "Due on {date}" : "Går ut {date}", + "Due on {date}" : "Förfaller {date}", "{stack} in {board}" : "{stack} i {board}", "Click to expand description" : "Klicka för att utöka beskrivningen", "Click to expand comment" : "Klicka för att utöka kommentaren", "Create card" : "Skapa kort", "Create a new card" : "Skapa ett nytt kort", - "Card title" : "Kort-titel", - "Creating the new card …" : "Skapar det nya kortet ...", - "Card \"{card}\" was added to \"{board}\"" : "kortet \"{card}\" lades till i \"{board}\"", + "Card title" : "Korttitel", + "Creating the new card …" : "Skapar det nya kortet …", + "Card \"{card}\" was added to \"{board}\"" : "Kortet \"{card}\" lades till på \"{board}\"", "Open card" : "Öppna kort", "Close" : "Stäng", "No upcoming cards" : "Inga kommande kort", @@ -406,23 +422,24 @@ OC.L10N.register( "Create a card" : "Skapa ett kort", "Message from {author} in {conversationName}" : "Meddelande från {author} i {conversationName}", "Something went wrong" : "Något gick fel", - "Failed to upload {name}" : "Kunde inte ladda upp {name}", - "Maximum file size of {size} exceeded" : "Maximal filstorlek på {size} överskriden", + "Failed to upload {name}" : "Det gick inte att ladda upp {name}", + "Maximum file size of {size} exceeded" : "Den maximala filstorleken på {size} har överskridits", "Assigned users" : "Tilldelade användare", - "Due date" : "Slutdatum", + "Due date" : "Förfallodatum", "Created" : "Skapat", "Modified" : "Ändrad", "Error creating the share" : "Kunde inte skapa delning", "Share with a Deck card" : "Dela med ett Deck-kort", "Share {file} with a Deck card" : "Dela {file} med ett Deck-kort", "Share" : "Dela", - "The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nått sitt slutdatum.", - "Share board with a user, group or team …" : "Dela tavlan med en användare, grupp eller team ...", + "The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nått sitt förfallodatum.", + "Share board with a user, group or team …" : "Dela tavlan med en användare, grupp eller team …", "Searching for users, groups and teams …" : "Söker efter användare, grupper och team …", "No participants found" : "Inga deltagare hittades", "Save" : "Spara", + "seconds ago" : "sekunder sedan", "Today" : "Idag", "Tomorrow" : "Imorgon", - "No due" : "Inget slut" + "No due" : "Inget förfallodatum" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/sv.json b/l10n/sv.json index c421c4caaf..15054c356a 100644 --- a/l10n/sv.json +++ b/l10n/sv.json @@ -1,14 +1,14 @@ { "translations": { "You have created a new board {board}" : "Du har skapat en ny tavla {board}", "{user} has created a new board {board}" : "{user} har skapat en ny tavla {board}", - "You have deleted the board {board}" : "Du har raderat tavlan {board}", - "{user} has deleted the board {board}" : "{user} har raderat tavlan {board}", + "You have deleted the board {board}" : "Du har tagit bort tavlan {board}", + "{user} has deleted the board {board}" : "{user} har tagit bort tavlan {board}", "You have restored the board {board}" : "Du har återställt tavlan {board}", "{user} has restored the board {board}" : "{user} har återställt tavlan {board}", "You have shared the board {board} with {acl}" : "Du har delat tavlan {board} med {acl}", "{user} has shared the board {board} with {acl}" : "{user} har delat tavlan {board} med {acl}", - "You have removed {acl} from the board {board}" : "Du har raderat {acl} från tavlan {board}", - "{user} has removed {acl} from the board {board}" : "{user} har raderat {acl} från tavlan {board}", + "You have removed {acl} from the board {board}" : "Du har tagit bort {acl} från tavlan {board}", + "{user} has removed {acl} from the board {board}" : "{user} har tagit bort {acl} från tavlan {board}", "You have renamed the board {before} to {board}" : "Du har bytt namn på tavlan {before} till {board}", "{user} has renamed the board {before} to {board}" : "{user} har bytt namn på tavlan {before} till {board}", "You have archived the board {board}" : "Du har arkiverat tavlan {board}", @@ -19,52 +19,52 @@ "{user} has created a new list {stack} on board {board}" : "{user} har skapat en ny lista {stack} på tavlan {board}", "You have renamed list {before} to {stack} on board {board}" : "Du har bytt namn på listan {before} till {stack} på tavlan {board}", "{user} has renamed list {before} to {stack} on board {board}" : "{user} har bytt namn på listan {before} till {stack} på tavlan {board}", - "You have deleted list {stack} on board {board}" : "Du har raderat listan {stack} på tavlan {board}", - "{user} has deleted list {stack} on board {board}" : "{user} har raderat listan {stack} på tavlan {board}", + "You have deleted list {stack} on board {board}" : "Du har tagit bort listan {stack} på tavlan {board}", + "{user} has deleted list {stack} on board {board}" : "{user} har tagit bort listan {stack} på tavlan {board}", "You have created card {card} in list {stack} on board {board}" : "Du har skapat kortet {card} i listan {stack} på tavlan {board}", "{user} has created card {card} in list {stack} on board {board}" : "{user} har skapat kortet {card} i listan {stack} på tavlan {board}", - "You have deleted card {card} in list {stack} on board {board}" : "Du har raderat kortet {card} i listan {stack} på tavlan {board}", - "{user} has deleted card {card} in list {stack} on board {board}" : "{user} har raderat kortet {card} i listan {stack} på tavlan {board}", + "You have deleted card {card} in list {stack} on board {board}" : "Du har tagit bort kortet {card} i listan {stack} på tavlan {board}", + "{user} has deleted card {card} in list {stack} on board {board}" : "{user} har tagit bort kortet {card} i listan {stack} på tavlan {board}", "You have renamed the card {before} to {card}" : "Du har bytt namn på kortet {before} till {card}", "{user} has renamed the card {before} to {card}" : "{user} har bytt namn på kortet {before} till {card}", - "You have added a description to card {card} in list {stack} on board {board}" : "Du har lagt till en beskrivning till kortet {card} i listan {stack} på tavlan {board}", - "{user} has added a description to card {card} in list {stack} on board {board}" : "{user} har lagt till en beskrivning till kortet {card} i listan {stack} på tavlan {board}", + "You have added a description to card {card} in list {stack} on board {board}" : "Du har lagt till en beskrivning av kortet {card} i listan {stack} på tavlan {board}", + "{user} has added a description to card {card} in list {stack} on board {board}" : "{user} har lagt till en beskrivning av kortet {card} i listan {stack} på tavlan {board}", "You have updated the description of card {card} in list {stack} on board {board}" : "Du har uppdaterat beskrivningen för kortet {card} i listan {stack} på tavlan {board}", "{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} har uppdaterat beskrivningen för kortet {card} i listan {stack} på tavlan {board}", "You have archived card {card} in list {stack} on board {board}" : "Du har arkiverat kortet {card} i listan {stack} på tavlan {board}", "{user} has archived card {card} in list {stack} on board {board}" : "{user} har arkiverat kortet {card} i listan {stack} på tavlan {board}", "You have unarchived card {card} in list {stack} on board {board}" : "Du har avarkiverat kortet {card} i listan {stack} på tavlan {board}", "{user} has unarchived card {card} in list {stack} on board {board}" : "{user} har avarkiverat kortet {card} i listan {stack} på tavlan {board}", - "You have marked the card {card} as done in list {stack} on board {board}" : "Du har markerat kortet {card} som gjord i listan {stack} på tavlan {board}", - "{user} has marked card {card} as done in list {stack} on board {board}" : "{user} har markerat kortet {card} som gjord i listan {stack} på tavlan {board}", - "You have marked the card {card} as undone in list {stack} on board {board}" : "Du har markerat kortet {card} som ogjord i listan {stack} på tavlan {board}", - "{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} har markerat kortet {card} som ogjord i listan {stack} på tavlan {board}", + "You have marked the card {card} as done in list {stack} on board {board}" : "Du har markerat kortet {card} som klart i listan {stack} på tavlan {board}", + "{user} has marked card {card} as done in list {stack} on board {board}" : "{user} har markerat kortet {card} som klart i listan {stack} på tavlan {board}", + "You have marked the card {card} as undone in list {stack} on board {board}" : "Du har markerat kortet {card} som inte slutfört i listan {stack} på tavlan {board}", + "{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} har markerat kortet {card} som inte slutfört i listan {stack} på tavlan {board}", "You have removed the due date of card {card}" : "Du har tagit bort förfallodatum för kortet {card}", - "{user} has removed the due date of card {card}" : "{user} tagit bort förfallodatum för kortet {card}", + "{user} has removed the due date of card {card}" : "{user} har tagit bort förfallodatumet för kortet {card}", "You have set the due date of card {card} to {after}" : "Du har satt förfallodatum för kortet {card} till {after}", "{user} has set the due date of card {card} to {after}" : "{user} har satt förfallodatum för kortet {card} till {after}", "You have updated the due date of card {card} to {after}" : "Du har uppdaterat förfallodatum för kortet {card} till {after}", "{user} has updated the due date of card {card} to {after}" : "{user} har uppdaterat förfallodatum för kortet {card} till {after}", - "You have added the tag {label} to card {card} in list {stack} on board {board}" : "Du har lagt till taggen {label} till kortet {card} i listan {stack} på tavlan {board}", - "{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} har lagt till taggen {label} till kortet {card} i listan {stack} på tavlan {board}", - "You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Du har raderat taggen {label} från kortet {card} i listan {stack} på tavlan {board}", - "{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} har raderat taggen {label} från kortet {card} i listan {stack} på tavlan {board}", - "You have assigned {assigneduser} to card {card} on board {board}" : "Du har tilldelat {assigneduser} till kortet {card} på tavlan {board}", - "{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} har tilldelat {assigneduser} till kortet {card} på tavlan {board}", + "You have added the tag {label} to card {card} in list {stack} on board {board}" : "Du har lagt till taggen {label} på kortet {card} i listan {stack} på tavlan {board}", + "{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} har lagt till taggen {label} på kortet {card} i listan {stack} på tavlan {board}", + "You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Du har tagit bort taggen {label} från kortet {card} i listan {stack} på tavlan {board}", + "{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} har tagit bort taggen {label} från kortet {card} i listan {stack} på tavlan {board}", + "You have assigned {assigneduser} to card {card} on board {board}" : "Du har tilldelat kortet {card} på tavlan {board} till {assigneduser}", + "{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} har tilldelat kortet {card} på tavlan {board} till {assigneduser}", "You have unassigned {assigneduser} from card {card} on board {board}" : "Du har tagit bort tilldelningen för {assigneduser} från kortet {card} på tavlan {board}", "{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} har tagit bort tilldelningen för {assigneduser} från kortet {card} på tavlan {board}", "You have moved the card {card} from list {stackBefore} to {stack}" : "Du har flyttat kortet {card} från listan {stackBefore} till {stack}", "{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} har flyttat kortet {card} från listan {stackBefore} till {stack}", - "You have added the attachment {attachment} to card {card}" : "Du har lagt till bilagan {attachment} till kortet {card}", - "{user} has added the attachment {attachment} to card {card}" : "{user} har lagt till bilagan {attachment} till kortet {card}", + "You have added the attachment {attachment} to card {card}" : "Du har lagt till bilagan {attachment} på kortet {card}", + "{user} has added the attachment {attachment} to card {card}" : "{user} har lagt till bilagan {attachment} på kortet {card}", "You have updated the attachment {attachment} on card {card}" : "Du har uppdaterat bilagan {attachment} på kortet {card}", "{user} has updated the attachment {attachment} on card {card}" : "{user} har uppdaterat bilagan {attachment} på kortet {card}", - "You have deleted the attachment {attachment} from card {card}" : "Du har raderat bilagan {attachment} från kortet {card}", - "{user} has deleted the attachment {attachment} from card {card}" : "{user} har raderat bilagan {attachment} från kortet {card}", + "You have deleted the attachment {attachment} from card {card}" : "Du har tagit bort bilagan {attachment} från kortet {card}", + "{user} has deleted the attachment {attachment} from card {card}" : "{user} har tagit bort bilagan {attachment} från kortet {card}", "You have restored the attachment {attachment} to card {card}" : "Du har återställt bilagan {attachment} till kortet {card}", "{user} has restored the attachment {attachment} to card {card}" : "{user} har återställt bilagan {attachment} till kortet {card}", - "You have commented on card {card}" : "Du har kommenterat på kortet {card}", - "{user} has commented on card {card}" : "{user} har kommenterat på kortet {card}", + "You have commented on card {card}" : "Du har kommenterat kortet {card}", + "{user} has commented on card {card}" : "{user} har kommenterat kortet {card}", "Deck" : "Deck", "Changes in the Deck app" : "Ändringar i Deck-appen", "A board, list or card was changed" : "En tavla, lista eller kort ändrades", @@ -76,34 +76,34 @@ "The file was only partially uploaded" : "Filen var endast delvis uppladdad", "No file was uploaded" : "Ingen fil laddades upp", "Missing a temporary folder" : "Saknas en tillfällig mapp", - "Could not write file to disk" : "Kunde inte skriva fil till disk", + "Could not write file to disk" : "Det gick inte att skriva filen till disken", "A PHP extension stopped the file upload" : "Ett PHP-tillägg stoppade filuppladdningen", "No file uploaded or file size exceeds maximum of %s" : "Ingen fil uppladdad eller filstorleken överstiger max %s", "Invalid file type. Only JSON files are allowed." : "Ogiltig filtyp. Endast JSON-filer är tillåtna.", "Invalid JSON data" : "Ogiltig JSON-data", - "Failed to import board" : "Kunde inte importera tavla", - "Cards due today" : "Kort som går ut idag", - "Cards due tomorrow" : "Kort som går ut imorgon", + "Failed to import board" : "Det gick inte att importera tavlan", + "Cards due today" : "Kort som förfaller idag", + "Cards due tomorrow" : "Kort som förfaller i morgon", "Upcoming cards" : "Kommande kort", "Load more" : "Ladda mer", "Welcome to Nextcloud Deck!" : "Välkommen till Nextcloud Deck!", "The card \"%s\" on \"%s\" has been assigned to you by %s." : "Kortet \"%s\" på \"%s\" har tilldelats dig av %s.", "{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} har tilldelat kortet {deck-card} från {deck-board} till dig.", - "The card \"%1$s\" on \"%2$s\" has reached its due date." : "Kortet \"%1$s\" på \"%2$s\" har nått sitt slutdatum.", - "The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} från {deck-board} har nått sitt slutdatum.", + "The card \"%1$s\" on \"%2$s\" has reached its due date." : "Kortet \"%1$s\" på \"%2$s\" har nått sitt förfallodatum.", + "The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} på {deck-board} har nått sitt förfallodatum.", "%s has mentioned you in a comment on \"%s\"." : "%s har nämnt dig i en kommentar på \"%s\".", - "{user} has mentioned you in a comment on {deck-card}." : "{user} har nämnt dig i en kommentar i {deck-card}.", + "{user} has mentioned you in a comment on {deck-card}." : "{user} har nämnt dig i en kommentar på {deck-card}.", "The board \"%s\" has been shared with you by %s." : "Tavlan \"%s\" har delats med dig av %s.", "{user} has shared {deck-board} with you." : "{user} har delat {deck-board} med dig.", "The remote board %1$s has been shared with you by %2$s" : "Den externa tavlan %1$s har delats med dig av %2$s", "Deck board" : "Deck-tavla", "Owned by %1$s" : "Ägd av %1$s", - "Deck boards, cards and comments" : "Deck tavlor, kort och kommentarer", + "Deck boards, cards and comments" : "Deck-tavlor, kort och kommentarer", "From %1$s, in %2$s/%3$s, owned by %4$s" : "Från %1$s, i %2$s/%3$s, ägd av %4$s", - "Create a new deck card" : "Skapa ett nytt deck-kort", - "Card comments" : "Kort kommentarer", + "Create a new deck card" : "Skapa ett nytt Deck-kort", + "Card comments" : "Kortkommentarer", "%s on %s" : "%s på %s", - "Deck boards and cards" : "Deck tavlor och kort", + "Deck boards and cards" : "Deck-tavlor och kort", "No data was provided to create an attachment." : "Inga data lämnades för att skapa en bilaga.", "Finished" : "Slutförd", "To review" : "Att granska", @@ -120,15 +120,16 @@ "3. Apply rich formatting and link content" : "3. Använd rik formatering och länka innehåll", "4. Share, comment and collaborate!" : "4. Dela, kommentera och samarbeta!", "Create your first card!" : "Skapa ditt första kort!", - "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Den här kommentaren har mer än %s tecken.\nTillagd som en bilaga till kortet men namnet %s.\nÅtkomlig via URL: %s.", + "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Kommentaren innehåller fler än %s tecken.\nDen lades till som en bilaga på kortet med namnet %s.\nDen är tillgänglig på webbadressen %s.", "Attachments" : "Bilagor", "File" : "Fil", "date" : "datum", "Card not found" : "Kortet hittades inte", "Path is already shared with this card" : "Sökvägen är redan delad med detta kort", "Invalid date, date format must be YYYY-MM-DD" : "Ogiltigt datum, måste anges: ÅÅÅÅ-MM-DD", - "Personal planning and team project organization" : "Personlig planering och projekthantering för teams", - "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 är en kanban-liknande organiseringsverktyg för personlig planering samt projektorganisering för arbetsgrupper integrerade med Nextcloud.\n\n\n- 📥 Lägg till uppgifter på kort och lägg de i ordning\n- 📄 Skriv anteckningar i Markdown\n- 🔖 Tilldela etiketter för bättre organisering\n- 👥 Dela med arbetsgruppen, vänner eller familj\n- 📎 Bifoga filer och bädda in dem i Markdown-anteckningarna\n- 💬 Diskutera med arbetsgruppen med hjälp av kommentarer\n- ⚡ Håll koll på ändringar i aktivitetsflödet\n- 🚀 Få struktur på dina projekt", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Alla tavlor som ägs av dig inklusive listor, kort, etiketter, tilldelningar och kommentarer", + "Personal planning and team project organization" : "Personlig planering och projektorganisation för team", + "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 är ett organisationsverktyg i kanbanstil för personlig planering och projektarbete i team, integrerat med Nextcloud.\n\n\n- 📥 Lägg till uppgifter på kort och ordna dem\n- 📄 Skriv ytterligare anteckningar i Markdown\n- 🔖 Tilldela etiketter för bättre organisation\n- 👥 Dela med teamet, vänner eller familj\n- 📎 Bifoga filer och bädda in dem i Markdown-beskrivningen\n- 💬 Diskutera med teamet genom kommentarer\n- ⚡ Följ ändringar i aktivitetsflödet\n- 🚀 Organisera projektet", "Add board" : "Lägg till tavla", "Card details" : "Kortdetaljer", "Select the board to link to a project" : "Välj tavla att länka till ett projekt", @@ -148,12 +149,12 @@ "Drop your files to upload" : "Släpp dina filer för att ladda upp", "File already exists" : "Filen finns redan", "A file with the name {filename} already exists." : "En fil med namnet {filename} finns redan.", - "Do you want to overwrite it?" : "Vill du skriva över det?", + "Do you want to overwrite it?" : "Vill du skriva över den?", "Overwrite file" : "Skriv över filen", "Keep existing file" : "Behåll nuvarande fil", "Add card" : "Lägg till kort", "Archived cards" : "Arkiverade kort", - "Add list" : "Lägg till lista...", + "Add list" : "Lägg till lista", "List name" : "Namn på lista", "Active filters" : "Aktiva filter", "Apply filter" : "Tillämpa filter", @@ -162,17 +163,19 @@ "Unassigned" : "Ej tilldelad", "Filter by status" : "Filtrera efter status", "Open and completed" : "Öppen och klar", - "Open" : "Öppna", + "Open" : "Öppen", "Completed" : "Slutförd", "Filter by due date" : "Filtrera efter förfallodatum", "Overdue" : "Förfallen", "Next 24 hours" : "Nästa 24 timmar", "Next 7 days" : "Nästa 7 dagar", "Next 30 days" : "Nästa 30 dagar", - "No due date" : "Inget slutdatum", + "No due date" : "Inget förfallodatum", "Clear filter" : "Rensa filter", - "View Modes" : "Visa lägen", - "Toggle View Modes" : "Växla visningslägen", + "View Modes" : "Visningslägen", + "Toggle View Modes" : "Växla visningsläge", + "Kanban view" : "Kanban-vy", + "Gantt view" : "Gantt-vy", "Hide archived cards" : "Göm arkiverade kort", "Show archived cards" : "Visa arkiverade kort", "Toggle compact mode" : "Växla kompakt läge", @@ -186,12 +189,12 @@ "Appearance" : "Utseende", "Show card ID badge" : "Visa kortets ID-märke", "Show boards in calendar/tasks" : "Visa tavlor i kalender / uppgifter", - "Admin settings" : "Admin-inställningar", + "Admin settings" : "Administratörsinställningar", "Limit board creation to some groups" : "Begränsa skapandet av tavlor till vissa grupper", "Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Användare utanför dessa grupper kommer inte att kunna skapa sina egna tavlor, men kommer fortfarande att kunna arbeta på tavlor som har delats med dem.", "Enable federation" : "Aktivera federering", - "Board actions" : "Tavelåtgärder", - "Scroll sideways" : "Skrolla i sidled", + "Board actions" : "Tavlåtgärder", + "Scroll sideways" : "Rulla i sidled", "Navigate between cards" : "Navigera mellan korten", "Close card details" : "Stäng kortdetaljer", "Search" : "Sök", @@ -215,23 +218,30 @@ "Activity" : "Aktivitet", "Deleted lists" : "Borttagna listor", "Undo" : "Ångra", - "Deleted cards" : "Ta bort kort", - "Failed to create share with {displayName}" : "Kunde inte skapa delning med {displayName}", - "Are you sure you want to transfer the board {title} to {user}?" : "Är du säker att du vill överföra tavlan {title} till {user}?", + "Deleted cards" : "Borttagna kort", + "Hours" : "Timmar", + "Days" : "Dagar", + "Weeks" : "Veckor", + "Months" : "Månader", + "No cards yet" : "Inga kort än", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Ange ett startdatum och ett förfallodatum på dina kort för att se dem i Gantt-diagrammet", + "Cards without dates ({count})" : "Kort utan datum ({count})", + "Failed to create share with {displayName}" : "Det gick inte att skapa delning med {displayName}", + "Are you sure you want to transfer the board {title} to {user}?" : "Är du säker på att du vill överföra tavlan {title} till {user}?", "Transfer the board." : "Överför tavlan.", "Transfer" : "Överför", "The board has been transferred to {user}" : "Tavlan har överförts till {user}", - "Failed to transfer the board to {user}" : "Kunde inte överföra tavlan till {user}", + "Failed to transfer the board to {user}" : "Det gick inte att överföra tavlan till {user}", "Board owner" : "Tavlans ägare", "(Group)" : "(Grupp)", "(Team)" : "(Team)", - "(remote)" : "(avlägsen)", + "(remote)" : "(fjärr)", "Can edit" : "Kan redigera", "Can share" : "Kan dela", - "Can manage" : "Kan hanter", + "Can manage" : "Kan hantera", "Owner" : "Ägare", "Delete" : "Ta bort", - "List deleted" : "Listan har raderats", + "List deleted" : "Listan har tagits bort", "Edit list title" : "Redigera listans titel", "Archive all cards" : "Arkivera alla kort", "Unarchive all cards" : "Ta ut alla kort ur arkivet", @@ -247,9 +257,9 @@ "Add a new tag" : "Lägg till en ny tagg", "Board name" : "Tavlans namn", "Members" : "Medlemmar", - "Assign to users/groups/team" : "Tilldela till användare/grupper/team", - "Assign a user to this card…" : "Tilldela en användare till det här kortet ...", - "Select a user to assign to this card…" : "Välj en användare att tilldela detta kort...", + "Assign to users/groups/team" : "Tilldela användare, grupper eller team", + "Assign a user to this card…" : "Tilldela en användare till kortet …", + "Select a user to assign to this card…" : "Välj en användare att tilldela kortet …", "File to share" : "Fil att dela", "Invalid path selected" : "Ogiltig sökväg vald", "Upload new files" : "Ladda upp nya filer", @@ -265,26 +275,34 @@ "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Ändrad: {modifiedDate}\nSkapad: {createdDate}\nSkapad av: {owner}", "Modified: {modifiedDate}\nCreated: {createdDate}" : "Ändrad: {modifiedDate}\nSkapad: {createdDate}", "The title cannot be empty." : "Titeln får inte lämnas tom.", - "Cannot close unsaved card!" : "Kan inte stänga osparat kort!", + "Cannot close unsaved card!" : "Det går inte att stänga osparat kort!", "Open in sidebar view" : "Öppna i sidofältet", "Open in bigger view" : "Öppna i större vy", "Comments" : "Kommentarer", - "Failed to load comments" : "Kunde inte ladda kommentarerna.", + "Failed to load comments" : "Det gick inte att läsa in kommentarerna", "No comments yet. Begin the discussion!" : "Inga kommentarer än. Börja diskussionen!", "The comment cannot be empty." : "Kommentaren kan inte vara tom.", "The comment cannot be longer than 1000 characters." : "Kommentaren kan inte vara längre än 1000 tecken.", + "Submit" : "Skicka", "Created:" : "Skapad:", "In reply to" : "Som svar på", "Cancel reply" : "Avbryt svar", "Reply" : "Svara", "Update" : "Uppdatera", - "Write a description …" : "Ange en beskrivning ...", + "Assign dependent cards" : "Tilldela beroende kort", + "Mark as done" : "Markera som klar", + "Mark as not done" : "Markera som ej klar", + "Remove dependency" : "Ta bort beroende", + "Add dependent card" : "Lägg till beroende kort", + "Assign a dependent card…" : "Tilldela ett beroende kort…", + "Select a dependent card…" : "Välj ett beroende kort…", + "Write a description …" : "Skriv en beskrivning …", "The description has been changed by another user." : "Beskrivningen har ändrats av en annan användare", - "Could not save description" : "Kunde inte spara beskrivning", + "Could not save description" : "Det gick inte att spara beskrivningen", "Description" : "Beskrivning", "(Unsaved)" : "(Inte sparad)", "(Saving…)" : "(Sparar…)", - "Formatting help" : "Formatteringshjälp", + "Formatting help" : "Formateringshjälp", "Edit description" : "Ändra beskrivning", "View description" : "Visa beskrivning", "Add Attachment" : "Lägg till bilaga", @@ -298,12 +316,11 @@ "Set due date for this weekend" : "Ställ in förfallodatum för denna helg", "Next week – {timeLocale}" : "Nästa vecka – {timeLocale}", "Set due date for next week" : "Ställ in förfallodatum för nästa vecka", - "Assign a due date to this card…" : "Tilldela ett förfallodatum till detta kort...", - "Set a due date" : "Sätt ett slutdatum", + "Assign a due date to this card…" : "Tilldela kortet ett förfallodatum …", + "Set a due date" : "Ange ett förfallodatum", "Add due date" : "Lägg till förfallodatum", "Choose a date" : "Välj ett datum", - "Remove due date" : "Ta bort slutdatum", - "Mark as done" : "Markera som klar", + "Remove due date" : "Ta bort förfallodatum", "Due at:" : "Förfaller:", "Not done" : "Inte klar", "Unarchive card" : "Avarkivera kort", @@ -312,38 +329,37 @@ "Set a start date" : "Ange startdatum", "Add start date" : "Lägg till startdatum", "Remove start date" : "Ta bort startdatum", - "Assign a tag to this card…" : "Tilldela en tagg till det här kortet ...", - "Select or create a tag…" : "Välj eller skapa en tagg...", + "Assign a tag to this card…" : "Tilldela kortet en tagg …", + "Select or create a tag…" : "Välj eller skapa en tagg …", "Create a new tag:" : "Skapa en ny tagg:", "(group)" : " (grupp)", "{count} comments, {unread} unread" : "{count} kommentarer, {unread} olästa", - "Todo items" : "Att göra saker", + "Todo items" : "Att göra-poster", "Edit card title" : "Ändra korttitel", "Open link" : "Öppna länken", "Card deleted" : "Kortet har raderats", + "Change card color" : "Ändra kortfärg", "Edit title" : "Redigera titel", "Assign to me" : "Tilldela till mig", "Unassign myself" : "Ta bort från mig själv", - "Mark as not done" : "Markera som ej klar", "Delete card" : "Ta bort kort", - "seconds ago" : "sekunder sedan", "All boards" : "Alla tavlor", "Archived boards" : "Arkiverade tavlor", "Shared with you" : "Delad med dig", "Cancel edit" : "Avbryt redigering", "Save board" : "Spara tavla", - "Board {0} deleted" : "Tavla {0} raderad", + "Board {0} deleted" : "Tavlan {0} har tagits bort", "All cards" : "Alla kort", "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 including archived cards." : "Är du säker på att du vill radera tavla {title}? Detta kommer radera all data som tillhör tavlan inklusive arkiverade kort.", + "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Är du säker på att du vill ta bort tavlan {title}? Alla tavlans uppgifter, inklusive arkiverade kort, tas bort.", "Delete the board?" : "Ta bort tavlan?", - "Are you sure you want to leave the board {title}?" : "Är du säker att du vill lämna tavlan {title}?", + "Are you sure you want to leave the board {title}?" : "Är du säker på att du vill lämna tavlan {title}?", "Leave the board?" : "Lämna tavlan?", "Leave" : "Lämna", - "Failed to leave the board" : "Kunde inte lämna tavlan", - "Exporting board..." : "Exporterar tavla...", + "Failed to leave the board" : "Det gick inte att lämna tavlan", + "Exporting board..." : "Exporterar tavlan …", "Board details" : "Taveldetaljer", "Edit board" : "Ändra tavla", "Clone board" : "Kopiera tavla", @@ -357,16 +373,16 @@ "Due date reminders" : "Påminnelser om förfallodatum", "Assigned cards" : "Tilldelade kort", "No notifications" : "Inga aviseringar", - "Delete board" : "Radera tavla", + "Delete board" : "Ta bort tavla", "Leave board" : "Lämna tavla", - "Importing board..." : "Importerar tavla...", + "Importing board..." : "Importerar tavlan …", "Board imported successfully" : "Tavlan har importerats", "Import board" : "Importera tavla", "Clone {boardTitle}" : "Klona {boardTitle}", "Clone cards" : "Klona kort", "Clone assignments" : "Klona tilldelningar", "Clone labels" : "Klona etiketter", - "Clone due dates" : "Klona slutdatum", + "Clone due dates" : "Kopiera förfallodatum", "Advanced options" : "Avancerade inställningar", "Move all cards to the first list" : "Flytta alla kort till den första listan", "Restore archived cards" : "Återställ arkiverade kort", @@ -379,19 +395,19 @@ "Loading filtered view" : "Laddar filtrerad vy", "Search for {searchQuery} in other boards" : "Sök efter {searchQuery} i andra tavlor", "Search for {searchQuery} in all boards" : "Sök efter {searchQuery} i alla tavlor", - "No results found" : "Inga resultat funna", - "Deck board {name}\n* Last modified on {lastMod}" : "Deck tavla {name}\n* Senast ändrad den {lastMod}", + "No results found" : "Inga resultat hittades", + "Deck board {name}\n* Last modified on {lastMod}" : "Deck-tavlan {name}\n* Senast ändrad {lastMod}", "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Skapades {created}\n* Ändrades senast {lastMod}\n* {nbAttachments} bilagor\n* {nbComments} kommentarer", "{nbCards} cards" : "{nbCards} kort", - "Due on {date}" : "Går ut {date}", + "Due on {date}" : "Förfaller {date}", "{stack} in {board}" : "{stack} i {board}", "Click to expand description" : "Klicka för att utöka beskrivningen", "Click to expand comment" : "Klicka för att utöka kommentaren", "Create card" : "Skapa kort", "Create a new card" : "Skapa ett nytt kort", - "Card title" : "Kort-titel", - "Creating the new card …" : "Skapar det nya kortet ...", - "Card \"{card}\" was added to \"{board}\"" : "kortet \"{card}\" lades till i \"{board}\"", + "Card title" : "Korttitel", + "Creating the new card …" : "Skapar det nya kortet …", + "Card \"{card}\" was added to \"{board}\"" : "Kortet \"{card}\" lades till på \"{board}\"", "Open card" : "Öppna kort", "Close" : "Stäng", "No upcoming cards" : "Inga kommande kort", @@ -404,23 +420,24 @@ "Create a card" : "Skapa ett kort", "Message from {author} in {conversationName}" : "Meddelande från {author} i {conversationName}", "Something went wrong" : "Något gick fel", - "Failed to upload {name}" : "Kunde inte ladda upp {name}", - "Maximum file size of {size} exceeded" : "Maximal filstorlek på {size} överskriden", + "Failed to upload {name}" : "Det gick inte att ladda upp {name}", + "Maximum file size of {size} exceeded" : "Den maximala filstorleken på {size} har överskridits", "Assigned users" : "Tilldelade användare", - "Due date" : "Slutdatum", + "Due date" : "Förfallodatum", "Created" : "Skapat", "Modified" : "Ändrad", "Error creating the share" : "Kunde inte skapa delning", "Share with a Deck card" : "Dela med ett Deck-kort", "Share {file} with a Deck card" : "Dela {file} med ett Deck-kort", "Share" : "Dela", - "The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nått sitt slutdatum.", - "Share board with a user, group or team …" : "Dela tavlan med en användare, grupp eller team ...", + "The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nått sitt förfallodatum.", + "Share board with a user, group or team …" : "Dela tavlan med en användare, grupp eller team …", "Searching for users, groups and teams …" : "Söker efter användare, grupper och team …", "No participants found" : "Inga deltagare hittades", "Save" : "Spara", + "seconds ago" : "sekunder sedan", "Today" : "Idag", "Tomorrow" : "Imorgon", - "No due" : "Inget slut" + "No due" : "Inget förfallodatum" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/sw.js b/l10n/sw.js index 74f0718b38..5260e0abd2 100644 --- a/l10n/sw.js +++ b/l10n/sw.js @@ -216,6 +216,11 @@ OC.L10N.register( "Deleted lists" : "Orodha zilizofutwa", "Undo" : "Tendua", "Deleted cards" : "Kadi zilizifutwa", + "Hours" : "Masaa", + "Days" : "Siku", + "Weeks" : "Wiki", + "Months" : "Miezi", + "No cards yet" : "Bado hakuna kadi", "Failed to create share with {displayName}" : "Imeshindwa kutengeneza ushiriki na {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Una uhakika unahutaji kuhamisha bodi {title} kwenda {user}", "Transfer the board." : "Hamisha bodi", @@ -268,11 +273,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Hakuna maoni bado. Anza mjadala", "The comment cannot be empty." : "Maoni hayawezi kuwa tupu", "The comment cannot be longer than 1000 characters." : "Maoni hayawezi kuwa marefu zaidi ya vibambo 1000", + "Submit" : "Wasilisha", "Created:" : "Imetengenezwa:", "In reply to" : "Kwa kujibu", "Cancel reply" : "Ghairi jibu", "Reply" : "Jibu", "Update" : "Sasisha", + "Mark as done" : "Weka alama kama iliyotendeka", + "Mark as not done" : "Weka alama kama haijatendeka", "Write a description …" : "Andika maelezo", "Could not save description" : "Haikuweza kuhifadhi maelezo", "Description" : "Maelezo", @@ -297,7 +305,6 @@ OC.L10N.register( "Add due date" : "Ongeza tarehe ya mwisho", "Choose a date" : "Chagua tarehe", "Remove due date" : "Ondoa tarehe ya mwisho", - "Mark as done" : "Weka alama kama iliyotendeka", "Due at:" : "Mwisho katika", "Not done" : "Haijatendeka", "Unarchive card" : "Kadi ambayo haijahifadhiwa", @@ -314,9 +321,7 @@ OC.L10N.register( "Edit title" : "Hariri kichwa cha habari", "Assign to me" : "Kabidhi kwangu", "Unassign myself" : "Sijajikabidhi mwenyewe", - "Mark as not done" : "Weka alama kama haijatendeka", "Delete card" : "Futa kadi", - "seconds ago" : "sukunde zilizopita", "All boards" : "Bodi zote", "Archived boards" : "Bodi zilizohifadhiwa", "Shared with you" : "Imeshirikiwa na wewe", @@ -407,6 +412,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Inatafuta watumiaji, vikundi na timu", "No participants found" : "Hakuna mshiriki aliyepatikana", "Save" : "Hifadhi", + "seconds ago" : "sukunde zilizopita", "Today" : "Leo", "Tomorrow" : "Kesho", "No due" : "Hakuna ukomo" diff --git a/l10n/sw.json b/l10n/sw.json index b1efe5a2ac..dd105e96ce 100644 --- a/l10n/sw.json +++ b/l10n/sw.json @@ -214,6 +214,11 @@ "Deleted lists" : "Orodha zilizofutwa", "Undo" : "Tendua", "Deleted cards" : "Kadi zilizifutwa", + "Hours" : "Masaa", + "Days" : "Siku", + "Weeks" : "Wiki", + "Months" : "Miezi", + "No cards yet" : "Bado hakuna kadi", "Failed to create share with {displayName}" : "Imeshindwa kutengeneza ushiriki na {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Una uhakika unahutaji kuhamisha bodi {title} kwenda {user}", "Transfer the board." : "Hamisha bodi", @@ -266,11 +271,14 @@ "No comments yet. Begin the discussion!" : "Hakuna maoni bado. Anza mjadala", "The comment cannot be empty." : "Maoni hayawezi kuwa tupu", "The comment cannot be longer than 1000 characters." : "Maoni hayawezi kuwa marefu zaidi ya vibambo 1000", + "Submit" : "Wasilisha", "Created:" : "Imetengenezwa:", "In reply to" : "Kwa kujibu", "Cancel reply" : "Ghairi jibu", "Reply" : "Jibu", "Update" : "Sasisha", + "Mark as done" : "Weka alama kama iliyotendeka", + "Mark as not done" : "Weka alama kama haijatendeka", "Write a description …" : "Andika maelezo", "Could not save description" : "Haikuweza kuhifadhi maelezo", "Description" : "Maelezo", @@ -295,7 +303,6 @@ "Add due date" : "Ongeza tarehe ya mwisho", "Choose a date" : "Chagua tarehe", "Remove due date" : "Ondoa tarehe ya mwisho", - "Mark as done" : "Weka alama kama iliyotendeka", "Due at:" : "Mwisho katika", "Not done" : "Haijatendeka", "Unarchive card" : "Kadi ambayo haijahifadhiwa", @@ -312,9 +319,7 @@ "Edit title" : "Hariri kichwa cha habari", "Assign to me" : "Kabidhi kwangu", "Unassign myself" : "Sijajikabidhi mwenyewe", - "Mark as not done" : "Weka alama kama haijatendeka", "Delete card" : "Futa kadi", - "seconds ago" : "sukunde zilizopita", "All boards" : "Bodi zote", "Archived boards" : "Bodi zilizohifadhiwa", "Shared with you" : "Imeshirikiwa na wewe", @@ -405,6 +410,7 @@ "Searching for users, groups and teams …" : "Inatafuta watumiaji, vikundi na timu", "No participants found" : "Hakuna mshiriki aliyepatikana", "Save" : "Hifadhi", + "seconds ago" : "sukunde zilizopita", "Today" : "Leo", "Tomorrow" : "Kesho", "No due" : "Hakuna ukomo" diff --git a/l10n/ta.js b/l10n/ta.js index d7efa5745a..4fcab15b81 100644 --- a/l10n/ta.js +++ b/l10n/ta.js @@ -21,13 +21,13 @@ OC.L10N.register( "Created:" : "உருவாக்கப்பட்டது:", "Update" : "இற்றைப்படுத்தல்", "Description" : "விவரிப்பு", - "seconds ago" : "செக்கன்களுக்கு முன்", "Shared with you" : "Shared with you", "Export" : "ஏற்றுமதி", "Close" : "மூடுக", "Modified" : "மாற்றப்பட்டது", "Share" : "பகிர்வு", "Save" : "சேமிக்க ", + "seconds ago" : "செக்கன்களுக்கு முன்", "Today" : "இன்று" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/ta.json b/l10n/ta.json index ee8d142dd8..4c28f8d24e 100644 --- a/l10n/ta.json +++ b/l10n/ta.json @@ -19,13 +19,13 @@ "Created:" : "உருவாக்கப்பட்டது:", "Update" : "இற்றைப்படுத்தல்", "Description" : "விவரிப்பு", - "seconds ago" : "செக்கன்களுக்கு முன்", "Shared with you" : "Shared with you", "Export" : "ஏற்றுமதி", "Close" : "மூடுக", "Modified" : "மாற்றப்பட்டது", "Share" : "பகிர்வு", "Save" : "சேமிக்க ", + "seconds ago" : "செக்கன்களுக்கு முன்", "Today" : "இன்று" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/th.js b/l10n/th.js index 5c43ea7b50..a4426e7185 100644 --- a/l10n/th.js +++ b/l10n/th.js @@ -31,6 +31,7 @@ OC.L10N.register( "Tags" : "แท็ก", "Activity" : "กิจกรรม", "Undo" : "เลิกทำ", + "Hours" : "ชั่วโมง", "Transfer" : "โอนย้าย", "Can edit" : "สามารถแก้ไข", "Can share" : "สามารถแชร์", @@ -41,12 +42,12 @@ OC.L10N.register( "Invalid path selected" : "เลือกเส้นทางไม่ถูกต้อง", "Download" : "ดาวน์โหลด", "Comments" : "ความคิดเห็น", + "Submit" : "ส่ง", "Created:" : "สร้างเมื่อ:", "Reply" : "ตอบกลับ", "Update" : "อัปเดต", "Description" : "รายละเอียด", "(group)" : "(กลุ่ม)", - "seconds ago" : "วินาทีที่ผ่านมา", "Shared with you" : "แชร์กับคุณ", "An error occurred" : "เกิดข้อผิดพลาด", "Edit board" : "แก้ไขกระดาน", @@ -59,6 +60,7 @@ OC.L10N.register( "Modified" : "แก้ไขเมื่อ", "Share" : "แชร์", "Save" : "บันทึก", + "seconds ago" : "วินาทีที่ผ่านมา", "Today" : "วันนี้", "Tomorrow" : "พรุ่งนี้" }, diff --git a/l10n/th.json b/l10n/th.json index 5837494398..681a2a7e8f 100644 --- a/l10n/th.json +++ b/l10n/th.json @@ -29,6 +29,7 @@ "Tags" : "แท็ก", "Activity" : "กิจกรรม", "Undo" : "เลิกทำ", + "Hours" : "ชั่วโมง", "Transfer" : "โอนย้าย", "Can edit" : "สามารถแก้ไข", "Can share" : "สามารถแชร์", @@ -39,12 +40,12 @@ "Invalid path selected" : "เลือกเส้นทางไม่ถูกต้อง", "Download" : "ดาวน์โหลด", "Comments" : "ความคิดเห็น", + "Submit" : "ส่ง", "Created:" : "สร้างเมื่อ:", "Reply" : "ตอบกลับ", "Update" : "อัปเดต", "Description" : "รายละเอียด", "(group)" : "(กลุ่ม)", - "seconds ago" : "วินาทีที่ผ่านมา", "Shared with you" : "แชร์กับคุณ", "An error occurred" : "เกิดข้อผิดพลาด", "Edit board" : "แก้ไขกระดาน", @@ -57,6 +58,7 @@ "Modified" : "แก้ไขเมื่อ", "Share" : "แชร์", "Save" : "บันทึก", + "seconds ago" : "วินาทีที่ผ่านมา", "Today" : "วันนี้", "Tomorrow" : "พรุ่งนี้" },"pluralForm" :"nplurals=1; plural=0;" diff --git a/l10n/tr.js b/l10n/tr.js index 870263a34c..600c8ca259 100644 --- a/l10n/tr.js +++ b/l10n/tr.js @@ -1,8 +1,8 @@ OC.L10N.register( "deck", { - "You have created a new board {board}" : "{board} panosunu eklediniz", - "{user} has created a new board {board}" : "{user}, {board} panosunu ekledi", + "You have created a new board {board}" : "Yeni {board} panosunu oluşturdunuz", + "{user} has created a new board {board}" : "{user}, yeni {board} panosunu oluşturdu", "You have deleted the board {board}" : "{board} panosunu sildiniz", "{user} has deleted the board {board}" : "{user}, {board} panosunu sildi", "You have restored the board {board}" : "{board} panosunu geri yüklediniz", @@ -17,14 +17,14 @@ OC.L10N.register( "{user} has archived the board {before}" : "{user}, {board} panosunu arşive kaldırdı", "You have unarchived the board {board}" : "{board} panosunu arşivden çıkardınız", "{user} has unarchived the board {before}" : "{user}, {board} panosunu arşivden çıkardı", - "You have created a new list {stack} on board {board}" : "{board} panosuna yeni {stack} listesini eklediniz", - "{user} has created a new list {stack} on board {board}" : "{user}, {board} panosuna yeni {stack} listesini ekledi", + "You have created a new list {stack} on board {board}" : "{board} panosunda yeni {stack} listesini oluşturdunuz", + "{user} has created a new list {stack} on board {board}" : "{user}, {board} panosunda yeni {stack} listesini oluşturdu", "You have renamed list {before} to {stack} on board {board}" : "{board} panosundaki {before} listesinin adını {stack} olarak değiştirdiniz", "{user} has renamed list {before} to {stack} on board {board}" : "{user}, {board} panosundaki {before} listesinin adını {stack} olarak değiştirdi", "You have deleted list {stack} on board {board}" : "{board} panosundaki {stack} listesini sildiniz", "{user} has deleted list {stack} on board {board}" : "{user}, {board} panosundaki {stack} listesini sildi", - "You have created card {card} in list {stack} on board {board}" : "{board} panosundaki {stack} listesine {card} kartını eklediniz", - "{user} has created card {card} in list {stack} on board {board}" : "{user}, {board} panosundaki {stack} listesine {card} kartını ekledi", + "You have created card {card} in list {stack} on board {board}" : "{board} panosundaki {stack} listesinde {card} kartını oluşturdunuz", + "{user} has created card {card} in list {stack} on board {board}" : "{user}, {board} panosundaki {stack} listesinde {card} kartını oluşturdu", "You have deleted card {card} in list {stack} on board {board}" : "{board} panosunun {stack} listesindeki {card} kartını sildiniz", "{user} has deleted card {card} in list {stack} on board {board}" : "{user}, {board} panosunun {stack} listesindeki {card} kartını sildi", "You have renamed the card {before} to {card}" : "{before} kartının adını {card} olarak değiştirdiniz", @@ -65,8 +65,8 @@ OC.L10N.register( "{user} has deleted the attachment {attachment} from card {card}" : "{user}, {card} kartındaki {attachment} dosyasını sildi", "You have restored the attachment {attachment} to card {card}" : "{card} kartındaki {attachment} dosyasını geri yüklediniz", "{user} has restored the attachment {attachment} to card {card}" : "{user}, {card} kartındaki {attachment} dosyasını geri yükledi", - "You have commented on card {card}" : "{card} kartı hakkında yorum yaptınız", - "{user} has commented on card {card}" : "{user}, {card} kartı hakkında yorum yaptı", + "You have commented on card {card}" : "{card} kartı ile ilgili yorum yaptınız", + "{user} has commented on card {card}" : "{user}, {card} kartı ile ilgili yorum yaptı", "Deck" : "Tahta", "Changes in the Deck app" : "Tahta uygulamasında değişiklik yapıldığında", "A board, list or card was changed" : "Bir pano, liste ya da kart değiştirildi", @@ -102,9 +102,9 @@ OC.L10N.register( "Owned by %1$s" : "Sahibi: %1$s", "Deck boards, cards and comments" : "Tahta panoları, kartlar ve yorumlar", "From %1$s, in %2$s/%3$s, owned by %4$s" : "%1$s tarafından, %2$s/%3$s içinde, sahibi %4$s olan", - "Create a new deck card" : "Yeni tahta kartı ekle", + "Create a new deck card" : "Yeni tahta kartı oluştur", "Card comments" : "Kart yorumları", - "%s on %s" : "%s, %s hakkında", + "%s on %s" : "%s, %s ile ilgili", "Deck boards and cards" : "Tahta panoları ve kartlar", "No data was provided to create an attachment." : "Bir ek dosya oluşturmak için herhangi bir veri belirtilmedi.", "Finished" : "Tamamlandı", @@ -121,7 +121,7 @@ OC.L10N.register( "2. Drag cards left and right, up and down" : "2. Kartları sağa, sola, aşağı ve yukarı sürükleyin", "3. Apply rich formatting and link content" : "3. Zengin biçim uygulayın ve içeriği bağlayın", "4. Share, comment and collaborate!" : "4. Paylaşın, yorum ve iş birliği yapın! ", - "Create your first card!" : "İlk kartınızı ekleyin!", + "Create your first card!" : "İlk kartınızı oluşturun!", "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Bu yorum %s karakterden uzun.\nKarta %s adıyla ek dosya olarak eklendi.\nŞu adresten erişilebilir: %s.", "Attachments" : "Ek dosyalar", "File" : "Dosya", @@ -129,6 +129,7 @@ OC.L10N.register( "Card not found" : "Kart bulunamadı", "Path is already shared with this card" : "Bu yol bu kart ile zaten paylaşılmış", "Invalid date, date format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Yığınlar, kartlar, etiketler, ödevler ve yorumlar gibi size ait tüm panolar", "Personal planning and team project organization" : "Kişisel planlama ve takım projesi yönetimi", "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" : "Tahta, Nextcloud ile bütünleştirilmiş takımlar için Kanban tarzında bir kişisel planlama ve proje yönetimi uygulamasıdır.\n\n\n- 📥 Görevleri kartlara ekleyerek sıralayabilirsiniz\n- 📄 Markdown ile biçimlendirilmiş notlar ekleyebilirsiniz\n- 🔖 Daha iyi düzenleme için etiketler atayabilirsiniz\n- 👥 Takımınız, arkadaşlarınız ya da aileniz ile paylaşabilirsiniz\n- 📎 Dosyalar ekleyebilir ve Markdown açıklamasına gömebilirsiniz\n- 💬 Yorumları kullanarak konular üzerinde takımınız ile yazışabilirsiniz\n- ⚡ İşlem akışı ile değişiklikleri görebilirsiniz\n- 🚀 Projelerinizi düzenli tutarak izleyebilirsiniz", "Add board" : "Pano ekle", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Süzgeci temizle", "View Modes" : "Görünüm kipleri", "Toggle View Modes" : "Görünüm kiplerini değiştir", + "Kanban view" : "Kanban görünümü", + "Gantt view" : "Gantt görünümü", "Hide archived cards" : "Arşivlenmiş kartları gizle", "Show archived cards" : "Arşivlenmiş kartları görüntüle", "Toggle compact mode" : "Sıkışık kipi aç/kapat", @@ -210,7 +213,7 @@ OC.L10N.register( "Currently present people" : "Şu anda var olan kişiler", "Loading board" : "Pano yükleniyor", "Board not found" : "Pano bulunamadı", - "Create a new list to add cards to this board" : "Bu panoya kartlar eklemek için yeni bir liste ekleyin", + "Create a new list to add cards to this board" : "Bu panoya kartlar eklemek için yeni bir liste oluşturun", "Sharing" : "Paylaşım", "Tags" : "Etiketler", "Deleted items" : "Silinmiş ögeler", @@ -218,7 +221,14 @@ OC.L10N.register( "Deleted lists" : "Silinmiş listeler", "Undo" : "Geri al", "Deleted cards" : "Silinmiş kartlar", - "Failed to create share with {displayName}" : "{displayName} ile paylaşılamadı", + "Hours" : "Saat", + "Days" : "Gün", + "Weeks" : "Hafta", + "Months" : "Ay", + "No cards yet" : "Henüz bir kart yok", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Gantt çizelgesi olarak görmek için kartlarınıza bir başlangıç tarihi ve bitiş tarihi ekleyin", + "Cards without dates ({count})" : "Tarihleri olmayan kartlar ({count})", + "Failed to create share with {displayName}" : "{displayName} ile paylaşım oluşturulamadı", "Are you sure you want to transfer the board {title} to {user}?" : "{title} panosunu {user} kullanıcısına aktarmak istediğinize emin misiniz?", "Transfer the board." : "Panoyu aktar.", "Transfer" : "Aktar", @@ -263,6 +273,9 @@ OC.L10N.register( "Remove attachment" : "Ek dosyayı sil", "Delete Attachment" : "Ek dosyasını sil", "Restore Attachment" : "Ek dosyasını geri yükle", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Değiştirilme: {modifiedDate} ⸱ Oluşturulma: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Değiştirilme: {modifiedDate}\nOluşturulma: {createdDate}\nOluşturan: {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Değiştirilme: {modifiedDate}\nOluşturulma: {createdDate}", "The title cannot be empty." : "Başlık boş olamaz.", "Cannot close unsaved card!" : "Kaydedilmemiş bir kart kapatılamaz!", "Open in sidebar view" : "Kenar çubuğu görünümünde aç", @@ -272,12 +285,21 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Henüz bir yorum yapılmamış. Tartışmayı başlatın!", "The comment cannot be empty." : "Yorum boş olamaz.", "The comment cannot be longer than 1000 characters." : "Yorum 1000 karakterden uzun olamaz.", + "Submit" : "Gönder", "Created:" : "Oluşturulma:", "In reply to" : "Şuna yanıtla", "Cancel reply" : "Yanıtı iptal et", "Reply" : "Yanıtla", "Update" : "Güncelle", + "Assign dependent cards" : "Bağlı kartları ata", + "Mark as done" : "Tamamlanmış olarak işaretle", + "Mark as not done" : "Tamamlanmamış olarak işaretle", + "Remove dependency" : "Bağlılığı kaldır", + "Add dependent card" : "Bağlı kart ekle", + "Assign a dependent card…" : "Bağlı bir kart ata…", + "Select a dependent card…" : "Bir bağlı kart seçin…", "Write a description …" : "Bir açıklama yazın …", + "The description has been changed by another user." : "Açıklama başka bir kullanıcı tarafından değiştirildi.", "Could not save description" : "Açıklama kaydedilemedi", "Description" : "Açıklama", "(Unsaved)" : "(Kaydedilmemiş)", @@ -301,11 +323,14 @@ OC.L10N.register( "Add due date" : "Bitiş tarihi ekle", "Choose a date" : "Bir tarih seçin", "Remove due date" : "Bitiş tarihini kaldır", - "Mark as done" : "Tamamlanmış olarak işaretle", "Due at:" : "Bitiş tarihi:", "Not done" : "Tamamlanmamış", "Unarchive card" : "Kartı arşivden çıkar", "Archive card" : "Kartı arşivle", + "Assign a start date to this card…" : "Bu kartın başlangıç tarihini ayarlayın…", + "Set a start date" : "Bir başlangıç tarihi ayarlayın", + "Add start date" : "Başlangıç tarihi ekle", + "Remove start date" : "Başlangıç tarihini kaldır", "Assign a tag to this card…" : "Bu karta bir etiket ata…", "Select or create a tag…" : "Bir etiket seçin ya da oluşturun…", "Create a new tag:" : "Yeni etiket ekle:", @@ -315,12 +340,11 @@ OC.L10N.register( "Edit card title" : "Kart başlığını düzenle", "Open link" : "Bağlantıyı aç", "Card deleted" : "Kart silindi", + "Change card color" : "Kart rengini değiştir", "Edit title" : "Başlığı düzenle", "Assign to me" : "Bana ata", "Unassign myself" : "Kendi atamamı kaldır", - "Mark as not done" : "Tamamlanmamış olarak işaretle", "Delete card" : "Kartı sil", - "seconds ago" : "saniye önce", "All boards" : "Tüm panolar", "Archived boards" : "Arşivlenmiş panolar", "Shared with you" : "Sizinle paylaşıldı", @@ -381,8 +405,8 @@ OC.L10N.register( "{stack} in {board}" : "{stack} {board} panosunda", "Click to expand description" : "Açıklamayı genişletmek için tıklayın", "Click to expand comment" : "Yorumu genişletmek için tıklayın", - "Create card" : "Kart ekle", - "Create a new card" : "Yeni kart ekle", + "Create card" : "Kart oluştur", + "Create a new card" : "Yeni bir kart oluştur", "Card title" : "Kart başlığı", "Creating the new card …" : "Yeni kart ekleniyor…", "Card \"{card}\" was added to \"{board}\"" : "\"{card}\" kartı \"{board}\" panosuna eklendi", @@ -392,10 +416,10 @@ OC.L10N.register( "upcoming cards today" : "bugün tamamlanması gereken kartlar", "upcoming cards tomorrow" : "yarın tamamlanması gereken kartlar", "upcoming cards" : "yaklaşan kartlar", - "New card" : "Kart ekle", + "New card" : "Yeni kart", "Link to a board" : "Bir pano bağlantısı", "Link to a card" : "Bir kart bağlantısı", - "Create a card" : "Bir kart ekle", + "Create a card" : "Bir kart oluştur", "Message from {author} in {conversationName}" : "{conversationName} görüşmesinde {author} iletisi", "Something went wrong" : "Bir sorun çıktı", "Failed to upload {name}" : "{name} yüklenemedi", @@ -413,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Kullanıcılar, gruplar ve takımlar aranıyor…", "No participants found" : "Herhangi bir katılımcı bulunamadı", "Save" : "Kaydet", + "seconds ago" : "saniye önce", "Today" : "Bugün", "Tomorrow" : "Yarın", "No due" : "Bitiş yok" diff --git a/l10n/tr.json b/l10n/tr.json index 8397ba415b..ab8522f016 100644 --- a/l10n/tr.json +++ b/l10n/tr.json @@ -1,6 +1,6 @@ { "translations": { - "You have created a new board {board}" : "{board} panosunu eklediniz", - "{user} has created a new board {board}" : "{user}, {board} panosunu ekledi", + "You have created a new board {board}" : "Yeni {board} panosunu oluşturdunuz", + "{user} has created a new board {board}" : "{user}, yeni {board} panosunu oluşturdu", "You have deleted the board {board}" : "{board} panosunu sildiniz", "{user} has deleted the board {board}" : "{user}, {board} panosunu sildi", "You have restored the board {board}" : "{board} panosunu geri yüklediniz", @@ -15,14 +15,14 @@ "{user} has archived the board {before}" : "{user}, {board} panosunu arşive kaldırdı", "You have unarchived the board {board}" : "{board} panosunu arşivden çıkardınız", "{user} has unarchived the board {before}" : "{user}, {board} panosunu arşivden çıkardı", - "You have created a new list {stack} on board {board}" : "{board} panosuna yeni {stack} listesini eklediniz", - "{user} has created a new list {stack} on board {board}" : "{user}, {board} panosuna yeni {stack} listesini ekledi", + "You have created a new list {stack} on board {board}" : "{board} panosunda yeni {stack} listesini oluşturdunuz", + "{user} has created a new list {stack} on board {board}" : "{user}, {board} panosunda yeni {stack} listesini oluşturdu", "You have renamed list {before} to {stack} on board {board}" : "{board} panosundaki {before} listesinin adını {stack} olarak değiştirdiniz", "{user} has renamed list {before} to {stack} on board {board}" : "{user}, {board} panosundaki {before} listesinin adını {stack} olarak değiştirdi", "You have deleted list {stack} on board {board}" : "{board} panosundaki {stack} listesini sildiniz", "{user} has deleted list {stack} on board {board}" : "{user}, {board} panosundaki {stack} listesini sildi", - "You have created card {card} in list {stack} on board {board}" : "{board} panosundaki {stack} listesine {card} kartını eklediniz", - "{user} has created card {card} in list {stack} on board {board}" : "{user}, {board} panosundaki {stack} listesine {card} kartını ekledi", + "You have created card {card} in list {stack} on board {board}" : "{board} panosundaki {stack} listesinde {card} kartını oluşturdunuz", + "{user} has created card {card} in list {stack} on board {board}" : "{user}, {board} panosundaki {stack} listesinde {card} kartını oluşturdu", "You have deleted card {card} in list {stack} on board {board}" : "{board} panosunun {stack} listesindeki {card} kartını sildiniz", "{user} has deleted card {card} in list {stack} on board {board}" : "{user}, {board} panosunun {stack} listesindeki {card} kartını sildi", "You have renamed the card {before} to {card}" : "{before} kartının adını {card} olarak değiştirdiniz", @@ -63,8 +63,8 @@ "{user} has deleted the attachment {attachment} from card {card}" : "{user}, {card} kartındaki {attachment} dosyasını sildi", "You have restored the attachment {attachment} to card {card}" : "{card} kartındaki {attachment} dosyasını geri yüklediniz", "{user} has restored the attachment {attachment} to card {card}" : "{user}, {card} kartındaki {attachment} dosyasını geri yükledi", - "You have commented on card {card}" : "{card} kartı hakkında yorum yaptınız", - "{user} has commented on card {card}" : "{user}, {card} kartı hakkında yorum yaptı", + "You have commented on card {card}" : "{card} kartı ile ilgili yorum yaptınız", + "{user} has commented on card {card}" : "{user}, {card} kartı ile ilgili yorum yaptı", "Deck" : "Tahta", "Changes in the Deck app" : "Tahta uygulamasında değişiklik yapıldığında", "A board, list or card was changed" : "Bir pano, liste ya da kart değiştirildi", @@ -100,9 +100,9 @@ "Owned by %1$s" : "Sahibi: %1$s", "Deck boards, cards and comments" : "Tahta panoları, kartlar ve yorumlar", "From %1$s, in %2$s/%3$s, owned by %4$s" : "%1$s tarafından, %2$s/%3$s içinde, sahibi %4$s olan", - "Create a new deck card" : "Yeni tahta kartı ekle", + "Create a new deck card" : "Yeni tahta kartı oluştur", "Card comments" : "Kart yorumları", - "%s on %s" : "%s, %s hakkında", + "%s on %s" : "%s, %s ile ilgili", "Deck boards and cards" : "Tahta panoları ve kartlar", "No data was provided to create an attachment." : "Bir ek dosya oluşturmak için herhangi bir veri belirtilmedi.", "Finished" : "Tamamlandı", @@ -119,7 +119,7 @@ "2. Drag cards left and right, up and down" : "2. Kartları sağa, sola, aşağı ve yukarı sürükleyin", "3. Apply rich formatting and link content" : "3. Zengin biçim uygulayın ve içeriği bağlayın", "4. Share, comment and collaborate!" : "4. Paylaşın, yorum ve iş birliği yapın! ", - "Create your first card!" : "İlk kartınızı ekleyin!", + "Create your first card!" : "İlk kartınızı oluşturun!", "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Bu yorum %s karakterden uzun.\nKarta %s adıyla ek dosya olarak eklendi.\nŞu adresten erişilebilir: %s.", "Attachments" : "Ek dosyalar", "File" : "Dosya", @@ -127,6 +127,7 @@ "Card not found" : "Kart bulunamadı", "Path is already shared with this card" : "Bu yol bu kart ile zaten paylaşılmış", "Invalid date, date format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Yığınlar, kartlar, etiketler, ödevler ve yorumlar gibi size ait tüm panolar", "Personal planning and team project organization" : "Kişisel planlama ve takım projesi yönetimi", "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" : "Tahta, Nextcloud ile bütünleştirilmiş takımlar için Kanban tarzında bir kişisel planlama ve proje yönetimi uygulamasıdır.\n\n\n- 📥 Görevleri kartlara ekleyerek sıralayabilirsiniz\n- 📄 Markdown ile biçimlendirilmiş notlar ekleyebilirsiniz\n- 🔖 Daha iyi düzenleme için etiketler atayabilirsiniz\n- 👥 Takımınız, arkadaşlarınız ya da aileniz ile paylaşabilirsiniz\n- 📎 Dosyalar ekleyebilir ve Markdown açıklamasına gömebilirsiniz\n- 💬 Yorumları kullanarak konular üzerinde takımınız ile yazışabilirsiniz\n- ⚡ İşlem akışı ile değişiklikleri görebilirsiniz\n- 🚀 Projelerinizi düzenli tutarak izleyebilirsiniz", "Add board" : "Pano ekle", @@ -173,6 +174,8 @@ "Clear filter" : "Süzgeci temizle", "View Modes" : "Görünüm kipleri", "Toggle View Modes" : "Görünüm kiplerini değiştir", + "Kanban view" : "Kanban görünümü", + "Gantt view" : "Gantt görünümü", "Hide archived cards" : "Arşivlenmiş kartları gizle", "Show archived cards" : "Arşivlenmiş kartları görüntüle", "Toggle compact mode" : "Sıkışık kipi aç/kapat", @@ -208,7 +211,7 @@ "Currently present people" : "Şu anda var olan kişiler", "Loading board" : "Pano yükleniyor", "Board not found" : "Pano bulunamadı", - "Create a new list to add cards to this board" : "Bu panoya kartlar eklemek için yeni bir liste ekleyin", + "Create a new list to add cards to this board" : "Bu panoya kartlar eklemek için yeni bir liste oluşturun", "Sharing" : "Paylaşım", "Tags" : "Etiketler", "Deleted items" : "Silinmiş ögeler", @@ -216,7 +219,14 @@ "Deleted lists" : "Silinmiş listeler", "Undo" : "Geri al", "Deleted cards" : "Silinmiş kartlar", - "Failed to create share with {displayName}" : "{displayName} ile paylaşılamadı", + "Hours" : "Saat", + "Days" : "Gün", + "Weeks" : "Hafta", + "Months" : "Ay", + "No cards yet" : "Henüz bir kart yok", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Gantt çizelgesi olarak görmek için kartlarınıza bir başlangıç tarihi ve bitiş tarihi ekleyin", + "Cards without dates ({count})" : "Tarihleri olmayan kartlar ({count})", + "Failed to create share with {displayName}" : "{displayName} ile paylaşım oluşturulamadı", "Are you sure you want to transfer the board {title} to {user}?" : "{title} panosunu {user} kullanıcısına aktarmak istediğinize emin misiniz?", "Transfer the board." : "Panoyu aktar.", "Transfer" : "Aktar", @@ -261,6 +271,9 @@ "Remove attachment" : "Ek dosyayı sil", "Delete Attachment" : "Ek dosyasını sil", "Restore Attachment" : "Ek dosyasını geri yükle", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "Değiştirilme: {modifiedDate} ⸱ Oluşturulma: {createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "Değiştirilme: {modifiedDate}\nOluşturulma: {createdDate}\nOluşturan: {owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "Değiştirilme: {modifiedDate}\nOluşturulma: {createdDate}", "The title cannot be empty." : "Başlık boş olamaz.", "Cannot close unsaved card!" : "Kaydedilmemiş bir kart kapatılamaz!", "Open in sidebar view" : "Kenar çubuğu görünümünde aç", @@ -270,12 +283,21 @@ "No comments yet. Begin the discussion!" : "Henüz bir yorum yapılmamış. Tartışmayı başlatın!", "The comment cannot be empty." : "Yorum boş olamaz.", "The comment cannot be longer than 1000 characters." : "Yorum 1000 karakterden uzun olamaz.", + "Submit" : "Gönder", "Created:" : "Oluşturulma:", "In reply to" : "Şuna yanıtla", "Cancel reply" : "Yanıtı iptal et", "Reply" : "Yanıtla", "Update" : "Güncelle", + "Assign dependent cards" : "Bağlı kartları ata", + "Mark as done" : "Tamamlanmış olarak işaretle", + "Mark as not done" : "Tamamlanmamış olarak işaretle", + "Remove dependency" : "Bağlılığı kaldır", + "Add dependent card" : "Bağlı kart ekle", + "Assign a dependent card…" : "Bağlı bir kart ata…", + "Select a dependent card…" : "Bir bağlı kart seçin…", "Write a description …" : "Bir açıklama yazın …", + "The description has been changed by another user." : "Açıklama başka bir kullanıcı tarafından değiştirildi.", "Could not save description" : "Açıklama kaydedilemedi", "Description" : "Açıklama", "(Unsaved)" : "(Kaydedilmemiş)", @@ -299,11 +321,14 @@ "Add due date" : "Bitiş tarihi ekle", "Choose a date" : "Bir tarih seçin", "Remove due date" : "Bitiş tarihini kaldır", - "Mark as done" : "Tamamlanmış olarak işaretle", "Due at:" : "Bitiş tarihi:", "Not done" : "Tamamlanmamış", "Unarchive card" : "Kartı arşivden çıkar", "Archive card" : "Kartı arşivle", + "Assign a start date to this card…" : "Bu kartın başlangıç tarihini ayarlayın…", + "Set a start date" : "Bir başlangıç tarihi ayarlayın", + "Add start date" : "Başlangıç tarihi ekle", + "Remove start date" : "Başlangıç tarihini kaldır", "Assign a tag to this card…" : "Bu karta bir etiket ata…", "Select or create a tag…" : "Bir etiket seçin ya da oluşturun…", "Create a new tag:" : "Yeni etiket ekle:", @@ -313,12 +338,11 @@ "Edit card title" : "Kart başlığını düzenle", "Open link" : "Bağlantıyı aç", "Card deleted" : "Kart silindi", + "Change card color" : "Kart rengini değiştir", "Edit title" : "Başlığı düzenle", "Assign to me" : "Bana ata", "Unassign myself" : "Kendi atamamı kaldır", - "Mark as not done" : "Tamamlanmamış olarak işaretle", "Delete card" : "Kartı sil", - "seconds ago" : "saniye önce", "All boards" : "Tüm panolar", "Archived boards" : "Arşivlenmiş panolar", "Shared with you" : "Sizinle paylaşıldı", @@ -379,8 +403,8 @@ "{stack} in {board}" : "{stack} {board} panosunda", "Click to expand description" : "Açıklamayı genişletmek için tıklayın", "Click to expand comment" : "Yorumu genişletmek için tıklayın", - "Create card" : "Kart ekle", - "Create a new card" : "Yeni kart ekle", + "Create card" : "Kart oluştur", + "Create a new card" : "Yeni bir kart oluştur", "Card title" : "Kart başlığı", "Creating the new card …" : "Yeni kart ekleniyor…", "Card \"{card}\" was added to \"{board}\"" : "\"{card}\" kartı \"{board}\" panosuna eklendi", @@ -390,10 +414,10 @@ "upcoming cards today" : "bugün tamamlanması gereken kartlar", "upcoming cards tomorrow" : "yarın tamamlanması gereken kartlar", "upcoming cards" : "yaklaşan kartlar", - "New card" : "Kart ekle", + "New card" : "Yeni kart", "Link to a board" : "Bir pano bağlantısı", "Link to a card" : "Bir kart bağlantısı", - "Create a card" : "Bir kart ekle", + "Create a card" : "Bir kart oluştur", "Message from {author} in {conversationName}" : "{conversationName} görüşmesinde {author} iletisi", "Something went wrong" : "Bir sorun çıktı", "Failed to upload {name}" : "{name} yüklenemedi", @@ -411,6 +435,7 @@ "Searching for users, groups and teams …" : "Kullanıcılar, gruplar ve takımlar aranıyor…", "No participants found" : "Herhangi bir katılımcı bulunamadı", "Save" : "Kaydet", + "seconds ago" : "saniye önce", "Today" : "Bugün", "Tomorrow" : "Yarın", "No due" : "Bitiş yok" diff --git a/l10n/ug.js b/l10n/ug.js index 94be3047ac..ab7729069b 100644 --- a/l10n/ug.js +++ b/l10n/ug.js @@ -216,6 +216,11 @@ OC.L10N.register( "Deleted lists" : "ئۆچۈرۈلگەن تىزىملىك", "Undo" : "ئەمەلدىن قالدۇرۇش", "Deleted cards" : "ئۆچۈرۈلگەن كارتا", + "Hours" : "سائەت", + "Days" : "كۈنلەر", + "Weeks" : "ھەپتە", + "Months" : "ئايلار", + "No cards yet" : "تېخى كارتا يوق", "Failed to create share with {displayName}" : "{displayName} with بىلەن ئورتاقلىشىش مەغلۇب بولدى", "Are you sure you want to transfer the board {title} to {user}?" : "تاختا {title} نى {user} غا يۆتكىمەكچىمۇ؟", "Transfer the board." : "تاختىنى يۆتكەڭ.", @@ -268,11 +273,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "ھازىرچە ھېچقانداق باھا يوق. مۇنازىرىنى باشلاڭ!", "The comment cannot be empty." : "باھا قۇرۇق بولالمايدۇ.", "The comment cannot be longer than 1000 characters." : "بۇ باھا 1000 ھەرپتىن ئېشىپ كەتسە بولمايدۇ.", + "Submit" : "يوللاڭ", "Created:" : "قۇرۇلغان ۋاقتى:", "In reply to" : "دەپ جاۋاب بەردى", "Cancel reply" : "جاۋابنى ئەمەلدىن قالدۇرۇڭ", "Reply" : "جاۋاب قايتۇر", "Update" : "يېڭىلا", + "Mark as done" : "تاماملانغاندەك بەلگە", + "Mark as not done" : "ئىشلەنمىگەن دەپ بەلگە قويۇڭ", "Write a description …" : "چۈشەندۈرۈش يېزىڭ…", "Could not save description" : "چۈشەندۈرۈشنى ساقلىيالمىدى", "Description" : "چۈشەندۈرۈش", @@ -297,7 +305,6 @@ OC.L10N.register( "Add due date" : "مۇۋاپىق ۋاقىت قوشۇڭ", "Choose a date" : "چېسلانى تاللاڭ", "Remove due date" : "قەرەلى توشۇش", - "Mark as done" : "تاماملانغاندەك بەلگە", "Due at:" : "ۋاقتى:", "Not done" : "تاماملانمىدى", "Unarchive card" : "كارتىنى ئارخىپلىما", @@ -314,9 +321,7 @@ OC.L10N.register( "Edit title" : "ماۋزۇنى تەھرىرلەش", "Assign to me" : "ماڭا تاپشۇرۇڭ", "Unassign myself" : "ئۆزۈمنى بەلگىلىمەڭ", - "Mark as not done" : "ئىشلەنمىگەن دەپ بەلگە قويۇڭ", "Delete card" : "كارتىنى ئۆچۈرۈڭ", - "seconds ago" : "سېكۇنت بۇرۇن", "All boards" : "بارلىق تاختايلار", "Archived boards" : "ئارخىپ تاختىسى", "Shared with you" : "سىز بىلەن ھەمبەھىرلىدى", @@ -407,6 +412,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "ئىشلەتكۈچى ، گۇرۇپپا ۋە گۇرۇپپىلارنى ئىزدەش…", "No participants found" : "قاتناشقۇچىلار تېپىلمىدى", "Save" : "ساقلا", + "seconds ago" : "سېكۇنت بۇرۇن", "Today" : "بۈگۈن", "Tomorrow" : "ئەتە", "No due" : "مۇۋاپىق ئەمەس" diff --git a/l10n/ug.json b/l10n/ug.json index 95e82bf656..bc73978760 100644 --- a/l10n/ug.json +++ b/l10n/ug.json @@ -214,6 +214,11 @@ "Deleted lists" : "ئۆچۈرۈلگەن تىزىملىك", "Undo" : "ئەمەلدىن قالدۇرۇش", "Deleted cards" : "ئۆچۈرۈلگەن كارتا", + "Hours" : "سائەت", + "Days" : "كۈنلەر", + "Weeks" : "ھەپتە", + "Months" : "ئايلار", + "No cards yet" : "تېخى كارتا يوق", "Failed to create share with {displayName}" : "{displayName} with بىلەن ئورتاقلىشىش مەغلۇب بولدى", "Are you sure you want to transfer the board {title} to {user}?" : "تاختا {title} نى {user} غا يۆتكىمەكچىمۇ؟", "Transfer the board." : "تاختىنى يۆتكەڭ.", @@ -266,11 +271,14 @@ "No comments yet. Begin the discussion!" : "ھازىرچە ھېچقانداق باھا يوق. مۇنازىرىنى باشلاڭ!", "The comment cannot be empty." : "باھا قۇرۇق بولالمايدۇ.", "The comment cannot be longer than 1000 characters." : "بۇ باھا 1000 ھەرپتىن ئېشىپ كەتسە بولمايدۇ.", + "Submit" : "يوللاڭ", "Created:" : "قۇرۇلغان ۋاقتى:", "In reply to" : "دەپ جاۋاب بەردى", "Cancel reply" : "جاۋابنى ئەمەلدىن قالدۇرۇڭ", "Reply" : "جاۋاب قايتۇر", "Update" : "يېڭىلا", + "Mark as done" : "تاماملانغاندەك بەلگە", + "Mark as not done" : "ئىشلەنمىگەن دەپ بەلگە قويۇڭ", "Write a description …" : "چۈشەندۈرۈش يېزىڭ…", "Could not save description" : "چۈشەندۈرۈشنى ساقلىيالمىدى", "Description" : "چۈشەندۈرۈش", @@ -295,7 +303,6 @@ "Add due date" : "مۇۋاپىق ۋاقىت قوشۇڭ", "Choose a date" : "چېسلانى تاللاڭ", "Remove due date" : "قەرەلى توشۇش", - "Mark as done" : "تاماملانغاندەك بەلگە", "Due at:" : "ۋاقتى:", "Not done" : "تاماملانمىدى", "Unarchive card" : "كارتىنى ئارخىپلىما", @@ -312,9 +319,7 @@ "Edit title" : "ماۋزۇنى تەھرىرلەش", "Assign to me" : "ماڭا تاپشۇرۇڭ", "Unassign myself" : "ئۆزۈمنى بەلگىلىمەڭ", - "Mark as not done" : "ئىشلەنمىگەن دەپ بەلگە قويۇڭ", "Delete card" : "كارتىنى ئۆچۈرۈڭ", - "seconds ago" : "سېكۇنت بۇرۇن", "All boards" : "بارلىق تاختايلار", "Archived boards" : "ئارخىپ تاختىسى", "Shared with you" : "سىز بىلەن ھەمبەھىرلىدى", @@ -405,6 +410,7 @@ "Searching for users, groups and teams …" : "ئىشلەتكۈچى ، گۇرۇپپا ۋە گۇرۇپپىلارنى ئىزدەش…", "No participants found" : "قاتناشقۇچىلار تېپىلمىدى", "Save" : "ساقلا", + "seconds ago" : "سېكۇنت بۇرۇن", "Today" : "بۈگۈن", "Tomorrow" : "ئەتە", "No due" : "مۇۋاپىق ئەمەس" diff --git a/l10n/uk.js b/l10n/uk.js index 8932ac3271..558df02dd2 100644 --- a/l10n/uk.js +++ b/l10n/uk.js @@ -17,15 +17,15 @@ OC.L10N.register( "{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}", + "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}", + "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}", + "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}", @@ -48,12 +48,12 @@ OC.L10N.register( "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} в списку {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 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}", + "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}", @@ -61,8 +61,8 @@ OC.L10N.register( "{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 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}", @@ -129,6 +129,7 @@ OC.L10N.register( "Card not found" : "Картку не знайдено", "Path is already shared with this card" : "Шлях вже є спільним з цією карткою", "Invalid date, date format must be YYYY-MM-DD" : "Недійсна дата, формат дати має бути РРРР-ММ-ДД", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Всі ваші дошки, включно стеки, картки, ярлики, призначення та коментарі", "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 - це інструмент організації в стилі канбан, призначений для особистого планування та організації проектів для команд, інтегрованих з Nextcloud.\n\n\n- 📥 Додавайте свої завдання на картки та впорядковуйте їх\n- 📄 Записуйте додаткові нотатки в Markdown\n- 🔖 Призначайте мітки для ще кращої організації\n- 👥 Діліться з командою, друзями чи родиною\n- Прикріплюйте файли та вбудовуйте їх в опис Markdown\n- 💬 Обговорюйте зі своєю командою за допомогою коментарів\n- ⚡ Відстежуйте зміни в потоці активностей\n- 🚀 Організуйте свій проект", "Add board" : "Додати дошку", @@ -158,7 +159,7 @@ OC.L10N.register( "Add list" : "Додати список", "List name" : "Назва списку", "Active filters" : "Активні фільтри", - "Apply filter" : "Фільтрувати", + "Apply filter" : "Швидкий фільтр", "Filter by tag" : "Відібрати за мітками", "Filter by assigned user" : "Відібрати за призначеним користувачем", "Unassigned" : "Скасовано призначення", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "Очистити фільтр", "View Modes" : "Режими перегляду", "Toggle View Modes" : "Перемикання режимів перегляду", + "Kanban view" : "Подання Канбан", + "Gantt view" : "Подання Ґант", "Hide archived cards" : "Приховати архівні картки", "Show archived cards" : "Показати архівні картки", "Toggle compact mode" : "Перемкнути компактний вигляд", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "Вилучені списки", "Undo" : "Скасувати", "Deleted cards" : "Вилучені картки", + "Hours" : "Години", + "Days" : "Дні", + "Weeks" : "Тижні", + "Months" : "Місяці", + "No cards yet" : "Ще немає жодної картки", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Зазначте у картці дату початку та завершення, щоби ці дані було показано на діаграмі Ґанта ", + "Cards without dates ({count})" : "Карток без дати ({count})", "Failed to create share with {displayName}" : "Не вдалося створити спільний доступ з {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Ви впевнені, що хочете перенести дошку {title} користувачеві {user}?", "Transfer the board." : "Перенесіть дошку.", @@ -233,7 +243,7 @@ OC.L10N.register( "Can manage" : "Може керувати", "Owner" : "Власник", "Delete" : "Вилучити", - "List deleted" : "Список видалено", + "List deleted" : "Список вилучено", "Edit list title" : "Редагувати заголовок списку", "Archive all cards" : "Архівувати всі картки", "Unarchive all cards" : "Розархівувати всі картки", @@ -275,11 +285,19 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Коментарів немає, почніть обговорення!", "The comment cannot be empty." : "Коментар не може бути порожнім.", "The comment cannot be longer than 1000 characters." : "Коментар не може бути довшим за 1000 символів.", + "Submit" : "Відправити", "Created:" : "Створено:", "In reply to" : "У відповідь", "Cancel reply" : "Скасувати відповідь", "Reply" : "Відповісти", "Update" : "Оновлення", + "Assign dependent cards" : "Призначити пов'язані картки", + "Mark as done" : "Позначити як виконане", + "Mark as not done" : "Позначити як не виконано", + "Remove dependency" : "Вилучити залежності", + "Add dependent card" : "Додати пов'язану картку", + "Assign a dependent card…" : "Призначити пов'язану картку...", + "Select a dependent card…" : "Виберіть пов'язану картку...", "Write a description …" : "Додайте опис ...", "The description has been changed by another user." : "Опис змінено іншим користувачем. ", "Could not save description" : "Не вдалося зберегти опис", @@ -305,7 +323,6 @@ OC.L10N.register( "Add due date" : "Додати термін сплати", "Choose a date" : "Виберіть дату", "Remove due date" : "Вилучити кінцеву дату", - "Mark as done" : "Позначити як виконане", "Due at:" : "На часі:", "Not done" : "Ще не все.", "Unarchive card" : "Розархівувати картку", @@ -315,20 +332,19 @@ OC.L10N.register( "Add start date" : "Додати дату початку", "Remove start date" : "Вилучити дату початку", "Assign a tag to this card…" : "Додати мітку до цієї картки", - "Select or create a tag…" : "Виберіть або створіть тег...", - "Create a new tag:" : "Створіть новий тег:", + "Select or create a tag…" : "Виберіть або створіть мітку ...", + "Create a new tag:" : "Створіть нову мітку:", "(group)" : "(група)", "{count} comments, {unread} unread" : "{count} коментарів, {unread} непрочитаних", "Todo items" : "Пункти завдань", "Edit card title" : "Редагувати заголовок картки", "Open link" : "Відкрити посилання", - "Card deleted" : "Картку видалено", + "Card deleted" : "Картку вилучено", + "Change card color" : "Змінити колір картки", "Edit title" : "Редагувати", "Assign to me" : "Призначити мені", "Unassign myself" : "Зняти з себе повноваження.", - "Mark as not done" : "Позначити як не виконано", "Delete card" : "Вилучити картку", - "seconds ago" : "секунд тому", "All boards" : "Усі дошки", "Archived boards" : "Архівні дошки", "Shared with you" : "Вам надано доступ", @@ -339,7 +355,7 @@ OC.L10N.register( "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 including archived cards." : "Ви впевнені, що хочете вилучити дошку {title}? Це призведе до видалення всіх даних цієї дошки, включно архівні картки.", + "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Ви впевнені, що хочете вилучити дошку {title}? Це призведе до повного вилучення всіх даних цієї дошки, включно архівні картки.", "Delete the board?" : "Вилучити дошку?", "Are you sure you want to leave the board {title}?" : "Дійсно залишити дошку {title}?", "Leave the board?" : "Залишити дошку?", @@ -347,7 +363,7 @@ OC.L10N.register( "Failed to leave the board" : "Не вдалося залишити дошку", "Exporting board..." : "Експортна дошка...", "Board details" : "Деталі дошки", - "Edit board" : "Редагувати дошку", + "Edit board" : "Перейменувати", "Clone board" : "Копіювати дошку", "Unarchive board" : "Розархівувати дошку", "Archive board" : "Архівувати дошку", @@ -361,14 +377,14 @@ OC.L10N.register( "No notifications" : "Немає сповіщень", "Delete board" : "Вилучити дошку", "Leave board" : "Залишити дошку", - "Importing board..." : "Імпортна дошка...", + "Importing board..." : "Імпортування дошки...", "Board imported successfully" : "Плату успішно імпортовано", - "Import board" : "Імпортна дошка", - "Clone {boardTitle}" : "Клон {boardTitle}", + "Import board" : "Імпорт дошки", + "Clone {boardTitle}" : "Копіювати {boardTitle}", "Clone cards" : "Копіювати картки", - "Clone assignments" : "Призначення клонів", - "Clone labels" : "Етикетки клонів", - "Clone due dates" : "Клонувати дві дати", + "Clone assignments" : "Призначення копій", + "Clone labels" : "Етикетки копій", + "Clone due dates" : "Копіювати дати завершення", "Advanced options" : "Розширені налаштування", "Move all cards to the first list" : "Перемістіть усі картки до першого списку", "Restore archived cards" : "Відновлення заархівованих карток", @@ -376,8 +392,8 @@ OC.L10N.register( "Export {boardTitle}" : "Експорт {boardTitle}", "Export as JSON" : "Експорт як JSON", "Export as CSV" : "Експорт у CSV", - "Note: Only the JSON format is supported for importing back into the Deck app." : "Примітка: Для імпорту в додаток Deck підтримується лише формат JSON.", - "Export" : "Експортувати", + "Note: Only the JSON format is supported for importing back into the Deck app." : "Примітка: Дані для імпорту до застосунку Колоди підтримуються лише у форматі JSON.", + "Export" : "Експорт", "Loading filtered view" : "Завантаження відфільтрованого перегляду", "Search for {searchQuery} in other boards" : "Шукати {searchQuery} на інших дошках", "Search for {searchQuery} in all boards" : "Шукати {searchQuery} на всіх дошках оголошень", @@ -413,14 +429,15 @@ OC.L10N.register( "Created" : "Створено", "Modified" : "Змінено", "Error creating the share" : "Помилка створення спільного доступу", - "Share with a Deck card" : "Поділітися з картою з колоди", - "Share {file} with a Deck card" : "Поділітися {file} з картою колоди", + "Share with a Deck card" : "Поділітися з карткою колоди", + "Share {file} with a Deck card" : "Поділітися {file} з карткою з колоди", "Share" : "Спільний доступ", "The card \"%s\" on \"%s\" has reached its due date." : "Термін дії картки \"%s\" на \"%s\" закінчився.", "Share board with a user, group or team …" : "Спільний доступ до дошки з користувачем, групою або командою ...", "Searching for users, groups and teams …" : "Пошук користувачів, груп і команд ...", "No participants found" : "Учасників не знайдено", "Save" : "Зберегти", + "seconds ago" : "секунд тому", "Today" : "Сьогодні", "Tomorrow" : "Завтра", "No due" : "Без призначеної дати" diff --git a/l10n/uk.json b/l10n/uk.json index 48ffb1d72d..cf6c6f8ecb 100644 --- a/l10n/uk.json +++ b/l10n/uk.json @@ -15,15 +15,15 @@ "{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}", + "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}", + "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}", + "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}", @@ -46,12 +46,12 @@ "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} в списку {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 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}", + "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}", @@ -59,8 +59,8 @@ "{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 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}", @@ -127,6 +127,7 @@ "Card not found" : "Картку не знайдено", "Path is already shared with this card" : "Шлях вже є спільним з цією карткою", "Invalid date, date format must be YYYY-MM-DD" : "Недійсна дата, формат дати має бути РРРР-ММ-ДД", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "Всі ваші дошки, включно стеки, картки, ярлики, призначення та коментарі", "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 - це інструмент організації в стилі канбан, призначений для особистого планування та організації проектів для команд, інтегрованих з Nextcloud.\n\n\n- 📥 Додавайте свої завдання на картки та впорядковуйте їх\n- 📄 Записуйте додаткові нотатки в Markdown\n- 🔖 Призначайте мітки для ще кращої організації\n- 👥 Діліться з командою, друзями чи родиною\n- Прикріплюйте файли та вбудовуйте їх в опис Markdown\n- 💬 Обговорюйте зі своєю командою за допомогою коментарів\n- ⚡ Відстежуйте зміни в потоці активностей\n- 🚀 Організуйте свій проект", "Add board" : "Додати дошку", @@ -156,7 +157,7 @@ "Add list" : "Додати список", "List name" : "Назва списку", "Active filters" : "Активні фільтри", - "Apply filter" : "Фільтрувати", + "Apply filter" : "Швидкий фільтр", "Filter by tag" : "Відібрати за мітками", "Filter by assigned user" : "Відібрати за призначеним користувачем", "Unassigned" : "Скасовано призначення", @@ -173,6 +174,8 @@ "Clear filter" : "Очистити фільтр", "View Modes" : "Режими перегляду", "Toggle View Modes" : "Перемикання режимів перегляду", + "Kanban view" : "Подання Канбан", + "Gantt view" : "Подання Ґант", "Hide archived cards" : "Приховати архівні картки", "Show archived cards" : "Показати архівні картки", "Toggle compact mode" : "Перемкнути компактний вигляд", @@ -216,6 +219,13 @@ "Deleted lists" : "Вилучені списки", "Undo" : "Скасувати", "Deleted cards" : "Вилучені картки", + "Hours" : "Години", + "Days" : "Дні", + "Weeks" : "Тижні", + "Months" : "Місяці", + "No cards yet" : "Ще немає жодної картки", + "Set a start date and due date on your cards to see them on the Gantt chart" : "Зазначте у картці дату початку та завершення, щоби ці дані було показано на діаграмі Ґанта ", + "Cards without dates ({count})" : "Карток без дати ({count})", "Failed to create share with {displayName}" : "Не вдалося створити спільний доступ з {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Ви впевнені, що хочете перенести дошку {title} користувачеві {user}?", "Transfer the board." : "Перенесіть дошку.", @@ -231,7 +241,7 @@ "Can manage" : "Може керувати", "Owner" : "Власник", "Delete" : "Вилучити", - "List deleted" : "Список видалено", + "List deleted" : "Список вилучено", "Edit list title" : "Редагувати заголовок списку", "Archive all cards" : "Архівувати всі картки", "Unarchive all cards" : "Розархівувати всі картки", @@ -273,11 +283,19 @@ "No comments yet. Begin the discussion!" : "Коментарів немає, почніть обговорення!", "The comment cannot be empty." : "Коментар не може бути порожнім.", "The comment cannot be longer than 1000 characters." : "Коментар не може бути довшим за 1000 символів.", + "Submit" : "Відправити", "Created:" : "Створено:", "In reply to" : "У відповідь", "Cancel reply" : "Скасувати відповідь", "Reply" : "Відповісти", "Update" : "Оновлення", + "Assign dependent cards" : "Призначити пов'язані картки", + "Mark as done" : "Позначити як виконане", + "Mark as not done" : "Позначити як не виконано", + "Remove dependency" : "Вилучити залежності", + "Add dependent card" : "Додати пов'язану картку", + "Assign a dependent card…" : "Призначити пов'язану картку...", + "Select a dependent card…" : "Виберіть пов'язану картку...", "Write a description …" : "Додайте опис ...", "The description has been changed by another user." : "Опис змінено іншим користувачем. ", "Could not save description" : "Не вдалося зберегти опис", @@ -303,7 +321,6 @@ "Add due date" : "Додати термін сплати", "Choose a date" : "Виберіть дату", "Remove due date" : "Вилучити кінцеву дату", - "Mark as done" : "Позначити як виконане", "Due at:" : "На часі:", "Not done" : "Ще не все.", "Unarchive card" : "Розархівувати картку", @@ -313,20 +330,19 @@ "Add start date" : "Додати дату початку", "Remove start date" : "Вилучити дату початку", "Assign a tag to this card…" : "Додати мітку до цієї картки", - "Select or create a tag…" : "Виберіть або створіть тег...", - "Create a new tag:" : "Створіть новий тег:", + "Select or create a tag…" : "Виберіть або створіть мітку ...", + "Create a new tag:" : "Створіть нову мітку:", "(group)" : "(група)", "{count} comments, {unread} unread" : "{count} коментарів, {unread} непрочитаних", "Todo items" : "Пункти завдань", "Edit card title" : "Редагувати заголовок картки", "Open link" : "Відкрити посилання", - "Card deleted" : "Картку видалено", + "Card deleted" : "Картку вилучено", + "Change card color" : "Змінити колір картки", "Edit title" : "Редагувати", "Assign to me" : "Призначити мені", "Unassign myself" : "Зняти з себе повноваження.", - "Mark as not done" : "Позначити як не виконано", "Delete card" : "Вилучити картку", - "seconds ago" : "секунд тому", "All boards" : "Усі дошки", "Archived boards" : "Архівні дошки", "Shared with you" : "Вам надано доступ", @@ -337,7 +353,7 @@ "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 including archived cards." : "Ви впевнені, що хочете вилучити дошку {title}? Це призведе до видалення всіх даних цієї дошки, включно архівні картки.", + "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Ви впевнені, що хочете вилучити дошку {title}? Це призведе до повного вилучення всіх даних цієї дошки, включно архівні картки.", "Delete the board?" : "Вилучити дошку?", "Are you sure you want to leave the board {title}?" : "Дійсно залишити дошку {title}?", "Leave the board?" : "Залишити дошку?", @@ -345,7 +361,7 @@ "Failed to leave the board" : "Не вдалося залишити дошку", "Exporting board..." : "Експортна дошка...", "Board details" : "Деталі дошки", - "Edit board" : "Редагувати дошку", + "Edit board" : "Перейменувати", "Clone board" : "Копіювати дошку", "Unarchive board" : "Розархівувати дошку", "Archive board" : "Архівувати дошку", @@ -359,14 +375,14 @@ "No notifications" : "Немає сповіщень", "Delete board" : "Вилучити дошку", "Leave board" : "Залишити дошку", - "Importing board..." : "Імпортна дошка...", + "Importing board..." : "Імпортування дошки...", "Board imported successfully" : "Плату успішно імпортовано", - "Import board" : "Імпортна дошка", - "Clone {boardTitle}" : "Клон {boardTitle}", + "Import board" : "Імпорт дошки", + "Clone {boardTitle}" : "Копіювати {boardTitle}", "Clone cards" : "Копіювати картки", - "Clone assignments" : "Призначення клонів", - "Clone labels" : "Етикетки клонів", - "Clone due dates" : "Клонувати дві дати", + "Clone assignments" : "Призначення копій", + "Clone labels" : "Етикетки копій", + "Clone due dates" : "Копіювати дати завершення", "Advanced options" : "Розширені налаштування", "Move all cards to the first list" : "Перемістіть усі картки до першого списку", "Restore archived cards" : "Відновлення заархівованих карток", @@ -374,8 +390,8 @@ "Export {boardTitle}" : "Експорт {boardTitle}", "Export as JSON" : "Експорт як JSON", "Export as CSV" : "Експорт у CSV", - "Note: Only the JSON format is supported for importing back into the Deck app." : "Примітка: Для імпорту в додаток Deck підтримується лише формат JSON.", - "Export" : "Експортувати", + "Note: Only the JSON format is supported for importing back into the Deck app." : "Примітка: Дані для імпорту до застосунку Колоди підтримуються лише у форматі JSON.", + "Export" : "Експорт", "Loading filtered view" : "Завантаження відфільтрованого перегляду", "Search for {searchQuery} in other boards" : "Шукати {searchQuery} на інших дошках", "Search for {searchQuery} in all boards" : "Шукати {searchQuery} на всіх дошках оголошень", @@ -411,14 +427,15 @@ "Created" : "Створено", "Modified" : "Змінено", "Error creating the share" : "Помилка створення спільного доступу", - "Share with a Deck card" : "Поділітися з картою з колоди", - "Share {file} with a Deck card" : "Поділітися {file} з картою колоди", + "Share with a Deck card" : "Поділітися з карткою колоди", + "Share {file} with a Deck card" : "Поділітися {file} з карткою з колоди", "Share" : "Спільний доступ", "The card \"%s\" on \"%s\" has reached its due date." : "Термін дії картки \"%s\" на \"%s\" закінчився.", "Share board with a user, group or team …" : "Спільний доступ до дошки з користувачем, групою або командою ...", "Searching for users, groups and teams …" : "Пошук користувачів, груп і команд ...", "No participants found" : "Учасників не знайдено", "Save" : "Зберегти", + "seconds ago" : "секунд тому", "Today" : "Сьогодні", "Tomorrow" : "Завтра", "No due" : "Без призначеної дати" diff --git a/l10n/uz.js b/l10n/uz.js index 207429c90d..44abd7816d 100644 --- a/l10n/uz.js +++ b/l10n/uz.js @@ -38,6 +38,10 @@ OC.L10N.register( "Tags" : "Tags", "Activity" : "Faollik", "Undo" : "Bekor qilish", + "Hours" : "Hours", + "Days" : "Kunlar", + "No cards yet" : "Hali kartalar yo'q", + "(remote)" : "(remote)", "Can edit" : "Can edit", "Owner" : "Owner", "Delete" : "O'chirish", @@ -45,17 +49,17 @@ OC.L10N.register( "Edit" : "Tahrirlash", "Download" : "Yuklab olish", "Comments" : "Comments", + "Submit" : "Yuborish", "In reply to" : "ga javoban", "Reply" : "Javob bering", "Update" : "Update", + "Mark as done" : "Bajarildi deb belgilang", "Description" : "Tavsif", "Edit description" : "Tavsifni tahrirlash", - "Mark as done" : "Bajarildi deb belgilang", "Not done" : "Bajarilmadi", "Archive card" : "Arxiv kartasi", "Edit title" : "Sarlavhani tahrirlash", "Delete card" : "Kartani o'chirish", - "seconds ago" : "seconds ago", "Archived boards" : "Arxivlangan taxtalar", "Shared with you" : "Shared with you", "Cancel edit" : "Tahrirni bekor qilish", @@ -74,6 +78,7 @@ OC.L10N.register( "Modified" : "Modified", "Share" : "Ulashish", "Save" : "Saqlash", + "seconds ago" : "seconds ago", "Today" : "Today", "Tomorrow" : "Ertaga" }, diff --git a/l10n/uz.json b/l10n/uz.json index 24cbabd68c..743d54234f 100644 --- a/l10n/uz.json +++ b/l10n/uz.json @@ -36,6 +36,10 @@ "Tags" : "Tags", "Activity" : "Faollik", "Undo" : "Bekor qilish", + "Hours" : "Hours", + "Days" : "Kunlar", + "No cards yet" : "Hali kartalar yo'q", + "(remote)" : "(remote)", "Can edit" : "Can edit", "Owner" : "Owner", "Delete" : "O'chirish", @@ -43,17 +47,17 @@ "Edit" : "Tahrirlash", "Download" : "Yuklab olish", "Comments" : "Comments", + "Submit" : "Yuborish", "In reply to" : "ga javoban", "Reply" : "Javob bering", "Update" : "Update", + "Mark as done" : "Bajarildi deb belgilang", "Description" : "Tavsif", "Edit description" : "Tavsifni tahrirlash", - "Mark as done" : "Bajarildi deb belgilang", "Not done" : "Bajarilmadi", "Archive card" : "Arxiv kartasi", "Edit title" : "Sarlavhani tahrirlash", "Delete card" : "Kartani o'chirish", - "seconds ago" : "seconds ago", "Archived boards" : "Arxivlangan taxtalar", "Shared with you" : "Shared with you", "Cancel edit" : "Tahrirni bekor qilish", @@ -72,6 +76,7 @@ "Modified" : "Modified", "Share" : "Ulashish", "Save" : "Saqlash", + "seconds ago" : "seconds ago", "Today" : "Today", "Tomorrow" : "Ertaga" },"pluralForm" :"nplurals=1; plural=0;" diff --git a/l10n/vi.js b/l10n/vi.js index c3d8b1538d..e8d916e683 100644 --- a/l10n/vi.js +++ b/l10n/vi.js @@ -212,6 +212,11 @@ OC.L10N.register( "Deleted lists" : "Danh sách đã bị xóa", "Undo" : "Hoàn tác", "Deleted cards" : "Thẻ đã xóa", + "Hours" : "Giờ", + "Days" : "Ngày", + "Weeks" : "Tuần", + "Months" : "Tháng", + "No cards yet" : "Hiện tại chưa có thẻ nào", "Failed to create share with {displayName}" : "Không thể tạo chia sẻ với {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Bạn có chắc chắn muốn chuyển bảng {title} cho {user} không?", "Transfer the board." : "Chuyển bảng.", @@ -263,11 +268,14 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "Chưa có bình luận. Bắt đầu cuộc thảo luận!", "The comment cannot be empty." : "Bình luận không thể để trống.", "The comment cannot be longer than 1000 characters." : "Bình luận không thể dài hơn 1000 ký tự.", + "Submit" : "Gửi", "Created:" : "Đã tạo:", "In reply to" : "Trả lời", "Cancel reply" : "Hủy bỏ trả lời", "Reply" : "Trả l", "Update" : "Cập nhật", + "Mark as done" : "Đánh dấu là đã hoàn thành", + "Mark as not done" : "Đánh dấu là chưa hoàn thành", "Write a description …" : "Viết một mô tả ...", "Description" : "Mô tả", "(Unsaved)" : "(Chưa Lưu)", @@ -291,7 +299,6 @@ OC.L10N.register( "Add due date" : "Thêm ngày đáo hạn", "Choose a date" : "Chọn một ngày", "Remove due date" : "Xóa thời hạn", - "Mark as done" : "Đánh dấu là đã hoàn thành", "Due at:" : "Đến lúc:", "Not done" : "Chưa hoàn thành", "Unarchive card" : "Thẻ chưa lưu trữ", @@ -308,9 +315,7 @@ OC.L10N.register( "Edit title" : "Chỉnh sửa tiêu đề", "Assign to me" : "Phân công cho tôi", "Unassign myself" : "Hủy bỏ phân công cho tôi", - "Mark as not done" : "Đánh dấu là chưa hoàn thành", "Delete card" : "Xoá thẻ", - "seconds ago" : "vài giây trước", "All boards" : "Tất cả các bảng", "Archived boards" : "Dự án đã lưu trữ", "Shared with you" : "Đã chia sẻ với bạn", @@ -395,6 +400,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "Đang tìm kiếm người dùng, nhóm và đội ...", "No participants found" : "Không tìm thấy người tham gia", "Save" : "Lưu", + "seconds ago" : "vài giây trước", "Today" : "Hôm nay", "Tomorrow" : "Ngày mai", "No due" : "Không có ngày hết hạn" diff --git a/l10n/vi.json b/l10n/vi.json index 33c8e11193..5f640eaa53 100644 --- a/l10n/vi.json +++ b/l10n/vi.json @@ -210,6 +210,11 @@ "Deleted lists" : "Danh sách đã bị xóa", "Undo" : "Hoàn tác", "Deleted cards" : "Thẻ đã xóa", + "Hours" : "Giờ", + "Days" : "Ngày", + "Weeks" : "Tuần", + "Months" : "Tháng", + "No cards yet" : "Hiện tại chưa có thẻ nào", "Failed to create share with {displayName}" : "Không thể tạo chia sẻ với {displayName}", "Are you sure you want to transfer the board {title} to {user}?" : "Bạn có chắc chắn muốn chuyển bảng {title} cho {user} không?", "Transfer the board." : "Chuyển bảng.", @@ -261,11 +266,14 @@ "No comments yet. Begin the discussion!" : "Chưa có bình luận. Bắt đầu cuộc thảo luận!", "The comment cannot be empty." : "Bình luận không thể để trống.", "The comment cannot be longer than 1000 characters." : "Bình luận không thể dài hơn 1000 ký tự.", + "Submit" : "Gửi", "Created:" : "Đã tạo:", "In reply to" : "Trả lời", "Cancel reply" : "Hủy bỏ trả lời", "Reply" : "Trả l", "Update" : "Cập nhật", + "Mark as done" : "Đánh dấu là đã hoàn thành", + "Mark as not done" : "Đánh dấu là chưa hoàn thành", "Write a description …" : "Viết một mô tả ...", "Description" : "Mô tả", "(Unsaved)" : "(Chưa Lưu)", @@ -289,7 +297,6 @@ "Add due date" : "Thêm ngày đáo hạn", "Choose a date" : "Chọn một ngày", "Remove due date" : "Xóa thời hạn", - "Mark as done" : "Đánh dấu là đã hoàn thành", "Due at:" : "Đến lúc:", "Not done" : "Chưa hoàn thành", "Unarchive card" : "Thẻ chưa lưu trữ", @@ -306,9 +313,7 @@ "Edit title" : "Chỉnh sửa tiêu đề", "Assign to me" : "Phân công cho tôi", "Unassign myself" : "Hủy bỏ phân công cho tôi", - "Mark as not done" : "Đánh dấu là chưa hoàn thành", "Delete card" : "Xoá thẻ", - "seconds ago" : "vài giây trước", "All boards" : "Tất cả các bảng", "Archived boards" : "Dự án đã lưu trữ", "Shared with you" : "Đã chia sẻ với bạn", @@ -393,6 +398,7 @@ "Searching for users, groups and teams …" : "Đang tìm kiếm người dùng, nhóm và đội ...", "No participants found" : "Không tìm thấy người tham gia", "Save" : "Lưu", + "seconds ago" : "vài giây trước", "Today" : "Hôm nay", "Tomorrow" : "Ngày mai", "No due" : "Không có ngày hết hạn" diff --git a/l10n/zh_CN.js b/l10n/zh_CN.js index 2953190d9e..26b127b9d7 100644 --- a/l10n/zh_CN.js +++ b/l10n/zh_CN.js @@ -129,6 +129,7 @@ OC.L10N.register( "Card not found" : "未找到卡片", "Path is already shared with this card" : "已和这张卡片分享了路径", "Invalid date, date format must be YYYY-MM-DD" : "无效日期,日期格式必须为 YYYY-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "您拥有的所有面板,包括堆栈、卡片、标签、任务和评论", "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" : "看板应用程序是一个看板风格的管理工具,旨在为与Nextcloud集成的团队进行个人规划和项目管理。\n\n\n- 📥 添加您的任务到卡片并将之整理好\n- 📄 用Markdown写下额外的注释\n- 🔖 分配标签以更好地管理您的工作\n- 👥 与您的团队、朋友或家人分享\n- 📎 附件文件并将其嵌入到您的Markdown描述中\n- 💬 使用评论与您的团队沟通\n- ⚡ 在活动流中跟踪变更情况\n- 🚀 让您的项目井井有条", "Add board" : "添加面板", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "清除筛选", "View Modes" : "视图模式", "Toggle View Modes" : "切换视图模式", + "Kanban view" : "看板视图", + "Gantt view" : "甘特图", "Hide archived cards" : "隐藏已归档卡片", "Show archived cards" : "显示已归档卡片", "Toggle compact mode" : "切换简洁模式", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "已删除的列表", "Undo" : "撤消", "Deleted cards" : "已删除的卡片", + "Hours" : "小时", + "Days" : "天", + "Weeks" : "周", + "Months" : "月", + "No cards yet" : "暂无卡片", + "Set a start date and due date on your cards to see them on the Gantt chart" : "在卡片上设置开始日期和截止日期,以便在甘特图上查看它们", + "Cards without dates ({count})" : "没有日期的卡片({count})", "Failed to create share with {displayName}" : "用{displayName}创建分享失败", "Are you sure you want to transfer the board {title} to {user}?" : "您确定要将面板 {title} 转移到 {user} 吗?", "Transfer the board." : "转移面板。", @@ -237,6 +247,8 @@ OC.L10N.register( "Edit list title" : "编辑列表标题", "Archive all cards" : "归档所有卡片", "Unarchive all cards" : "取消归档所有卡片", + "Do not set cards as \"done\"" : "不要将卡片设置为“完成”", + "Set cards as \"done\"" : "将卡片设置为“完成”", "Delete list" : "删除列表", "Archive all cards in this list" : "将该列表中的所有卡片归档", "Unarchive all cards in this list" : "取消归档所有此列表中的卡片", @@ -261,6 +273,9 @@ OC.L10N.register( "Remove attachment" : "删除附件", "Delete Attachment" : "删除附件", "Restore Attachment" : "恢复附件", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "修改日期:{modifiedDate} ⸱ 创建日期:{createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "修改日期:{modifiedDate}\n创建日期:{createdDate}\n创建者:{owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "修改日期:{modifiedDate}\n创建日期:{createdDate}", "The title cannot be empty." : "标题不能为空", "Cannot close unsaved card!" : "无法关闭未保存的卡片!", "Open in sidebar view" : "在侧边栏视图中打开", @@ -270,12 +285,21 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "还没有评论。 开始讨论吧!", "The comment cannot be empty." : "注释不能为空。", "The comment cannot be longer than 1000 characters." : "注释不能超过 1000 个字符。", + "Submit" : "提交", "Created:" : "创建于:", "In reply to" : "回复", "Cancel reply" : "取消回复", "Reply" : "回复", "Update" : "更新", + "Assign dependent cards" : "分配依赖卡片", + "Mark as done" : "标记为已完成", + "Mark as not done" : "标记为未完成", + "Remove dependency" : "移除依赖", + "Add dependent card" : "添加依赖卡片", + "Assign a dependent card…" : "分配一个依赖卡片…", + "Select a dependent card…" : "选择一个依赖卡片…", "Write a description …" : "写一段描述", + "The description has been changed by another user." : "描述已被其他用户更改。", "Could not save description" : "无法保存描述", "Description" : "描述", "(Unsaved)" : "(未保存的)", @@ -299,11 +323,14 @@ OC.L10N.register( "Add due date" : "添加截止日期", "Choose a date" : "选择日期", "Remove due date" : "移除截止日期", - "Mark as done" : "标记为已完成", "Due at:" : "到期日:", "Not done" : "未完成", "Unarchive card" : "撤销对卡片的归档", "Archive card" : "归档卡片", + "Assign a start date to this card…" : "为此卡片分配开始日期…", + "Set a start date" : "设置开始日期", + "Add start date" : "添加开始日期", + "Remove start date" : "移除开始日期", "Assign a tag to this card…" : "为此卡片分配标签…", "Select or create a tag…" : "选择或创建标签…", "Create a new tag:" : "创建新标签:", @@ -313,12 +340,11 @@ OC.L10N.register( "Edit card title" : "编辑卡片标题", "Open link" : "打开链接", "Card deleted" : "卡片被删除", + "Change card color" : "更改卡片颜色", "Edit title" : "编辑标题", "Assign to me" : "指派给我", "Unassign myself" : "不再指派给我", - "Mark as not done" : "标记为未完成", "Delete card" : "删除卡片", - "seconds ago" : "几秒前", "All boards" : "全部面板", "Archived boards" : "已归档面板", "Shared with you" : "收到的共享", @@ -411,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "搜索用户、群组和团队…", "No participants found" : "未找到参与者", "Save" : "保存", + "seconds ago" : "几秒前", "Today" : "今天", "Tomorrow" : "明天", "No due" : "没有到期的" diff --git a/l10n/zh_CN.json b/l10n/zh_CN.json index 503e930075..1cdd343378 100644 --- a/l10n/zh_CN.json +++ b/l10n/zh_CN.json @@ -127,6 +127,7 @@ "Card not found" : "未找到卡片", "Path is already shared with this card" : "已和这张卡片分享了路径", "Invalid date, date format must be YYYY-MM-DD" : "无效日期,日期格式必须为 YYYY-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "您拥有的所有面板,包括堆栈、卡片、标签、任务和评论", "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" : "看板应用程序是一个看板风格的管理工具,旨在为与Nextcloud集成的团队进行个人规划和项目管理。\n\n\n- 📥 添加您的任务到卡片并将之整理好\n- 📄 用Markdown写下额外的注释\n- 🔖 分配标签以更好地管理您的工作\n- 👥 与您的团队、朋友或家人分享\n- 📎 附件文件并将其嵌入到您的Markdown描述中\n- 💬 使用评论与您的团队沟通\n- ⚡ 在活动流中跟踪变更情况\n- 🚀 让您的项目井井有条", "Add board" : "添加面板", @@ -173,6 +174,8 @@ "Clear filter" : "清除筛选", "View Modes" : "视图模式", "Toggle View Modes" : "切换视图模式", + "Kanban view" : "看板视图", + "Gantt view" : "甘特图", "Hide archived cards" : "隐藏已归档卡片", "Show archived cards" : "显示已归档卡片", "Toggle compact mode" : "切换简洁模式", @@ -216,6 +219,13 @@ "Deleted lists" : "已删除的列表", "Undo" : "撤消", "Deleted cards" : "已删除的卡片", + "Hours" : "小时", + "Days" : "天", + "Weeks" : "周", + "Months" : "月", + "No cards yet" : "暂无卡片", + "Set a start date and due date on your cards to see them on the Gantt chart" : "在卡片上设置开始日期和截止日期,以便在甘特图上查看它们", + "Cards without dates ({count})" : "没有日期的卡片({count})", "Failed to create share with {displayName}" : "用{displayName}创建分享失败", "Are you sure you want to transfer the board {title} to {user}?" : "您确定要将面板 {title} 转移到 {user} 吗?", "Transfer the board." : "转移面板。", @@ -235,6 +245,8 @@ "Edit list title" : "编辑列表标题", "Archive all cards" : "归档所有卡片", "Unarchive all cards" : "取消归档所有卡片", + "Do not set cards as \"done\"" : "不要将卡片设置为“完成”", + "Set cards as \"done\"" : "将卡片设置为“完成”", "Delete list" : "删除列表", "Archive all cards in this list" : "将该列表中的所有卡片归档", "Unarchive all cards in this list" : "取消归档所有此列表中的卡片", @@ -259,6 +271,9 @@ "Remove attachment" : "删除附件", "Delete Attachment" : "删除附件", "Restore Attachment" : "恢复附件", + "Modified: {modifiedDate} ⸱ Created: {createdDate}" : "修改日期:{modifiedDate} ⸱ 创建日期:{createdDate}", + "Modified: {modifiedDate}\nCreated: {createdDate}\nCreated by: {owner}" : "修改日期:{modifiedDate}\n创建日期:{createdDate}\n创建者:{owner}", + "Modified: {modifiedDate}\nCreated: {createdDate}" : "修改日期:{modifiedDate}\n创建日期:{createdDate}", "The title cannot be empty." : "标题不能为空", "Cannot close unsaved card!" : "无法关闭未保存的卡片!", "Open in sidebar view" : "在侧边栏视图中打开", @@ -268,12 +283,21 @@ "No comments yet. Begin the discussion!" : "还没有评论。 开始讨论吧!", "The comment cannot be empty." : "注释不能为空。", "The comment cannot be longer than 1000 characters." : "注释不能超过 1000 个字符。", + "Submit" : "提交", "Created:" : "创建于:", "In reply to" : "回复", "Cancel reply" : "取消回复", "Reply" : "回复", "Update" : "更新", + "Assign dependent cards" : "分配依赖卡片", + "Mark as done" : "标记为已完成", + "Mark as not done" : "标记为未完成", + "Remove dependency" : "移除依赖", + "Add dependent card" : "添加依赖卡片", + "Assign a dependent card…" : "分配一个依赖卡片…", + "Select a dependent card…" : "选择一个依赖卡片…", "Write a description …" : "写一段描述", + "The description has been changed by another user." : "描述已被其他用户更改。", "Could not save description" : "无法保存描述", "Description" : "描述", "(Unsaved)" : "(未保存的)", @@ -297,11 +321,14 @@ "Add due date" : "添加截止日期", "Choose a date" : "选择日期", "Remove due date" : "移除截止日期", - "Mark as done" : "标记为已完成", "Due at:" : "到期日:", "Not done" : "未完成", "Unarchive card" : "撤销对卡片的归档", "Archive card" : "归档卡片", + "Assign a start date to this card…" : "为此卡片分配开始日期…", + "Set a start date" : "设置开始日期", + "Add start date" : "添加开始日期", + "Remove start date" : "移除开始日期", "Assign a tag to this card…" : "为此卡片分配标签…", "Select or create a tag…" : "选择或创建标签…", "Create a new tag:" : "创建新标签:", @@ -311,12 +338,11 @@ "Edit card title" : "编辑卡片标题", "Open link" : "打开链接", "Card deleted" : "卡片被删除", + "Change card color" : "更改卡片颜色", "Edit title" : "编辑标题", "Assign to me" : "指派给我", "Unassign myself" : "不再指派给我", - "Mark as not done" : "标记为未完成", "Delete card" : "删除卡片", - "seconds ago" : "几秒前", "All boards" : "全部面板", "Archived boards" : "已归档面板", "Shared with you" : "收到的共享", @@ -409,6 +435,7 @@ "Searching for users, groups and teams …" : "搜索用户、群组和团队…", "No participants found" : "未找到参与者", "Save" : "保存", + "seconds ago" : "几秒前", "Today" : "今天", "Tomorrow" : "明天", "No due" : "没有到期的" diff --git a/l10n/zh_HK.js b/l10n/zh_HK.js index 220ac58b12..53e5e7e8f0 100644 --- a/l10n/zh_HK.js +++ b/l10n/zh_HK.js @@ -129,6 +129,7 @@ OC.L10N.register( "Card not found" : "未找到卡片", "Path is already shared with this card" : "已和這張卡片分享了路徑", "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "你擁有的所有看板,包括堆疊、卡片、標籤、任務分配及留言", "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是一種看板式組織工具,旨在針對與Nextcloud集成的團隊進行個人計劃和項目組織。\n\n\n- 📥 添加您的任務到 card 及將之整理好\n- 📄 用 Markdown 寫下額外的註釋分享分享分享\n- 🔖 分配標籤以更好地組織您的工作\n- 👥 與您的團隊、朋友或家人分享\n- 📎 附加檔案並將其嵌入到您的 Markdown 描述中 \n- 💬 使用意見與您的團隊討論\n- ⚡ 在活動流中跟踪更改\n- 🚀 讓您的專案井井有條", "Add board" : "添加面板", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "清空過濾器", "View Modes" : "檢視模式", "Toggle View Modes" : "切換檢視模式", + "Kanban view" : "Kanban 檢視", + "Gantt view" : "甘特圖檢視", "Hide archived cards" : "隱藏已存檔的卡片", "Show archived cards" : "顯示已存檔的卡片", "Toggle compact mode" : "切換簡潔模式", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "已刪除的清單", "Undo" : "撤消", "Deleted cards" : "已刪除卡片", + "Hours" : "小時", + "Days" : "天", + "Weeks" : "星期", + "Months" : "月", + "No cards yet" : "尚無卡片", + "Set a start date and due date on your cards to see them on the Gantt chart" : "在卡片設定開始日期及到期日期,以便於甘特圖中顯示", + "Cards without dates ({count})" : "沒有日期的卡片({count})", "Failed to create share with {displayName}" : "無法為 {displayName} 創建分享", "Are you sure you want to transfer the board {title} to {user}?" : "您確定要將面板 {title} 轉讓給 {user} 嗎?", "Transfer the board." : "轉移面板。", @@ -275,11 +285,19 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "尚無意見,開始討論吧!", "The comment cannot be empty." : "意見不能為空。", "The comment cannot be longer than 1000 characters." : "意見不能超過 1000 個字符。", + "Submit" : "遞交", "Created:" : "建立:", "In reply to" : "回覆", "Cancel reply" : "取消回覆", "Reply" : "回覆", "Update" : "更新", + "Assign dependent cards" : "指派相依卡片", + "Mark as done" : "標記為完成", + "Mark as not done" : "標記為未完成", + "Remove dependency" : "移除相依關係", + "Add dependent card" : "新增相依卡片", + "Assign a dependent card…" : "指派相依卡片…", + "Select a dependent card…" : "選擇相依卡片…", "Write a description …" : "寫一段描述", "The description has been changed by another user." : "描述已被另一個用戶修改。", "Could not save description" : "無法保存描述", @@ -305,7 +323,6 @@ OC.L10N.register( "Add due date" : "添加到期日", "Choose a date" : "選擇日期", "Remove due date" : "移除到期日", - "Mark as done" : "標記為完成", "Due at:" : "到期日:", "Not done" : "未完成", "Unarchive card" : "取消對卡片的封存", @@ -323,12 +340,11 @@ OC.L10N.register( "Edit card title" : "編輯卡片標題", "Open link" : "打開連結", "Card deleted" : "卡片被刪除", + "Change card color" : "更新卡片顏色", "Edit title" : "編輯標題", "Assign to me" : "指派給我", "Unassign myself" : "自己解除指派", - "Mark as not done" : "標記為未完成", "Delete card" : "刪除卡片", - "seconds ago" : "幾秒前", "All boards" : "全部面板", "Archived boards" : "已封存面板", "Shared with you" : "收到的分享", @@ -345,13 +361,13 @@ OC.L10N.register( "Leave the board?" : "離開面板?", "Leave" : "離開", "Failed to leave the board" : "無法離開面板", - "Exporting board..." : "正在導出面板 ...", + "Exporting board..." : "正在匯出面板 ...", "Board details" : "面板詳情", "Edit board" : "編輯面板", "Clone board" : "複製面板", "Unarchive board" : "取消對面板的封存", "Archive board" : "封存面板", - "Export board" : "導出面板", + "Export board" : "匯出面板", "Turn on due date reminders" : "開啟到期日提醒", "Turn off due date reminders" : "關閉到期日提醒", "Remove as default board" : "移除默認面板", @@ -373,11 +389,11 @@ OC.L10N.register( "Move all cards to the first list" : "將所有卡片移動到第一個清單", "Restore archived cards" : "還原已封存的卡片", "Clone" : "複製", - "Export {boardTitle}" : "導出 {boardTitle}", - "Export as JSON" : "導出為 JSON", + "Export {boardTitle}" : "匯出 {boardTitle}", + "Export as JSON" : "匯出為 JSON", "Export as CSV" : "匯出為 CSV", "Note: Only the JSON format is supported for importing back into the Deck app." : "注意:僅支援 JSON 格式以便重新導入到 Deck 應用程式。", - "Export" : "導出", + "Export" : "匯出", "Loading filtered view" : "正在加載已過濾視圖", "Search for {searchQuery} in other boards" : "在其他看板中搜尋 {searchQuery}", "Search for {searchQuery} in all boards" : "在所有面板中搜索 {searchQuery}", @@ -421,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "搜尋使用者、群組與團隊 …", "No participants found" : "未找到參與者", "Save" : "保存", + "seconds ago" : "幾秒前", "Today" : "今日", "Tomorrow" : "明日", "No due" : "沒有到期的" diff --git a/l10n/zh_HK.json b/l10n/zh_HK.json index 5518d85fe0..f2db67b065 100644 --- a/l10n/zh_HK.json +++ b/l10n/zh_HK.json @@ -127,6 +127,7 @@ "Card not found" : "未找到卡片", "Path is already shared with this card" : "已和這張卡片分享了路徑", "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "你擁有的所有看板,包括堆疊、卡片、標籤、任務分配及留言", "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是一種看板式組織工具,旨在針對與Nextcloud集成的團隊進行個人計劃和項目組織。\n\n\n- 📥 添加您的任務到 card 及將之整理好\n- 📄 用 Markdown 寫下額外的註釋分享分享分享\n- 🔖 分配標籤以更好地組織您的工作\n- 👥 與您的團隊、朋友或家人分享\n- 📎 附加檔案並將其嵌入到您的 Markdown 描述中 \n- 💬 使用意見與您的團隊討論\n- ⚡ 在活動流中跟踪更改\n- 🚀 讓您的專案井井有條", "Add board" : "添加面板", @@ -173,6 +174,8 @@ "Clear filter" : "清空過濾器", "View Modes" : "檢視模式", "Toggle View Modes" : "切換檢視模式", + "Kanban view" : "Kanban 檢視", + "Gantt view" : "甘特圖檢視", "Hide archived cards" : "隱藏已存檔的卡片", "Show archived cards" : "顯示已存檔的卡片", "Toggle compact mode" : "切換簡潔模式", @@ -216,6 +219,13 @@ "Deleted lists" : "已刪除的清單", "Undo" : "撤消", "Deleted cards" : "已刪除卡片", + "Hours" : "小時", + "Days" : "天", + "Weeks" : "星期", + "Months" : "月", + "No cards yet" : "尚無卡片", + "Set a start date and due date on your cards to see them on the Gantt chart" : "在卡片設定開始日期及到期日期,以便於甘特圖中顯示", + "Cards without dates ({count})" : "沒有日期的卡片({count})", "Failed to create share with {displayName}" : "無法為 {displayName} 創建分享", "Are you sure you want to transfer the board {title} to {user}?" : "您確定要將面板 {title} 轉讓給 {user} 嗎?", "Transfer the board." : "轉移面板。", @@ -273,11 +283,19 @@ "No comments yet. Begin the discussion!" : "尚無意見,開始討論吧!", "The comment cannot be empty." : "意見不能為空。", "The comment cannot be longer than 1000 characters." : "意見不能超過 1000 個字符。", + "Submit" : "遞交", "Created:" : "建立:", "In reply to" : "回覆", "Cancel reply" : "取消回覆", "Reply" : "回覆", "Update" : "更新", + "Assign dependent cards" : "指派相依卡片", + "Mark as done" : "標記為完成", + "Mark as not done" : "標記為未完成", + "Remove dependency" : "移除相依關係", + "Add dependent card" : "新增相依卡片", + "Assign a dependent card…" : "指派相依卡片…", + "Select a dependent card…" : "選擇相依卡片…", "Write a description …" : "寫一段描述", "The description has been changed by another user." : "描述已被另一個用戶修改。", "Could not save description" : "無法保存描述", @@ -303,7 +321,6 @@ "Add due date" : "添加到期日", "Choose a date" : "選擇日期", "Remove due date" : "移除到期日", - "Mark as done" : "標記為完成", "Due at:" : "到期日:", "Not done" : "未完成", "Unarchive card" : "取消對卡片的封存", @@ -321,12 +338,11 @@ "Edit card title" : "編輯卡片標題", "Open link" : "打開連結", "Card deleted" : "卡片被刪除", + "Change card color" : "更新卡片顏色", "Edit title" : "編輯標題", "Assign to me" : "指派給我", "Unassign myself" : "自己解除指派", - "Mark as not done" : "標記為未完成", "Delete card" : "刪除卡片", - "seconds ago" : "幾秒前", "All boards" : "全部面板", "Archived boards" : "已封存面板", "Shared with you" : "收到的分享", @@ -343,13 +359,13 @@ "Leave the board?" : "離開面板?", "Leave" : "離開", "Failed to leave the board" : "無法離開面板", - "Exporting board..." : "正在導出面板 ...", + "Exporting board..." : "正在匯出面板 ...", "Board details" : "面板詳情", "Edit board" : "編輯面板", "Clone board" : "複製面板", "Unarchive board" : "取消對面板的封存", "Archive board" : "封存面板", - "Export board" : "導出面板", + "Export board" : "匯出面板", "Turn on due date reminders" : "開啟到期日提醒", "Turn off due date reminders" : "關閉到期日提醒", "Remove as default board" : "移除默認面板", @@ -371,11 +387,11 @@ "Move all cards to the first list" : "將所有卡片移動到第一個清單", "Restore archived cards" : "還原已封存的卡片", "Clone" : "複製", - "Export {boardTitle}" : "導出 {boardTitle}", - "Export as JSON" : "導出為 JSON", + "Export {boardTitle}" : "匯出 {boardTitle}", + "Export as JSON" : "匯出為 JSON", "Export as CSV" : "匯出為 CSV", "Note: Only the JSON format is supported for importing back into the Deck app." : "注意:僅支援 JSON 格式以便重新導入到 Deck 應用程式。", - "Export" : "導出", + "Export" : "匯出", "Loading filtered view" : "正在加載已過濾視圖", "Search for {searchQuery} in other boards" : "在其他看板中搜尋 {searchQuery}", "Search for {searchQuery} in all boards" : "在所有面板中搜索 {searchQuery}", @@ -419,6 +435,7 @@ "Searching for users, groups and teams …" : "搜尋使用者、群組與團隊 …", "No participants found" : "未找到參與者", "Save" : "保存", + "seconds ago" : "幾秒前", "Today" : "今日", "Tomorrow" : "明日", "No due" : "沒有到期的" diff --git a/l10n/zh_TW.js b/l10n/zh_TW.js index 5c00e798f9..ab0ad01ee5 100644 --- a/l10n/zh_TW.js +++ b/l10n/zh_TW.js @@ -129,6 +129,7 @@ OC.L10N.register( "Card not found" : "找不到卡片", "Path is already shared with this card" : "路徑已與此卡片分享", "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,日期格式必須為 YYYY-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "您擁有的所有看板,包括堆疊、卡片、標籤、指派事項與留言", "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 是一套看板式組織工具,提供與 Nextcloud 整合的個人規劃與團隊專案組織功能。\n\n\n- 📥 將您的工作項目新增到卡片中,並將它們按順序排列\n- 📄 以 Markdown 編寫額外的註釋\n- 🔖 分配標籤讓組織更方便\n- 👥 與您的團隊、朋友與家人分享\n- 📎 附上檔案並將其嵌入到您的 Markdown 描述中\n- 💬 使用留言與您的團隊討論\n- ⚡ 追蹤活動流程中的變動\n- 🚀 整理好您的專案", "Add board" : "新增佈告欄", @@ -175,6 +176,8 @@ OC.L10N.register( "Clear filter" : "清除過濾條件", "View Modes" : "檢視模式", "Toggle View Modes" : "切換檢視模式", + "Kanban view" : "看板檢視", + "Gantt view" : "甘特圖檢視", "Hide archived cards" : "隱藏已封存的卡片", "Show archived cards" : "顯示已封存的卡片", "Toggle compact mode" : "切換簡潔模式", @@ -218,6 +221,13 @@ OC.L10N.register( "Deleted lists" : "已刪除的列表", "Undo" : "復原", "Deleted cards" : "已刪除的卡片", + "Hours" : "小時", + "Days" : "天", + "Weeks" : "週", + "Months" : "月", + "No cards yet" : "尚無卡片", + "Set a start date and due date on your cards to see them on the Gantt chart" : "在卡片上設定開始日期與截止日期,以便在甘特圖中顯示這些資訊", + "Cards without dates ({count})" : "沒有日期的卡片 ({count})", "Failed to create share with {displayName}" : "無法建立與 {displayName} 的分享", "Are you sure you want to transfer the board {title} to {user}?" : "您確定您想要將看板 {title} 轉移給 {user} 嗎?", "Transfer the board." : "轉移看板。", @@ -275,11 +285,19 @@ OC.L10N.register( "No comments yet. Begin the discussion!" : "暫無留言。開始討論吧!", "The comment cannot be empty." : "留言不能為空。", "The comment cannot be longer than 1000 characters." : "留言不能多於 1000 個字元。", + "Submit" : "提交", "Created:" : "建立:", "In reply to" : "回覆", "Cancel reply" : "取消回覆", "Reply" : "回覆", "Update" : "更新", + "Assign dependent cards" : "指定附屬卡片", + "Mark as done" : "標記為完成", + "Mark as not done" : "標記為未完成", + "Remove dependency" : "移除依賴關係", + "Add dependent card" : "新增附屬卡片", + "Assign a dependent card…" : "指定附屬卡片……", + "Select a dependent card…" : "選取附屬卡片……", "Write a description …" : "編寫描述……", "The description has been changed by another user." : "描述已被其他使用者修改。", "Could not save description" : "無法儲存描述", @@ -305,7 +323,6 @@ OC.L10N.register( "Add due date" : "新增到期日", "Choose a date" : "選擇日期", "Remove due date" : "移除到期日", - "Mark as done" : "標記為完成", "Due at:" : "到期於:", "Not done" : "未完成", "Unarchive card" : "解除封存卡片", @@ -323,12 +340,11 @@ OC.L10N.register( "Edit card title" : "編輯卡片標題", "Open link" : "開啟連結", "Card deleted" : "卡片已刪除", + "Change card color" : "變更卡片顏色", "Edit title" : "編輯標題", "Assign to me" : "分配給我", "Unassign myself" : "取消分配給我", - "Mark as not done" : "標記為未完成", "Delete card" : "刪除卡片", - "seconds ago" : "幾秒前", "All boards" : "所有佈告欄", "Archived boards" : "已封存的佈告欄", "Shared with you" : "與您分享", @@ -421,6 +437,7 @@ OC.L10N.register( "Searching for users, groups and teams …" : "搜尋使用者、群組與團隊……", "No participants found" : "找不到參與者", "Save" : "儲存", + "seconds ago" : "幾秒前", "Today" : "今天", "Tomorrow" : "明天", "No due" : "無到期日" diff --git a/l10n/zh_TW.json b/l10n/zh_TW.json index 35ee510b29..30896383fd 100644 --- a/l10n/zh_TW.json +++ b/l10n/zh_TW.json @@ -127,6 +127,7 @@ "Card not found" : "找不到卡片", "Path is already shared with this card" : "路徑已與此卡片分享", "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,日期格式必須為 YYYY-MM-DD", + "All boards owned by you including stacks, cards, labels, assignments, and comments" : "您擁有的所有看板,包括堆疊、卡片、標籤、指派事項與留言", "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 是一套看板式組織工具,提供與 Nextcloud 整合的個人規劃與團隊專案組織功能。\n\n\n- 📥 將您的工作項目新增到卡片中,並將它們按順序排列\n- 📄 以 Markdown 編寫額外的註釋\n- 🔖 分配標籤讓組織更方便\n- 👥 與您的團隊、朋友與家人分享\n- 📎 附上檔案並將其嵌入到您的 Markdown 描述中\n- 💬 使用留言與您的團隊討論\n- ⚡ 追蹤活動流程中的變動\n- 🚀 整理好您的專案", "Add board" : "新增佈告欄", @@ -173,6 +174,8 @@ "Clear filter" : "清除過濾條件", "View Modes" : "檢視模式", "Toggle View Modes" : "切換檢視模式", + "Kanban view" : "看板檢視", + "Gantt view" : "甘特圖檢視", "Hide archived cards" : "隱藏已封存的卡片", "Show archived cards" : "顯示已封存的卡片", "Toggle compact mode" : "切換簡潔模式", @@ -216,6 +219,13 @@ "Deleted lists" : "已刪除的列表", "Undo" : "復原", "Deleted cards" : "已刪除的卡片", + "Hours" : "小時", + "Days" : "天", + "Weeks" : "週", + "Months" : "月", + "No cards yet" : "尚無卡片", + "Set a start date and due date on your cards to see them on the Gantt chart" : "在卡片上設定開始日期與截止日期,以便在甘特圖中顯示這些資訊", + "Cards without dates ({count})" : "沒有日期的卡片 ({count})", "Failed to create share with {displayName}" : "無法建立與 {displayName} 的分享", "Are you sure you want to transfer the board {title} to {user}?" : "您確定您想要將看板 {title} 轉移給 {user} 嗎?", "Transfer the board." : "轉移看板。", @@ -273,11 +283,19 @@ "No comments yet. Begin the discussion!" : "暫無留言。開始討論吧!", "The comment cannot be empty." : "留言不能為空。", "The comment cannot be longer than 1000 characters." : "留言不能多於 1000 個字元。", + "Submit" : "提交", "Created:" : "建立:", "In reply to" : "回覆", "Cancel reply" : "取消回覆", "Reply" : "回覆", "Update" : "更新", + "Assign dependent cards" : "指定附屬卡片", + "Mark as done" : "標記為完成", + "Mark as not done" : "標記為未完成", + "Remove dependency" : "移除依賴關係", + "Add dependent card" : "新增附屬卡片", + "Assign a dependent card…" : "指定附屬卡片……", + "Select a dependent card…" : "選取附屬卡片……", "Write a description …" : "編寫描述……", "The description has been changed by another user." : "描述已被其他使用者修改。", "Could not save description" : "無法儲存描述", @@ -303,7 +321,6 @@ "Add due date" : "新增到期日", "Choose a date" : "選擇日期", "Remove due date" : "移除到期日", - "Mark as done" : "標記為完成", "Due at:" : "到期於:", "Not done" : "未完成", "Unarchive card" : "解除封存卡片", @@ -321,12 +338,11 @@ "Edit card title" : "編輯卡片標題", "Open link" : "開啟連結", "Card deleted" : "卡片已刪除", + "Change card color" : "變更卡片顏色", "Edit title" : "編輯標題", "Assign to me" : "分配給我", "Unassign myself" : "取消分配給我", - "Mark as not done" : "標記為未完成", "Delete card" : "刪除卡片", - "seconds ago" : "幾秒前", "All boards" : "所有佈告欄", "Archived boards" : "已封存的佈告欄", "Shared with you" : "與您分享", @@ -419,6 +435,7 @@ "Searching for users, groups and teams …" : "搜尋使用者、群組與團隊……", "No participants found" : "找不到參與者", "Save" : "儲存", + "seconds ago" : "幾秒前", "Today" : "今天", "Tomorrow" : "明天", "No due" : "無到期日" diff --git a/lib/Activity/ActivityManager.php b/lib/Activity/ActivityManager.php index eab19da3b1..2c7c0c4c3e 100644 --- a/lib/Activity/ActivityManager.php +++ b/lib/Activity/ActivityManager.php @@ -565,7 +565,7 @@ public function canSeeCardActivity(int $cardId, string $userId): bool { $this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_READ, $userId); $card = $this->cardMapper->find($cardId); return $card->getDeletedAt() === 0; - } catch (NoPermissionException $e) { + } catch (NoPermissionException|DoesNotExistException $e) { return false; } } @@ -575,7 +575,7 @@ public function canSeeBoardActivity(int $boardId, string $userId): bool { $this->permissionService->checkPermission($this->boardMapper, $boardId, Acl::PERMISSION_READ, $userId); $board = $this->boardMapper->find($boardId); return $board->getDeletedAt() === 0; - } catch (NoPermissionException $e) { + } catch (NoPermissionException|DoesNotExistException $e) { return false; } } diff --git a/lib/Activity/DeckProvider.php b/lib/Activity/DeckProvider.php index e81c6a2e1f..78017f3eb5 100644 --- a/lib/Activity/DeckProvider.php +++ b/lib/Activity/DeckProvider.php @@ -10,6 +10,7 @@ use OCA\Deck\Db\Acl; use OCA\Deck\Service\CardService; use OCA\Deck\Service\CirclesService; +use OCP\Activity\Exceptions\UnknownActivityException; use OCP\Activity\IEvent; use OCP\Activity\IProvider; use OCP\Comments\IComment; @@ -61,12 +62,12 @@ public function __construct(IURLGenerator $urlGenerator, ActivityManager $activi * To do so, simply use setChildEvent($previousEvent) after setting the * combined subject on the current event. * @return IEvent - * @throws \InvalidArgumentException Should be thrown if your provider does not know this event + * @throws UnknownActivityException Should be thrown if your provider does not know this event * @since 11.0.0 */ public function parse($language, IEvent $event, ?IEvent $previousEvent = null): IEvent { if ($event->getApp() !== 'deck') { - throw new \InvalidArgumentException(); + throw new UnknownActivityException(); } $event = $this->getIcon($event); @@ -107,7 +108,7 @@ public function parse($language, IEvent $event, ?IEvent $previousEvent = null): } if ($event->getObjectType() === ActivityManager::DECK_OBJECT_BOARD) { if (!$this->activityManager->canSeeBoardActivity($event->getObjectId(), $event->getAffectedUser())) { - throw new \InvalidArgumentException(); + throw new UnknownActivityException(); } if (isset($subjectParams['board']) && $event->getObjectName() === '') { $event->setObject($event->getObjectType(), $event->getObjectId(), $subjectParams['board']['title']); @@ -124,7 +125,7 @@ public function parse($language, IEvent $event, ?IEvent $previousEvent = null): if (isset($subjectParams['card']) && $event->getObjectType() === ActivityManager::DECK_OBJECT_CARD) { if (!$this->activityManager->canSeeCardActivity($event->getObjectId(), $event->getAffectedUser())) { - throw new \InvalidArgumentException(); + throw new UnknownActivityException(); } if ($event->getObjectName() === '') { $event->setObject($event->getObjectType(), $event->getObjectId(), $subjectParams['card']['title']); diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index 9a072988df..51efc0a480 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -50,6 +50,7 @@ use OCA\Deck\Sharing\DeckShareProvider; use OCA\Deck\Sharing\Listener; use OCA\Deck\Teams\DeckTeamResourceProvider; +use OCA\Deck\UserMigration\DeckMigrator; use OCA\Text\Event\LoadEditor; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; @@ -60,7 +61,10 @@ use OCP\Collaboration\Resources\IProviderManager; use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent; use OCP\Comments\CommentsEntityEvent; -use OCP\Comments\CommentsEvent; +use OCP\Comments\Events\BeforeCommentUpdatedEvent; +use OCP\Comments\Events\CommentAddedEvent; +use OCP\Comments\Events\CommentDeletedEvent; +use OCP\Comments\Events\CommentUpdatedEvent; use OCP\EventDispatcher\IEventDispatcher; use OCP\Federation\ICloudFederationProvider; use OCP\Federation\ICloudFederationProviderManager; @@ -155,7 +159,10 @@ public function register(IRegistrationContext $context): void { $context->registerEventListener(AclCreatedEvent::class, FullTextSearchEventListener::class); $context->registerEventListener(AclUpdatedEvent::class, FullTextSearchEventListener::class); $context->registerEventListener(AclDeletedEvent::class, FullTextSearchEventListener::class); - $context->registerEventListener(CommentsEvent::class, CommentEventListener::class); + $context->registerEventListener(CommentAddedEvent::class, CommentEventListener::class); + $context->registerEventListener(BeforeCommentUpdatedEvent::class, CommentEventListener::class); + $context->registerEventListener(CommentUpdatedEvent::class, CommentEventListener::class); + $context->registerEventListener(CommentDeletedEvent::class, CommentEventListener::class); // Handling cache invalidation for collections $context->registerEventListener(AclCreatedEvent::class, ResourceListener::class); @@ -180,6 +187,8 @@ public function register(IRegistrationContext $context): void { $context->registerEventListener(LoadAdditionalScriptsEvent::class, ResourceAdditionalScriptsListener::class); $context->registerTeamResourceProvider(DeckTeamResourceProvider::class); + + $context->registerUserMigrator(DeckMigrator::class); } public function registerCommentsEntity(IEventDispatcher $eventDispatcher): void { diff --git a/lib/Cache/AttachmentCacheHelper.php b/lib/Cache/AttachmentCacheHelper.php index 4ba8c995a8..ff72817fa6 100644 --- a/lib/Cache/AttachmentCacheHelper.php +++ b/lib/Cache/AttachmentCacheHelper.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Cache; use OCP\ICache; diff --git a/lib/Capabilities.php b/lib/Capabilities.php index f33028a9cb..4f70229e25 100644 --- a/lib/Capabilities.php +++ b/lib/Capabilities.php @@ -15,7 +15,6 @@ class Capabilities implements ICapability { private IAppManager $appManager; private PermissionService $permissionService; - public function __construct(IAppManager $appManager, PermissionService $permissionService) { $this->appManager = $appManager; $this->permissionService = $permissionService; diff --git a/lib/Command/CalendarToggle.php b/lib/Command/CalendarToggle.php index 2381cff941..56452dc8b2 100644 --- a/lib/Command/CalendarToggle.php +++ b/lib/Command/CalendarToggle.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Command; use OCP\IConfig; diff --git a/lib/Command/TransferOwnership.php b/lib/Command/TransferOwnership.php index dfa9a01c4b..45fb703494 100644 --- a/lib/Command/TransferOwnership.php +++ b/lib/Command/TransferOwnership.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Command; use OCA\Deck\Db\BoardMapper; diff --git a/lib/Controller/AttachmentApiController.php b/lib/Controller/AttachmentApiController.php index 00879fc9b4..b50e7d9f92 100644 --- a/lib/Controller/AttachmentApiController.php +++ b/lib/Controller/AttachmentApiController.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Controller; use OCA\Deck\Db\Attachment; @@ -46,8 +47,8 @@ public function display(int $cardId, int $attachmentId, string $type = 'deck_fil #[NoAdminRequired] #[CORS] #[NoCSRFRequired] - public function create(int $cardId, string $type, string $data): DataResponse { - $attachment = $this->attachmentService->create($cardId, $type, $data); + public function create(int $cardId, string $type, ?string $data): DataResponse { + $attachment = $this->attachmentService->create($cardId, $type, $data ?? ''); return new DataResponse($attachment, HTTP::STATUS_OK); } diff --git a/lib/Controller/AttachmentApiV11Controller.php b/lib/Controller/AttachmentApiV11Controller.php index 987baaece6..45a6b9d67f 100644 --- a/lib/Controller/AttachmentApiV11Controller.php +++ b/lib/Controller/AttachmentApiV11Controller.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Controller; class AttachmentApiV11Controller extends AttachmentApiController { diff --git a/lib/Controller/AttachmentOcsController.php b/lib/Controller/AttachmentOcsController.php index 2ef725216f..734daef49b 100644 --- a/lib/Controller/AttachmentOcsController.php +++ b/lib/Controller/AttachmentOcsController.php @@ -6,6 +6,7 @@ * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Controller; use OCA\Deck\NotImplementedException; diff --git a/lib/Controller/BoardApiController.php b/lib/Controller/BoardApiController.php index f6c948a227..4953c1b989 100644 --- a/lib/Controller/BoardApiController.php +++ b/lib/Controller/BoardApiController.php @@ -17,7 +17,6 @@ use OCP\AppFramework\Http\Attribute\NoCSRFRequired; use OCP\AppFramework\Http\DataResponse; use OCP\IRequest; - use function Sabre\HTTP\parseDate; /** @@ -148,9 +147,9 @@ public function deleteAcl($aclId) { return new DataResponse($acl, HTTP::STATUS_OK); } - /** - * @NoAdminRequired - */ + #[NoAdminRequired] + #[NoCSRFRequired] + #[CORS] public function clone(int $boardId, bool $withCards = false, bool $withAssignments = false, bool $withLabels = false, bool $withDueDate = false, bool $moveCardsToLeftStack = false, bool $restoreArchivedCards = false): DataResponse { return new DataResponse( $this->boardService->clone($boardId, $this->userId, $withCards, $withAssignments, $withLabels, $withDueDate, $moveCardsToLeftStack, $restoreArchivedCards) diff --git a/lib/Controller/CardApiController.php b/lib/Controller/CardApiController.php index d9cf71eea1..b3f3fd173d 100644 --- a/lib/Controller/CardApiController.php +++ b/lib/Controller/CardApiController.php @@ -68,8 +68,8 @@ public function get() { * * Get a specific card. */ - public function create($title, $type = 'plain', $order = 999, $description = '', $duedate = null, $startdate = null, $labels = [], $users = []) { - $card = $this->cardService->create($title, $this->request->getParam('stackId'), $type, $order, $this->userId, $description, $duedate, $startdate); + public function create($title, $type = 'plain', $order = 999, $description = '', $duedate = null, $startdate = null, $labels = [], $users = [], ?string $color = null) { + $card = $this->cardService->create($title, $this->request->getParam('stackId'), $type, $order, $this->userId, $description, $duedate, $startdate, $color); foreach ($labels as $labelId) { $this->cardService->assignLabel($card->getId(), $labelId); @@ -90,7 +90,8 @@ public function create($title, $type = 'plain', $order = 999, $description = '', #[NoCSRFRequired] public function update(string $title, $type, string $owner, string $description = '', int $order = 0, $duedate = null, $startdate = null, $archived = null): DataResponse { $done = array_key_exists('done', $this->request->getParams()) ? new OptionalNullableValue($this->request->getParam('done', null)) : null; - $card = $this->cardService->update($this->request->getParam('cardId'), $title, $this->request->getParam('stackId'), $type, $owner, $description, $order, $duedate, 0, $archived, $done, $startdate); + $color = array_key_exists('color', $this->request->getParams()) ? new OptionalNullableValue($this->request->getParam('color', null)) : null; + $card = $this->cardService->update($this->request->getParam('cardId'), $title, $this->request->getParam('stackId'), $type, $owner, $description, $order, $duedate, 0, $archived, $done, $startdate, $color); return new DataResponse($card, HTTP::STATUS_OK); } @@ -149,6 +150,28 @@ public function unassignUser(int $cardId, string $userId, int $type = 0): DataRe return new DataResponse($card, HTTP::STATUS_OK); } + /** + * Assign a dependent card + */ + #[NoAdminRequired] + #[CORS] + #[NoCSRFRequired] + public function assignDependentCard(int $cardId, int $dependentCardId): DataResponse { + $card = $this->cardService->assignDependentCard($cardId, $dependentCardId); + return new DataResponse($card, HTTP::STATUS_OK); + } + + /** + * Remove a dependent card + */ + #[NoAdminRequired] + #[CORS] + #[NoCSRFRequired] + public function removeDependentCard(int $cardId, int $dependentCardId): DataResponse { + $card = $this->cardService->removeDependentCard($cardId, $dependentCardId); + return new DataResponse($card, HTTP::STATUS_OK); + } + /** * Archive card */ diff --git a/lib/Controller/CardController.php b/lib/Controller/CardController.php index da42d733ef..129ffed1c7 100644 --- a/lib/Controller/CardController.php +++ b/lib/Controller/CardController.php @@ -46,8 +46,8 @@ public function rename(int $cardId, string $title): Card { } #[NoAdminRequired] - public function create(string $title, int $stackId, string $type = 'plain', int $order = 999, string $description = '', $duedate = null, $startdate = null, array $labels = [], array $users = []): Card { - $card = $this->cardService->create($title, $stackId, $type, $order, $this->userId, $description, $duedate, $startdate); + public function create(string $title, int $stackId, string $type = 'plain', int $order = 999, string $description = '', $duedate = null, $startdate = null, array $labels = [], array $users = [], ?string $color = null): Card { + $card = $this->cardService->create($title, $stackId, $type, $order, $this->userId, $description, $duedate, $startdate, $color); foreach ($labels as $label) { $this->assignLabel($card->getId(), $label); @@ -68,7 +68,10 @@ public function update(int $id, string $title, int $stackId, string $type, int $ $done = array_key_exists('done', $this->request->getParams()) ? new OptionalNullableValue($this->request->getParam('done', null)) : null; - return $this->cardService->update($id, $title, $stackId, $type, $this->userId, $description, $order, $duedate, $deletedAt, $archived, $done, $startdate); + $color = array_key_exists('color', $this->request->getParams()) + ? new OptionalNullableValue($this->request->getParam('color', null)) + : null; + return $this->cardService->update($id, $title, $stackId, $type, $this->userId, $description, $order, $duedate, $deletedAt, $archived, $done, $startdate, $color); } #[NoAdminRequired] @@ -128,4 +131,14 @@ public function assignUser(int $cardId, string $userId, int $type = 0): Assignme public function unassignUser(int $cardId, string $userId, int $type = 0): Assignment { return $this->assignmentService->unassignUser($cardId, $userId, $type); } + + #[NoAdminRequired] + public function assignDependentCard(int $cardId, int $dependentCardId): Card { + return $this->cardService->assignDependentCard($cardId, $dependentCardId); + } + + #[NoAdminRequired] + public function removeDependentCard(int $cardId, int $dependentCardId): Card { + return $this->cardService->removeDependentCard($cardId, $dependentCardId); + } } diff --git a/lib/Controller/CardOcsController.php b/lib/Controller/CardOcsController.php index 36c938a6c0..cd6629d204 100644 --- a/lib/Controller/CardOcsController.php +++ b/lib/Controller/CardOcsController.php @@ -8,6 +8,7 @@ namespace OCA\Deck\Controller; use OCA\Deck\Model\OptionalNullableValue; +use OCA\Deck\NotImplementedException; use OCA\Deck\Service\AssignmentService; use OCA\Deck\Service\BoardService; use OCA\Deck\Service\CardService; @@ -35,7 +36,7 @@ public function __construct( #[NoAdminRequired] #[PublicPage] - public function create(string $title, int $stackId, ?int $boardId = null, ?string $type = 'plain', ?string $owner = null, ?int $order = 999, ?string $description = '', $duedate = null, $startdate = null, ?array $labels = [], ?array $users = []) { + public function create(string $title, int $stackId, ?int $boardId = null, ?string $type = 'plain', ?string $owner = null, ?int $order = 999, ?string $description = '', $duedate = null, $startdate = null, ?array $labels = [], ?array $users = [], ?string $color = null) { if ($boardId) { $board = $this->boardService->find($boardId, false); if ($board->getExternalId()) { @@ -47,7 +48,7 @@ public function create(string $title, int $stackId, ?int $boardId = null, ?strin if (!$owner) { $owner = $this->userId; } - $card = $this->cardService->create($title, $stackId, $type, $order, $owner, $description, $duedate, $startdate); + $card = $this->cardService->create($title, $stackId, $type, $order, $owner, $description, $duedate, $startdate, $color); // foreach ($labels as $label) { // $this->assignLabel($card->getId(), $label); @@ -60,7 +61,6 @@ public function create(string $title, int $stackId, ?int $boardId = null, ?strin return new DataResponse($card); } - #[NoAdminRequired] #[PublicPage] public function assignLabel(?int $boardId, int $cardId, int $labelId): DataResponse { @@ -117,6 +117,9 @@ public function update(int $id, string $title, int $stackId, string $type, int $ $done = array_key_exists('done', $this->request->getParams()) ? new OptionalNullableValue($this->request->getParam('done', null)) : null; + $color = array_key_exists('color', $this->request->getParams()) + ? new OptionalNullableValue($this->request->getParam('color', null)) + : null; if (!$owner) { $owner = $this->userId; } else { @@ -154,7 +157,8 @@ public function update(int $id, string $title, int $stackId, string $type, int $ $deletedAt, $archived, $done, - $startdate + $startdate, + $color )); } @@ -169,4 +173,28 @@ public function reorder(int $cardId, int $stackId, int $order, ?int $boardId): D } return new DataResponse($this->cardService->reorder($cardId, $stackId, $order)); } + + #[NoAdminRequired] + #[PublicPage] + public function assignDependentCard(int $cardId, int $dependentCardId, ?int $boardId = null): DataResponse { + if ($boardId) { + $board = $this->boardService->find($boardId, false); + if ($board->getExternalId()) { + throw new NotImplementedException('Dependent cards are not supported for external boards'); + } + } + return new DataResponse($this->cardService->assignDependentCard($cardId, $dependentCardId)); + } + + #[NoAdminRequired] + #[PublicPage] + public function removeDependentCard(int $cardId, int $dependentCardId, ?int $boardId = null): DataResponse { + if ($boardId) { + $board = $this->boardService->find($boardId, false); + if ($board->getExternalId()) { + throw new NotImplementedException('Dependent cards are not supported for external boards'); + } + } + return new DataResponse($this->cardService->removeDependentCard($cardId, $dependentCardId)); + } } diff --git a/lib/Controller/CommentsApiController.php b/lib/Controller/CommentsApiController.php index eddc224d31..1794db5eae 100644 --- a/lib/Controller/CommentsApiController.php +++ b/lib/Controller/CommentsApiController.php @@ -11,7 +11,6 @@ use OCA\Deck\StatusException; use OCP\AppFramework\Http\Attribute\NoAdminRequired; use OCP\AppFramework\Http\DataResponse; - use OCP\AppFramework\OCSController; use OCP\IRequest; diff --git a/lib/Controller/ConfigController.php b/lib/Controller/ConfigController.php index d32b876560..baba55c542 100644 --- a/lib/Controller/ConfigController.php +++ b/lib/Controller/ConfigController.php @@ -7,7 +7,10 @@ namespace OCA\Deck\Controller; +use OCA\Deck\Db\Acl; +use OCA\Deck\Db\BoardMapper; use OCA\Deck\Service\ConfigService; +use OCA\Deck\Service\PermissionService; use OCP\AppFramework\Http\Attribute\NoAdminRequired; use OCP\AppFramework\Http\Attribute\NoCSRFRequired; use OCP\AppFramework\Http\DataResponse; @@ -20,6 +23,8 @@ public function __construct( $AppName, IRequest $request, private ConfigService $configService, + private PermissionService $permissionService, + private BoardMapper $boardMapper, ) { parent::__construct($AppName, $request); } @@ -33,6 +38,14 @@ public function get(): DataResponse { #[NoAdminRequired] #[NoCSRFRequired] public function setValue(string $key, mixed $value): DataResponse|NotFoundResponse { + if (preg_match('/^board:(\d+):/', $key, $matches) === 1) { + $this->permissionService->checkPermission( + $this->boardMapper, + (int)$matches[1], + Acl::PERMISSION_EDIT, + ); + } + $result = $this->configService->set($key, $value); if ($result === null) { return new NotFoundResponse(); diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php index 1b5304436c..1cad275201 100644 --- a/lib/Controller/PageController.php +++ b/lib/Controller/PageController.php @@ -107,6 +107,12 @@ public function indexCard(int $cardId): TemplateResponse { return $this->index(); } + #[NoAdminRequired] + #[NoCSRFRequired] + public function indexUpcoming(): TemplateResponse { + return $this->index(); + } + #[NoAdminRequired] #[NoCSRFRequired] public function redirectToCard($cardId): RedirectResponse { diff --git a/lib/Controller/SearchController.php b/lib/Controller/SearchController.php index d3989e78a2..f3ca0ec3d0 100644 --- a/lib/Controller/SearchController.php +++ b/lib/Controller/SearchController.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Controller; use OCA\Deck\Db\Card; diff --git a/lib/Controller/StackController.php b/lib/Controller/StackController.php index 330cc4abaa..7977dade52 100644 --- a/lib/Controller/StackController.php +++ b/lib/Controller/StackController.php @@ -9,9 +9,7 @@ use OCA\Deck\Db\Stack; use OCA\Deck\Service\StackService; - use OCP\AppFramework\Controller; - use OCP\AppFramework\Http\Attribute\NoAdminRequired; use OCP\IRequest; diff --git a/lib/Controller/StackOcsController.php b/lib/Controller/StackOcsController.php index 1a4fca254e..cada24f8e5 100644 --- a/lib/Controller/StackOcsController.php +++ b/lib/Controller/StackOcsController.php @@ -77,7 +77,6 @@ public function delete(int $stackId, ?int $boardId = null):DataResponse { return new DataResponse($result); } - #[NoAdminRequired] #[PublicPage] public function reorder(int $stackId, int $order, ?int $boardId):DataResponse { diff --git a/lib/Cron/CardDescriptionActivity.php b/lib/Cron/CardDescriptionActivity.php index 60bb5c88bf..e9e18af816 100644 --- a/lib/Cron/CardDescriptionActivity.php +++ b/lib/Cron/CardDescriptionActivity.php @@ -5,7 +5,6 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ - namespace OCA\Deck\Cron; use OCA\Deck\Activity\ActivityManager; diff --git a/lib/Cron/DeleteCron.php b/lib/Cron/DeleteCron.php index eff098caea..95ad042646 100644 --- a/lib/Cron/DeleteCron.php +++ b/lib/Cron/DeleteCron.php @@ -5,7 +5,6 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ - namespace OCA\Deck\Cron; use OCA\Deck\Db\AttachmentMapper; diff --git a/lib/Cron/SessionsCleanup.php b/lib/Cron/SessionsCleanup.php index 4c83313b52..ea16f1096d 100644 --- a/lib/Cron/SessionsCleanup.php +++ b/lib/Cron/SessionsCleanup.php @@ -7,8 +7,6 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ - - namespace OCA\Deck\Cron; use OCA\Deck\Service\SessionService; @@ -20,7 +18,6 @@ class SessionsCleanup extends TimedJob { private $documentService; private $imageService; - public function __construct( ITimeFactory $time, private SessionService $sessionService, diff --git a/lib/DAV/Calendar.php b/lib/DAV/Calendar.php index dbc90f9fae..2a8ae7fbc0 100644 --- a/lib/DAV/Calendar.php +++ b/lib/DAV/Calendar.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\DAV; use OCA\DAV\CalDAV\Integration\ExternalCalendar; @@ -150,7 +151,6 @@ function ($card) use (&$name) { )) > 0; } - public function delete() { throw new Forbidden('Deleting an entry is not implemented'); } diff --git a/lib/DAV/CalendarObject.php b/lib/DAV/CalendarObject.php index 4b8f6476cd..93dd94abaf 100644 --- a/lib/DAV/CalendarObject.php +++ b/lib/DAV/CalendarObject.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\DAV; use OCA\Deck\Db\Card; diff --git a/lib/DAV/CalendarPlugin.php b/lib/DAV/CalendarPlugin.php index e7c9ab6b20..1ce8447fbc 100644 --- a/lib/DAV/CalendarPlugin.php +++ b/lib/DAV/CalendarPlugin.php @@ -15,6 +15,8 @@ class CalendarPlugin implements ICalendarProvider { + private const USER_PRINCIPAL_PREFIX = 'principals/users/'; + /** @var DeckCalendarBackend */ private $backend; /** @var ConfigService */ @@ -33,7 +35,7 @@ public function getAppId(): string { } public function fetchAllForCalendarHome(string $principalUri): array { - if (!$this->calendarIntegrationEnabled) { + if (!$this->calendarIntegrationEnabled || !$this->isOwnCalendarHome($principalUri)) { return []; } @@ -46,7 +48,7 @@ public function fetchAllForCalendarHome(string $principalUri): array { } public function hasCalendarInCalendarHome(string $principalUri, string $calendarUri): bool { - if (!$this->calendarIntegrationEnabled) { + if (!$this->calendarIntegrationEnabled || !$this->isOwnCalendarHome($principalUri)) { return false; } @@ -71,4 +73,10 @@ public function getCalendarInCalendarHome(string $principalUri, string $calendar } return null; } + + private function isOwnCalendarHome(string $principalUri): bool { + $userId = $this->configService->getUserId(); + + return $userId !== null && $principalUri === self::USER_PRINCIPAL_PREFIX . $userId; + } } diff --git a/lib/DAV/DeckCalendarBackend.php b/lib/DAV/DeckCalendarBackend.php index 73146b0dda..ddb6c024f4 100644 --- a/lib/DAV/DeckCalendarBackend.php +++ b/lib/DAV/DeckCalendarBackend.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\DAV; use OCA\Deck\Db\Board; diff --git a/lib/Db/Acl.php b/lib/Db/Acl.php index 735f9a19fc..52aba43b18 100644 --- a/lib/Db/Acl.php +++ b/lib/Db/Acl.php @@ -21,6 +21,10 @@ * @method void setOwner(int $owner) * @method void setToken(string $token) * @method string getToken() + * @method int getCreatedAt() + * @method void setCreatedAt(int $createdAt) + * @method int getLastModifiedAt() + * @method void setLastModifiedAt(int $lastModifiedAt) * */ class Acl extends RelationalEntity { @@ -42,6 +46,8 @@ class Acl extends RelationalEntity { protected $permissionManage = false; protected $owner = false; protected $token = null; + protected $createdAt = 0; + protected $lastModifiedAt = 0; public function __construct() { $this->addType('id', 'integer'); @@ -52,6 +58,8 @@ public function __construct() { $this->addType('type', 'integer'); $this->addType('owner', 'boolean'); $this->addType('token', 'string'); + $this->addType('createdAt', 'integer'); + $this->addType('lastModifiedAt', 'integer'); $this->addRelation('owner'); $this->addResolvable('participant'); } diff --git a/lib/Db/AclMapper.php b/lib/Db/AclMapper.php index 669ca7a5ed..defba19d12 100644 --- a/lib/Db/AclMapper.php +++ b/lib/Db/AclMapper.php @@ -8,6 +8,7 @@ namespace OCA\Deck\Db; use OCP\AppFramework\Db\DoesNotExistException; +use OCP\AppFramework\Db\Entity; use OCP\AppFramework\Db\MultipleObjectsReturnedException; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IDBConnection; @@ -20,7 +21,7 @@ public function __construct(IDBConnection $db) { public function findByAccessToken(string $accessToken) { $qb = $this->db->getQueryBuilder(); - $qb->select('id', 'board_id', 'type', 'participant', 'permission_edit', 'permission_share', 'permission_manage', 'token') + $qb->select('id', 'board_id', 'type', 'participant', 'permission_edit', 'permission_share', 'permission_manage', 'token', 'created_at', 'last_modified_at') ->from('deck_board_acl') ->where($qb->expr()->eq('token', $qb->createNamedParameter($accessToken, IQueryBuilder::PARAM_STR))) ->setMaxResults(1); @@ -34,7 +35,7 @@ public function findByAccessToken(string $accessToken) { */ public function findAll(int $boardId, ?int $limit = null, ?int $offset = null) { $qb = $this->db->getQueryBuilder(); - $qb->select('id', 'board_id', 'type', 'participant', 'permission_edit', 'permission_share', 'permission_manage', 'token') + $qb->select('id', 'board_id', 'type', 'participant', 'permission_edit', 'permission_share', 'permission_manage', 'token', 'created_at', 'last_modified_at') ->from('deck_board_acl') ->where($qb->expr()->eq('board_id', $qb->createNamedParameter($boardId, IQueryBuilder::PARAM_INT))) ->setMaxResults($limit) @@ -45,7 +46,7 @@ public function findAll(int $boardId, ?int $limit = null, ?int $offset = null) { public function findIn(array $boardIds, ?int $limit = null, ?int $offset = null): array { $qb = $this->db->getQueryBuilder(); - $qb->select('id', 'board_id', 'type', 'participant', 'permission_edit', 'permission_share', 'permission_manage') + $qb->select('id', 'board_id', 'type', 'participant', 'permission_edit', 'permission_share', 'permission_manage', 'created_at', 'last_modified_at') ->from('deck_board_acl') ->where($qb->expr()->in('board_id', $qb->createParameter('boardIds'))) ->setMaxResults($limit) @@ -127,4 +128,18 @@ public function findByType(int $type): array { ->where($qb->expr()->eq('type', $qb->createNamedParameter($type, IQueryBuilder::PARAM_INT))); return $this->findEntities($qb); } + + public function insert(Entity $entity): Entity { + /** @var Acl $entity */ + $now = time(); + $entity->setCreatedAt($now); + $entity->setLastModifiedAt($now); + return parent::insert($entity); + } + + public function update(Entity $entity): Entity { + /** @var Acl $entity */ + $entity->setLastModifiedAt(time()); + return parent::update($entity); + } } diff --git a/lib/Db/AssignmentMapper.php b/lib/Db/AssignmentMapper.php index 8cbb43c61f..c57d3f0357 100644 --- a/lib/Db/AssignmentMapper.php +++ b/lib/Db/AssignmentMapper.php @@ -111,7 +111,6 @@ public function deleteByParticipantOnBoard(string $participant, int $boardId, $t } } - public function isOwner(string $userId, int $id): bool { return $this->cardMapper->isOwner($userId, $id); } diff --git a/lib/Db/AttachmentMapper.php b/lib/Db/AttachmentMapper.php index 37bebb1ded..0895453a1d 100644 --- a/lib/Db/AttachmentMapper.php +++ b/lib/Db/AttachmentMapper.php @@ -5,7 +5,6 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ - namespace OCA\Deck\Db; use OCP\AppFramework\Db\DoesNotExistException; @@ -103,7 +102,6 @@ public function findAll(int $cardId): array { ->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId, IQueryBuilder::PARAM_INT))) ->andWhere($qb->expr()->eq('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT))); - return $this->findEntities($qb); } @@ -129,7 +127,6 @@ public function findToDelete(?int $cardId = null, bool $withOffset = true): arra return $this->findEntities($qb); } - /** * Check if $userId is owner of Entity with $id */ diff --git a/lib/Db/BoardMapper.php b/lib/Db/BoardMapper.php index 2583a117cd..5c8baa5ce4 100644 --- a/lib/Db/BoardMapper.php +++ b/lib/Db/BoardMapper.php @@ -42,7 +42,6 @@ public function __construct( $this->boardCache = new CappedMemoryCache(); } - /** * @param $id * @param bool $withLabels diff --git a/lib/Db/Card.php b/lib/Db/Card.php index 443952ce46..c30e771307 100644 --- a/lib/Db/Card.php +++ b/lib/Db/Card.php @@ -18,6 +18,8 @@ * @method void setTitle(string $title) * @method string getDescription() * @method string getDescriptionPrev() + * @method string getColor() + * @method string setColor(string $color) * @method int getStackId() * @method void setStackId(int $stackId) * @method int getOrder() @@ -35,6 +37,9 @@ * @method ?DateTime getStartdate() * @method void setStartdate(?DateTime $startdate) * + * @method void setDependentCards(array $cardIds) + * @method null|array getDependentCards() + * * @method void setLabels(Label[] $labels) * @method null|Label[] getLabels() * @@ -67,6 +72,7 @@ class Card extends RelationalEntity { protected string $title = ''; protected $description; + protected $color = null; protected $descriptionPrev; protected $stackId; protected $type; @@ -87,6 +93,7 @@ class Card extends RelationalEntity { protected $deletedAt = 0; protected $commentsUnread = 0; protected $commentsCount = 0; + protected ?array $dependentCards = null; protected $relatedStack = null; protected $relatedBoard = null; @@ -110,6 +117,7 @@ public function __construct() { $this->addType('deletedAt', 'integer'); $this->addType('duedate', 'datetime'); $this->addType('startdate', 'datetime'); + $this->addRelation('dependentCards'); $this->addRelation('labels'); $this->addRelation('assignedUsers'); $this->addRelation('attachments'); diff --git a/lib/Db/CardMapper.php b/lib/Db/CardMapper.php index 761c9cfad4..47f3e58af3 100644 --- a/lib/Db/CardMapper.php +++ b/lib/Db/CardMapper.php @@ -17,6 +17,7 @@ use OCP\ICache; use OCP\ICacheFactory; use OCP\IDBConnection; +use OCP\IGroup; use OCP\IGroupManager; use OCP\IUser; use OCP\IUserManager; @@ -552,8 +553,9 @@ private function extendQueryByFilter(IQueryBuilder $qb, SearchQuery $query) { return (mb_strtolower($user->getDisplayName()) === mb_strtolower($assignedQueryValue) || $user->getUID() === $assignedQueryValue); }); $groups = $this->groupManager->search($assignment->getValue()); + $groups = array_map(fn (IGroup $g): string => $g->getGID(), $groups); foreach ($searchUsers as $user) { - $groups = array_merge($groups, $this->groupManager->getUserGroups($user)); + $groups = array_merge($groups, $this->groupManager->getUserGroupIds($user)); } $assignmentSearches = []; @@ -565,10 +567,10 @@ private function extendQueryByFilter(IQueryBuilder $qb, SearchQuery $query) { $qb->expr()->eq('au' . $index . '.type', $qb->createNamedParameter(Assignment::TYPE_USER, IQueryBuilder::PARAM_INT)) ); } - foreach ($groups as $group) { + foreach ($groups as $groupId) { $hasAssignedMatches = true; $assignmentSearches[] = $qb->expr()->andX( - $qb->expr()->eq('au' . $index . '.participant', $qb->createNamedParameter($group->getGID(), IQueryBuilder::PARAM_STR)), + $qb->expr()->eq('au' . $index . '.participant', $qb->createNamedParameter($groupId, IQueryBuilder::PARAM_STR)), $qb->expr()->eq('au' . $index . '.type', $qb->createNamedParameter(Assignment::TYPE_GROUP, IQueryBuilder::PARAM_INT)) ); } @@ -587,8 +589,6 @@ private function dateTimeParameter(IQueryBuilder $qb, DateTime $dateTime) { return $qb->createNamedParameter($dateTime, IQueryBuilder::PARAM_DATE); } - - public function searchRaw($boardIds, $term, $limit = null, $offset = null) { $qb = $this->queryCardsByBoards($boardIds) ->select('s.board_id', 'board_id') @@ -614,6 +614,7 @@ public function searchRaw($boardIds, $term, $limit = null, $offset = null) { public function delete(Entity $entity): Entity { $this->labelMapper->deleteLabelAssignmentsForCard($entity->getId()); + $this->removeDependenciesForCard($entity->getId()); $this->cache->remove('findBoardId:' . $entity->getId()); return parent::delete($entity); } @@ -643,6 +644,76 @@ public function removeLabel(int $card, int $label): void { $qb->executeStatement(); } + /** + * @param int[] $cardIds + * @return array + */ + public function findDependenciesForCards(array $cardIds): array { + if ($cardIds === []) { + return []; + } + + $qb = $this->db->getQueryBuilder(); + $qb->select('card_id', 'dependent_card_id') + ->from('deck_dependent_cards') + ->where($qb->expr()->in('card_id', $qb->createNamedParameter($cardIds, IQueryBuilder::PARAM_INT_ARRAY))) + ->orderBy('card_id') + ->addOrderBy('dependent_card_id'); + + $result = []; + $queryResult = $qb->executeQuery(); + while ($row = $queryResult->fetch()) { + $cardId = (int)$row['card_id']; + $result[$cardId][] = (int)$row['dependent_card_id']; + } + + return $result; + } + + public function addDependency(int $cardId, int $dependentCardId): bool { + if ($this->hasDependency($cardId, $dependentCardId)) { + return false; + } + + $qb = $this->db->getQueryBuilder(); + $qb->insert('deck_dependent_cards') + ->values([ + 'card_id' => $qb->createNamedParameter($cardId, IQueryBuilder::PARAM_INT), + 'dependent_card_id' => $qb->createNamedParameter($dependentCardId, IQueryBuilder::PARAM_INT), + ]); + $qb->executeStatement(); + + return true; + } + + public function removeDependency(int $cardId, int $dependentCardId): bool { + $qb = $this->db->getQueryBuilder(); + $qb->delete('deck_dependent_cards') + ->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId, IQueryBuilder::PARAM_INT))) + ->andWhere($qb->expr()->eq('dependent_card_id', $qb->createNamedParameter($dependentCardId, IQueryBuilder::PARAM_INT))); + + return $qb->executeStatement() > 0; + } + + public function removeDependenciesForCard(int $cardId): void { + $qb = $this->db->getQueryBuilder(); + $qb->delete('deck_dependent_cards') + ->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId, IQueryBuilder::PARAM_INT))) + ->orWhere($qb->expr()->eq('dependent_card_id', $qb->createNamedParameter($cardId, IQueryBuilder::PARAM_INT))); + $qb->executeStatement(); + } + + private function hasDependency(int $cardId, int $dependentCardId): bool { + $qb = $this->db->getQueryBuilder(); + $qb->select('id') + ->from('deck_dependent_cards') + ->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId, IQueryBuilder::PARAM_INT))) + ->andWhere($qb->expr()->eq('dependent_card_id', $qb->createNamedParameter($dependentCardId, IQueryBuilder::PARAM_INT))) + ->setMaxResults(1); + + return $qb->executeQuery()->fetchOne() !== false; + } + public function isOwner(string $userId, int $id): bool { $qb = $this->db->getQueryBuilder(); $qb->select('c.id') diff --git a/lib/Db/IPermissionMapper.php b/lib/Db/IPermissionMapper.php index caab974732..e40c1d7099 100644 --- a/lib/Db/IPermissionMapper.php +++ b/lib/Db/IPermissionMapper.php @@ -5,7 +5,6 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ - namespace OCA\Deck\Db; /** diff --git a/lib/Db/StackMapper.php b/lib/Db/StackMapper.php index 302828e218..baa8d6186d 100644 --- a/lib/Db/StackMapper.php +++ b/lib/Db/StackMapper.php @@ -33,7 +33,6 @@ public function __construct( $this->cache = $cacheFactory->createDistributed('deck-stackMapper'); } - /** * @throws DoesNotExistException * @throws MultipleObjectsReturnedException diff --git a/lib/Event/AAclEvent.php b/lib/Event/AAclEvent.php index fecd410f50..c649463f87 100644 --- a/lib/Event/AAclEvent.php +++ b/lib/Event/AAclEvent.php @@ -7,13 +7,13 @@ declare(strict_types=1); - namespace OCA\Deck\Event; use OCA\Deck\Db\Acl; use OCP\EventDispatcher\Event; +use OCP\EventDispatcher\IWebhookCompatibleEvent; -abstract class AAclEvent extends Event { +abstract class AAclEvent extends Event implements IWebhookCompatibleEvent { private $acl; public function __construct(Acl $acl) { @@ -29,4 +29,10 @@ public function getAcl(): Acl { public function getBoardId(): int { return $this->acl->getBoardId(); } + + public function getWebhookSerializable(): array { + return [ + 'acl' => $this->acl->jsonSerialize(), + ]; + } } diff --git a/lib/Event/ABoardImportGetAllowedEvent.php b/lib/Event/ABoardImportGetAllowedEvent.php index 06111787b8..0958926443 100644 --- a/lib/Event/ABoardImportGetAllowedEvent.php +++ b/lib/Event/ABoardImportGetAllowedEvent.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Event; use OCA\Deck\Service\Importer\BoardImportService; diff --git a/lib/Event/ACardEvent.php b/lib/Event/ACardEvent.php index b26620c7ad..475560fbfb 100644 --- a/lib/Event/ACardEvent.php +++ b/lib/Event/ACardEvent.php @@ -7,13 +7,13 @@ declare(strict_types=1); - namespace OCA\Deck\Event; use OCA\Deck\Db\Card; use OCP\EventDispatcher\Event; +use OCP\EventDispatcher\IWebhookCompatibleEvent; -abstract class ACardEvent extends Event { +abstract class ACardEvent extends Event implements IWebhookCompatibleEvent { private $card; public function __construct(Card $card) { @@ -25,4 +25,10 @@ public function __construct(Card $card) { public function getCard(): Card { return $this->card; } + + public function getWebhookSerializable(): array { + return [ + 'card' => $this->card->jsonSerialize(), + ]; + } } diff --git a/lib/Event/AclDeletedEvent.php b/lib/Event/AclDeletedEvent.php index e47a49a4cb..6d00a20d0f 100644 --- a/lib/Event/AclDeletedEvent.php +++ b/lib/Event/AclDeletedEvent.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Event; class AclDeletedEvent extends AAclEvent { diff --git a/lib/Event/AclUpdatedEvent.php b/lib/Event/AclUpdatedEvent.php index 521d428b97..bac62b6adf 100644 --- a/lib/Event/AclUpdatedEvent.php +++ b/lib/Event/AclUpdatedEvent.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Event; class AclUpdatedEvent extends AAclEvent { diff --git a/lib/Event/BoardUpdatedEvent.php b/lib/Event/BoardUpdatedEvent.php index c2494c4b32..a3330a9810 100644 --- a/lib/Event/BoardUpdatedEvent.php +++ b/lib/Event/BoardUpdatedEvent.php @@ -7,12 +7,12 @@ declare(strict_types=1); - namespace OCA\Deck\Event; use OCP\EventDispatcher\Event; +use OCP\EventDispatcher\IWebhookCompatibleEvent; -class BoardUpdatedEvent extends Event { +class BoardUpdatedEvent extends Event implements IWebhookCompatibleEvent { private $boardId; public function __construct(int $boardId) { @@ -24,4 +24,10 @@ public function __construct(int $boardId) { public function getBoardId(): int { return $this->boardId; } + + public function getWebhookSerializable(): array { + return [ + 'boardId' => $this->boardId, + ]; + } } diff --git a/lib/Event/CardCreatedEvent.php b/lib/Event/CardCreatedEvent.php index 04606de15d..a85bdac0d0 100644 --- a/lib/Event/CardCreatedEvent.php +++ b/lib/Event/CardCreatedEvent.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Event; class CardCreatedEvent extends ACardEvent { diff --git a/lib/Event/CardDeletedEvent.php b/lib/Event/CardDeletedEvent.php index 3c3d78f510..63ed7424b4 100644 --- a/lib/Event/CardDeletedEvent.php +++ b/lib/Event/CardDeletedEvent.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Event; class CardDeletedEvent extends ACardEvent { diff --git a/lib/Event/CardUpdatedEvent.php b/lib/Event/CardUpdatedEvent.php index ce3aa91b34..cfbf2019f5 100644 --- a/lib/Event/CardUpdatedEvent.php +++ b/lib/Event/CardUpdatedEvent.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Event; use OCA\Deck\Db\Card; diff --git a/lib/Event/SessionClosedEvent.php b/lib/Event/SessionClosedEvent.php index eaea7b5261..a0ab6d764a 100644 --- a/lib/Event/SessionClosedEvent.php +++ b/lib/Event/SessionClosedEvent.php @@ -8,7 +8,6 @@ */ declare(strict_types=1); - namespace OCA\Deck\Event; use OCP\EventDispatcher\Event; diff --git a/lib/Event/SessionCreatedEvent.php b/lib/Event/SessionCreatedEvent.php index 15dd01afcf..6d06db8968 100644 --- a/lib/Event/SessionCreatedEvent.php +++ b/lib/Event/SessionCreatedEvent.php @@ -9,7 +9,6 @@ declare(strict_types=1); - namespace OCA\Deck\Event; use OCP\EventDispatcher\Event; diff --git a/lib/Listeners/AclCreatedRemovedListener.php b/lib/Listeners/AclCreatedRemovedListener.php index 763214f06c..9330934e3b 100644 --- a/lib/Listeners/AclCreatedRemovedListener.php +++ b/lib/Listeners/AclCreatedRemovedListener.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Listeners; use OCA\Circles\Model\Member; diff --git a/lib/Listeners/BeforeTemplateRenderedListener.php b/lib/Listeners/BeforeTemplateRenderedListener.php index 531d8c37fb..4d438aba41 100644 --- a/lib/Listeners/BeforeTemplateRenderedListener.php +++ b/lib/Listeners/BeforeTemplateRenderedListener.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Listeners; use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent; diff --git a/lib/Listeners/FullTextSearchEventListener.php b/lib/Listeners/FullTextSearchEventListener.php index 45263f1d5d..588c4f22aa 100644 --- a/lib/Listeners/FullTextSearchEventListener.php +++ b/lib/Listeners/FullTextSearchEventListener.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Listeners; use OCA\Deck\Db\Card; diff --git a/lib/Listeners/LiveUpdateListener.php b/lib/Listeners/LiveUpdateListener.php index 2cdd624502..e2c8a12cef 100644 --- a/lib/Listeners/LiveUpdateListener.php +++ b/lib/Listeners/LiveUpdateListener.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Listeners; use OCA\Deck\Db\StackMapper; diff --git a/lib/Listeners/ParticipantCleanupListener.php b/lib/Listeners/ParticipantCleanupListener.php index 3ba4e27c78..ebf35eab6b 100644 --- a/lib/Listeners/ParticipantCleanupListener.php +++ b/lib/Listeners/ParticipantCleanupListener.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Listeners; use OCA\Circles\Events\CircleDestroyedEvent; diff --git a/lib/Listeners/ResourceAdditionalScriptsListener.php b/lib/Listeners/ResourceAdditionalScriptsListener.php index 1cbde9a837..7eb5998303 100644 --- a/lib/Listeners/ResourceAdditionalScriptsListener.php +++ b/lib/Listeners/ResourceAdditionalScriptsListener.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Listeners; use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent; diff --git a/lib/Listeners/ResourceListener.php b/lib/Listeners/ResourceListener.php index c1497c330d..bfec714837 100644 --- a/lib/Listeners/ResourceListener.php +++ b/lib/Listeners/ResourceListener.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Listeners; use OCA\Deck\Collaboration\Resources\ResourceProvider; diff --git a/lib/Migration/DeletedCircleCleanup.php b/lib/Migration/DeletedCircleCleanup.php index dcf422e71e..7fd52d56fc 100644 --- a/lib/Migration/DeletedCircleCleanup.php +++ b/lib/Migration/DeletedCircleCleanup.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Migration; use OCA\Deck\Db\Acl; diff --git a/lib/Migration/LabelMismatchCleanup.php b/lib/Migration/LabelMismatchCleanup.php index bc1da01e88..75f8a21937 100644 --- a/lib/Migration/LabelMismatchCleanup.php +++ b/lib/Migration/LabelMismatchCleanup.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Migration; use OCP\IDBConnection; diff --git a/lib/Migration/Version1000Date20200306161713.php b/lib/Migration/Version1000Date20200306161713.php index a4ed0ebce5..b09847dc30 100644 --- a/lib/Migration/Version1000Date20200306161713.php +++ b/lib/Migration/Version1000Date20200306161713.php @@ -5,6 +5,7 @@ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Migration; use Closure; diff --git a/lib/Migration/Version1000Date20200308073933.php b/lib/Migration/Version1000Date20200308073933.php index 1e5c3e084f..d88a95cece 100644 --- a/lib/Migration/Version1000Date20200308073933.php +++ b/lib/Migration/Version1000Date20200308073933.php @@ -5,6 +5,7 @@ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Migration; use Closure; diff --git a/lib/Migration/Version10200Date20201111150114.php b/lib/Migration/Version10200Date20201111150114.php index a8d264daba..c116ecb85b 100644 --- a/lib/Migration/Version10200Date20201111150114.php +++ b/lib/Migration/Version10200Date20201111150114.php @@ -5,6 +5,7 @@ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Migration; use Closure; diff --git a/lib/Migration/Version10900Date202206151724222.php b/lib/Migration/Version10900Date202206151724222.php index 1a34060e2d..3dd12c45e8 100644 --- a/lib/Migration/Version10900Date202206151724222.php +++ b/lib/Migration/Version10900Date202206151724222.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Migration; use Closure; diff --git a/lib/Migration/Version11000Date20240222115515.php b/lib/Migration/Version11000Date20240222115515.php index 8b4c124e04..591ece5d15 100644 --- a/lib/Migration/Version11000Date20240222115515.php +++ b/lib/Migration/Version11000Date20240222115515.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Migration; use Closure; diff --git a/lib/Migration/Version11001Date20251009165313.php b/lib/Migration/Version11001Date20251009165313.php index c77747c197..81823890b7 100644 --- a/lib/Migration/Version11001Date20251009165313.php +++ b/lib/Migration/Version11001Date20251009165313.php @@ -6,6 +6,7 @@ */ declare(strict_types=1); + namespace OCA\Deck\Migration; use Closure; diff --git a/lib/Migration/Version11001Date20251020122010.php b/lib/Migration/Version11001Date20251020122010.php index 2b8fc47c6f..bda355353e 100644 --- a/lib/Migration/Version11001Date20251020122010.php +++ b/lib/Migration/Version11001Date20251020122010.php @@ -6,6 +6,7 @@ */ declare(strict_types=1); + namespace OCA\Deck\Migration; use Closure; diff --git a/lib/Migration/Version11002Date20260228000000.php b/lib/Migration/Version11002Date20260228000000.php index d7662254a8..1dcce53429 100644 --- a/lib/Migration/Version11002Date20260228000000.php +++ b/lib/Migration/Version11002Date20260228000000.php @@ -6,6 +6,7 @@ */ declare(strict_types=1); + namespace OCA\Deck\Migration; use Closure; diff --git a/lib/Migration/Version11002Date20260312000000.php b/lib/Migration/Version11002Date20260312000000.php index f7eb4070bc..b0eb9e9915 100644 --- a/lib/Migration/Version11002Date20260312000000.php +++ b/lib/Migration/Version11002Date20260312000000.php @@ -6,6 +6,7 @@ */ declare(strict_types=1); + namespace OCA\Deck\Migration; use Closure; diff --git a/lib/Migration/Version11002Date20260317170905.php b/lib/Migration/Version11002Date20260317170905.php new file mode 100644 index 0000000000..a360c2031d --- /dev/null +++ b/lib/Migration/Version11002Date20260317170905.php @@ -0,0 +1,31 @@ +hasTable('deck_cards')) { + $table = $schema->getTable('deck_cards'); + if (!$table->hasColumn('color')) { + $table->addColumn('color', 'string', [ + 'notnull' => false, + 'length' => 6, + ]); + } + } + return $schema; + } +} diff --git a/lib/Migration/Version11002Date20260410000000.php b/lib/Migration/Version11002Date20260410000000.php new file mode 100644 index 0000000000..f765bf9b94 --- /dev/null +++ b/lib/Migration/Version11002Date20260410000000.php @@ -0,0 +1,44 @@ +hasTable('deck_dependent_cards')) { + $table = $schema->createTable('deck_dependent_cards'); + $table->addColumn('id', 'integer', [ + 'autoincrement' => true, + 'notnull' => true, + 'length' => 4, + ]); + $table->addColumn('card_id', 'integer', [ + 'notnull' => true, + 'length' => 4, + 'default' => 0, + ]); + $table->addColumn('dependent_card_id', 'integer', [ + 'notnull' => true, + 'length' => 4, + 'default' => 0, + ]); + $table->setPrimaryKey(['id']); + $table->addUniqueIndex(['card_id', 'dependent_card_id'], 'deck_depend_cards_uidx'); + $table->addIndex(['card_id'], 'deck_depend_cards_idx_c'); + $table->addIndex(['dependent_card_id'], 'deck_depend_cards_idx_d'); + } + return $schema; + } +} diff --git a/lib/Migration/Version11002Date20260611000000.php b/lib/Migration/Version11002Date20260611000000.php new file mode 100644 index 0000000000..79b1cd601e --- /dev/null +++ b/lib/Migration/Version11002Date20260611000000.php @@ -0,0 +1,41 @@ +getTable('deck_board_acl'); + + if (!$table->hasColumn('created_at')) { + $table->addColumn('created_at', 'integer', [ + 'notnull' => true, + 'default' => 0, + 'unsigned' => true, + ]); + } + + if (!$table->hasColumn('last_modified_at')) { + $table->addColumn('last_modified_at', 'integer', [ + 'notnull' => true, + 'default' => 0, + 'unsigned' => true, + ]); + } + + return $schema; + } +} diff --git a/lib/Model/BoardSummary.php b/lib/Model/BoardSummary.php index 8d14f274ee..adf33dabeb 100644 --- a/lib/Model/BoardSummary.php +++ b/lib/Model/BoardSummary.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Model; use OCA\Deck\Db\Board; diff --git a/lib/Model/CardDetails.php b/lib/Model/CardDetails.php index d0eb842f43..28b89f7c31 100644 --- a/lib/Model/CardDetails.php +++ b/lib/Model/CardDetails.php @@ -4,6 +4,7 @@ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Model; use OCA\Deck\Db\Board; diff --git a/lib/Notification/NotificationHelper.php b/lib/Notification/NotificationHelper.php index 0813111334..e9d3ebedcc 100644 --- a/lib/Notification/NotificationHelper.php +++ b/lib/Notification/NotificationHelper.php @@ -176,12 +176,28 @@ public function sendBoardShared(int $boardId, Acl $acl, bool $markAsRead = false } public function sendMention(IComment $comment): void { - foreach ($comment->getMentions() as $mention) { - if ((string)$mention['id'] === $this->userId) { + $mentions = $comment->getMentions(); + if (empty($mentions)) { + return; + } + + $card = $this->cardMapper->find($comment->getObjectId()); + $boardId = $this->cardMapper->findBoardId($card->getId()); + $boardUsers = $this->permissionService->findUsers($boardId); + + foreach ($mentions as $mention) { + if (($mention['type'] ?? 'users') !== 'users') { + // skip non-user mentions + continue; + } + $mentionedUserId = (string)$mention['id']; + if ($mentionedUserId === $this->userId) { + continue; + } + if (!array_key_exists($mentionedUserId, $boardUsers)) { + // skip users that don't have access to the board continue; } - $card = $this->cardMapper->find($comment->getObjectId()); - $boardId = $this->cardMapper->findBoardId($card->getId()); $notification = $this->notificationManager->createNotification(); $notification ->setApp('deck') diff --git a/lib/Provider/DeckProvider.php b/lib/Provider/DeckProvider.php index 9601b27dd3..2f9a2136a2 100644 --- a/lib/Provider/DeckProvider.php +++ b/lib/Provider/DeckProvider.php @@ -5,6 +5,7 @@ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Provider; use OC\FullTextSearch\Model\IndexDocument; @@ -38,7 +39,6 @@ class DeckProvider implements IFullTextSearchProvider { private ?IRunner $runner = null; private ?IIndexOptions $indexOptions = null; - /** * DeckProvider constructor. * @@ -54,7 +54,6 @@ public function __construct( $this->fullTextSearchService = $fullTextSearchService; } - /** * return unique id of the provider */ @@ -62,7 +61,6 @@ public function getId(): string { return self::DECK_PROVIDER_ID; } - /** * return name of the provider */ @@ -70,7 +68,6 @@ public function getName(): string { return 'Deck'; } - /** * @return array */ @@ -78,7 +75,6 @@ public function getConfiguration(): array { return []; } - /** * @param IRunner $runner */ @@ -86,7 +82,6 @@ public function setRunner(IRunner $runner) { $this->runner = $runner; } - /** * @param IIndexOptions $options */ @@ -94,7 +89,6 @@ public function setIndexOptions(IIndexOptions $options) { $this->indexOptions = $options; } - public function getSearchTemplate(): ISearchTemplate { /** @psalm-var ISearchTemplate */ $template = new SearchTemplate('icon-deck', 'icons'); @@ -102,15 +96,12 @@ public function getSearchTemplate(): ISearchTemplate { return $template; } - /** * */ public function loadProvider() { } - - /** * @param string $userId * @@ -120,7 +111,6 @@ public function generateChunks(string $userId): array { return []; } - /** * @param string $userId * @param string $chunk @@ -138,7 +128,6 @@ public function generateIndexableDocuments(string $userId, string $chunk): array return $documents; } - /** * @param IIndexDocument $document * @@ -150,7 +139,6 @@ public function fillIndexDocument(IIndexDocument $document) { $this->updateRunnerInfo('info', $document->getTitle()); } - /** * @param IIndexDocument $document * @@ -160,7 +148,6 @@ public function isDocumentUpToDate(IIndexDocument $document): bool { return false; } - /** * @param IIndex $index * @@ -178,28 +165,24 @@ public function updateDocument(IIndex $index): IIndexDocument { return $document; } - /** * @param IFullTextSearchPlatform $platform */ public function onInitializingIndex(IFullTextSearchPlatform $platform) { } - /** * @param IFullTextSearchPlatform $platform */ public function onResettingIndex(IFullTextSearchPlatform $platform) { } - /** * not used yet */ public function unloadProvider() { } - /** * before a search, improve the request * @@ -208,7 +191,6 @@ public function unloadProvider() { public function improveSearchRequest(ISearchRequest $searchRequest) { } - /** * after a search, improve results * @@ -227,7 +209,6 @@ public function improveSearchResult(ISearchResult $searchResult) { } } - /** * @param string $info * @param string $value diff --git a/lib/Reference/CreateCardReferenceProvider.php b/lib/Reference/CreateCardReferenceProvider.php index a4b0e6f8d6..6ddb17e703 100644 --- a/lib/Reference/CreateCardReferenceProvider.php +++ b/lib/Reference/CreateCardReferenceProvider.php @@ -4,13 +4,13 @@ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Reference; use OCA\Deck\AppInfo\Application; use OCP\Collaboration\Reference\ADiscoverableReferenceProvider; use OCP\Collaboration\Reference\IReference; use OCP\IL10N; - use OCP\IURLGenerator; class CreateCardReferenceProvider extends ADiscoverableReferenceProvider { diff --git a/lib/Search/BoardSearchResultEntry.php b/lib/Search/BoardSearchResultEntry.php index d2ed4b4e00..e7b9b639f3 100644 --- a/lib/Search/BoardSearchResultEntry.php +++ b/lib/Search/BoardSearchResultEntry.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Search; use OCA\Deck\AppInfo\Application; diff --git a/lib/Search/CardCommentProvider.php b/lib/Search/CardCommentProvider.php index b2eff20c6d..3f02948f2e 100644 --- a/lib/Search/CardCommentProvider.php +++ b/lib/Search/CardCommentProvider.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Search; use OCA\Deck\Service\SearchService; diff --git a/lib/Search/CardSearchResultEntry.php b/lib/Search/CardSearchResultEntry.php index d1043eb0e2..9aa3e900b7 100644 --- a/lib/Search/CardSearchResultEntry.php +++ b/lib/Search/CardSearchResultEntry.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Search; use OCA\Deck\AppInfo\Application; diff --git a/lib/Search/CommentSearchResultEntry.php b/lib/Search/CommentSearchResultEntry.php index 305bcc6b7b..b5f76243fe 100644 --- a/lib/Search/CommentSearchResultEntry.php +++ b/lib/Search/CommentSearchResultEntry.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Search; use OCA\Deck\Db\Card; diff --git a/lib/Search/DeckProvider.php b/lib/Search/DeckProvider.php index 1d36612a3b..b9c16e35a9 100644 --- a/lib/Search/DeckProvider.php +++ b/lib/Search/DeckProvider.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Search; use OCA\Deck\Db\Board; diff --git a/lib/Search/FilterStringParser.php b/lib/Search/FilterStringParser.php index abca69cc96..0cd623f58f 100644 --- a/lib/Search/FilterStringParser.php +++ b/lib/Search/FilterStringParser.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Search; use OCA\Deck\Search\Query\DateQueryParameter; diff --git a/lib/Search/Query/AQueryParameter.php b/lib/Search/Query/AQueryParameter.php index 0688008652..6b8fbfc287 100644 --- a/lib/Search/Query/AQueryParameter.php +++ b/lib/Search/Query/AQueryParameter.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Search\Query; class AQueryParameter { diff --git a/lib/Search/Query/DateQueryParameter.php b/lib/Search/Query/DateQueryParameter.php index daede87f5f..a8eddda953 100644 --- a/lib/Search/Query/DateQueryParameter.php +++ b/lib/Search/Query/DateQueryParameter.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Search\Query; class DateQueryParameter extends AQueryParameter { diff --git a/lib/Search/Query/SearchQuery.php b/lib/Search/Query/SearchQuery.php index be62cd77cb..8ecc5b5f1c 100644 --- a/lib/Search/Query/SearchQuery.php +++ b/lib/Search/Query/SearchQuery.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Search\Query; class SearchQuery { @@ -34,7 +33,6 @@ class SearchQuery { /** @var DateQueryParameter[] */ private $duedate = []; - public function addTextToken(string $textToken): void { $this->textTokens[] = $textToken; } diff --git a/lib/Search/Query/StringQueryParameter.php b/lib/Search/Query/StringQueryParameter.php index 271b90a800..8361bc4225 100644 --- a/lib/Search/Query/StringQueryParameter.php +++ b/lib/Search/Query/StringQueryParameter.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Search\Query; class StringQueryParameter extends AQueryParameter { diff --git a/lib/Service/AssignmentService.php b/lib/Service/AssignmentService.php index 734f7a5f9b..292aa672ab 100644 --- a/lib/Service/AssignmentService.php +++ b/lib/Service/AssignmentService.php @@ -48,7 +48,7 @@ public function __construct( public function assignUser(int $cardId, string $userId, int $type = Assignment::TYPE_USER): Assignment { $this->assignmentServiceValidator->check(compact('cardId', 'userId')); - if ($type !== Assignment::TYPE_USER && $type !== Assignment::TYPE_GROUP && $type !== Assignment::TYPE_REMOTE) { + if ($type !== Assignment::TYPE_USER && $type !== Assignment::TYPE_GROUP && $type !== Assignment::TYPE_REMOTE && $type !== Assignment::TYPE_CIRCLE) { throw new BadRequestException('Invalid type provided for assignemnt'); } @@ -62,15 +62,18 @@ public function assignUser(int $cardId, string $userId, int $type = Assignment:: $card = $this->cardMapper->find($cardId); $boardId = $this->cardMapper->findBoardId($cardId); - $boardUsers = array_keys($this->permissionService->findUsers($boardId, true)); - $groups = array_filter($this->aclMapper->findAll($boardId), function (Acl $acl) use ($userId) { + $boardUsers = array_map(fn (string|int $userId) => (string)$userId, array_keys($this->permissionService->findUsers($boardId, true))); + $acls = $this->aclMapper->findAll($boardId); + $groups = array_filter($acls, function (Acl $acl) use ($userId) { return $acl->getType() === Acl::PERMISSION_TYPE_GROUP && $acl->getParticipant() === $userId; }); - if (!in_array($userId, $boardUsers, true) && count($groups) !== 1) { + $teams = array_filter($acls, function (Acl $acl) use ($userId) { + return $acl->getType() === Acl::PERMISSION_TYPE_CIRCLE && $acl->getParticipant() === $userId; + }); + if (!in_array($userId, $boardUsers, true) && count($groups) !== 1 && count($teams) !== 1) { throw new BadRequestException('The user is not part of the board'); } - if ($type === Assignment::TYPE_USER && $userId !== $this->userId) { $this->notificationHelper->sendCardAssigned($card, $userId); } @@ -110,7 +113,6 @@ public function unassignUser(int $cardId, string $userId, int $type = 0): Assign } $this->changeHelper->cardChanged($cardId); - $this->eventDispatcher->dispatchTyped(new CardUpdatedEvent($card)); return $assignment; diff --git a/lib/Service/AttachmentService.php b/lib/Service/AttachmentService.php index 671c0b156b..bcf0bc8eae 100644 --- a/lib/Service/AttachmentService.php +++ b/lib/Service/AttachmentService.php @@ -203,6 +203,18 @@ public function create(int $cardId, string $type, string $data = '') { return $attachment; } + /** + * Apply import side effects to keep attachment behavior consistent with regular create flow. + */ + public function syncAttachmentCreateSideEffects(Attachment $attachment): Attachment { + $cardId = $attachment->getCardId(); + $this->attachmentCacheHelper->clearAttachmentCount($cardId); + $this->addCreator($attachment); + $this->changeHelper->cardChanged($cardId); + $this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $attachment, ActivityManager::SUBJECT_ATTACHMENT_CREATE); + + return $attachment; + } /** * Display the attachment diff --git a/lib/Service/BoardService.php b/lib/Service/BoardService.php index e08b34b8c9..b2300b8603 100644 --- a/lib/Service/BoardService.php +++ b/lib/Service/BoardService.php @@ -181,7 +181,6 @@ public function isDeleted($mapper, int $id): bool { return $board->getDeletedAt() > 0; } - /** * @throws BadRequestException */ @@ -342,9 +341,13 @@ private function applyPermissions(int $boardId, bool $edit, bool $share, bool $m public function enrichWithBoardSettings(Board $board): void { $globalCalendarConfig = (bool)$this->config->getUserValue($this->userId, Application::APP_ID, 'calendar', true); + $boardId = $board->getId(); $settings = [ - 'notify-due' => $this->config->getUserValue($this->userId, Application::APP_ID, 'board:' . $board->getId() . ':notify-due', ConfigService::SETTING_BOARD_NOTIFICATION_DUE_ASSIGNED), - 'calendar' => $this->config->getUserValue($this->userId, Application::APP_ID, 'board:' . $board->getId() . ':calendar', $globalCalendarConfig), + 'notify-due' => $this->config->getUserValue($this->userId, Application::APP_ID, 'board:' . $boardId . ':notify-due', ConfigService::SETTING_BOARD_NOTIFICATION_DUE_ASSIGNED), + 'calendar' => $this->config->getUserValue($this->userId, Application::APP_ID, 'board:' . $boardId . ':calendar', $globalCalendarConfig), + 'swimlaneMode' => $this->config->getAppValue(Application::APP_ID, 'board:' . $boardId . ':swimlaneMode', 'none'), + 'swimlaneLabelOrder' => $this->config->getAppValue(Application::APP_ID, 'board:' . $boardId . ':swimlaneLabelOrder', '[]'), + 'swimlaneUserOrder' => $this->config->getAppValue(Application::APP_ID, 'board:' . $boardId . ':swimlaneUserOrder', '[]'), ]; $board->setSettings($settings); } @@ -401,6 +404,9 @@ public function addAcl(int $boardId, int $type, $participant, bool $edit, bool $ $acl->setPermissionEdit($edit); $acl->setPermissionShare($share); $acl->setPermissionManage($manage); + $now = time(); + $acl->setCreatedAt($now); + $acl->setLastModifiedAt($now); $newAcl = $this->aclMapper->insert($acl); $this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_BOARD, $newAcl, ActivityManager::SUBJECT_BOARD_SHARE, [], $this->userId); @@ -452,6 +458,7 @@ public function updateAcl(int $id, bool $edit, bool $share, bool $manage): Acl { $acl->setPermissionEdit($edit); $acl->setPermissionShare($share); $acl->setPermissionManage($manage); + $acl->setLastModifiedAt(time()); $this->boardMapper->mapAcl($acl); $acl = $this->aclMapper->update($acl); $this->changeHelper->boardChanged($acl->getBoardId()); @@ -585,7 +592,6 @@ public function clone( $acl->getPermissionManage()); } - $labels = $this->labelMapper->findAll($id); foreach ($labels as $label) { $newLabel = new Label(); @@ -749,7 +755,6 @@ private function cloneCards(Board $board, Board $newBoard, bool $withAssignments // Persist the cloned card. $newCard = $this->cardMapper->insert($newCard); - // Copy labels. if ($withLabels) { $labels = $this->labelMapper->findAssignedLabelsForCard($card->getId()); @@ -767,7 +772,6 @@ private function cloneCards(Board $board, Board $newBoard, bool $withAssignments } } - // Copy assignments. if ($withAssignments) { $assignments = $this->assignedUsersMapper->findAll($card->getId()); diff --git a/lib/Service/CardService.php b/lib/Service/CardService.php index aa09178d85..325dc95777 100644 --- a/lib/Service/CardService.php +++ b/lib/Service/CardService.php @@ -100,6 +100,7 @@ public function enrichCards(array $cards): array { $assignedLabels = $this->labelMapper->findAssignedLabelsForCards($cardIds); $assignedUsers = $this->assignedUsersMapper->findIn($cardIds); + $dependenciesByCard = $this->cardMapper->findDependenciesForCards($cardIds); // Pre-group labels and users by card ID $labelsByCard = []; @@ -114,6 +115,7 @@ public function enrichCards(array $cards): array { foreach ($cards as $card) { $card->setLabels($labelsByCard[$card->getId()] ?? []); $card->setAssignedUsers($usersByCard[$card->getId()] ?? []); + $card->setDependentCards($dependenciesByCard[$card->getId()] ?? []); } return array_map( @@ -185,7 +187,7 @@ public function findCalendarEntries(int $boardId): array { * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException * @throws BadrequestException */ - public function create(string $title, int $stackId, string $type, int $order, string $owner, string $description = '', $duedate = null, $startdate = null): Card { + public function create(string $title, int $stackId, string $type, int $order, string $owner, string $description = '', $duedate = null, $startdate = null, ?string $color = null): Card { $this->cardServiceValidator->check(compact('title', 'stackId', 'type', 'order', 'owner')); $this->permissionService->checkPermission($this->stackMapper, $stackId, Acl::PERMISSION_EDIT); @@ -201,6 +203,7 @@ public function create(string $title, int $stackId, string $type, int $order, st $card->setDescription($description); $card->setDuedate($duedate); $card->setStartdate($startdate); + $card->setColor($color); $card = $this->cardMapper->insert($card); $this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $card, ActivityManager::SUBJECT_CARD_CREATE, [], $card->getOwner()); @@ -243,7 +246,7 @@ public function delete(int $id): Card { * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException * @throws BadRequestException */ - public function update(int $id, string $title, int $stackId, string $type, string $owner, string $description = '', int $order = 0, ?string $duedate = null, ?int $deletedAt = null, ?bool $archived = null, ?OptionalNullableValue $done = null, ?string $startdate = null): Card { + public function update(int $id, string $title, int $stackId, string $type, string $owner, string $description = '', int $order = 0, ?string $duedate = null, ?int $deletedAt = null, ?bool $archived = null, ?OptionalNullableValue $done = null, ?string $startdate = null, ?OptionalNullableValue $color = null): Card { $this->cardServiceValidator->check(compact('id', 'title', 'stackId', 'type', 'owner', 'order')); $this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT, allowDeletedCard: true); @@ -286,6 +289,10 @@ public function update(int $id, string $title, int $stackId, string $type, strin $card->setOrder($order); $card->setDuedate($duedate ? new \DateTime($duedate) : null); $card->setStartdate($startdate ? new \DateTime($startdate) : null); + if ($color !== null) { + $colorValue = $color->getValue(); + $card->setColor(is_string($colorValue) && $colorValue !== '' ? $colorValue : null); + } $resetDuedateNotification = false; if ( $card->getDuedate() === null @@ -307,7 +314,6 @@ public function update(int $id, string $title, int $stackId, string $type, strin $card->setDone(null); } - // Trigger update events before setting description as it is handled separately $changes->setAfter($card); $this->activityManager->triggerUpdateEvents(ActivityManager::DECK_OBJECT_CARD, $changes, ActivityManager::SUBJECT_CARD_UPDATE); @@ -526,7 +532,6 @@ public function archive(int $id): Card { public function unarchive(int $id): Card { $this->cardServiceValidator->check(compact('id')); - $this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT); if ($this->boardService->isArchived($this->cardMapper, $id)) { throw new StatusException('Operation not allowed. This board is archived.'); @@ -644,7 +649,6 @@ public function assignLabel(int $cardId, int $labelId): Card { public function removeLabel(int $cardId, int $labelId): Card { $this->cardServiceValidator->check(compact('cardId', 'labelId')); - $this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT); $this->permissionService->checkPermission($this->labelMapper, $labelId, Acl::PERMISSION_READ); @@ -673,4 +677,62 @@ public function getCardUrl(int $cardId): string { public function getRedirectUrlForCard(int $cardId): string { return $this->urlGenerator->linkToRouteAbsolute('deck.page.redirectToCard', ['cardId' => $cardId]); } + + /** + * @throws StatusException + * @throws \OCA\Deck\NoPermissionException + * @throws \OCP\AppFramework\Db\DoesNotExistException + * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException + * @throws BadRequestException + */ + public function assignDependentCard(int $cardId, int $dependentCardId): Card { + $this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT); + $this->permissionService->checkPermission($this->cardMapper, $dependentCardId, Acl::PERMISSION_READ); + + if ($this->boardService->isArchived($this->cardMapper, $cardId)) { + throw new StatusException('Operation not allowed. This board is archived.'); + } + + $card = $this->cardMapper->find($cardId); + if ($card->getArchived()) { + throw new StatusException('Operation not allowed. This card is archived.'); + } + + if ($this->cardMapper->addDependency($cardId, $dependentCardId)) { + $this->changeHelper->cardChanged($cardId); + $this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $card, ActivityManager::SUBJECT_CARD_UPDATE); + } + + [$card] = $this->enrichCards([$card]); + return $card; + } + + /** + * @throws StatusException + * @throws \OCA\Deck\NoPermissionException + * @throws \OCP\AppFramework\Db\DoesNotExistException + * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException + * @throws BadRequestException + */ + public function removeDependentCard(int $cardId, int $dependentCardId): Card { + $this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT); + $this->permissionService->checkPermission($this->cardMapper, $dependentCardId, Acl::PERMISSION_READ); + + if ($this->boardService->isArchived($this->cardMapper, $cardId)) { + throw new StatusException('Operation not allowed. This board is archived.'); + } + + $card = $this->cardMapper->find($cardId); + if ($card->getArchived()) { + throw new StatusException('Operation not allowed. This card is archived.'); + } + + if ($this->cardMapper->removeDependency($cardId, $dependentCardId)) { + $this->changeHelper->cardChanged($cardId); + $this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $card, ActivityManager::SUBJECT_CARD_UPDATE); + } + + [$card] = $this->enrichCards([$card]); + return $card; + } } diff --git a/lib/Service/CirclesService.php b/lib/Service/CirclesService.php index e604a78698..b003fd6550 100644 --- a/lib/Service/CirclesService.php +++ b/lib/Service/CirclesService.php @@ -7,13 +7,13 @@ declare(strict_types=1); - namespace OCA\Deck\Service; use OCA\Circles\CirclesManager; use OCA\Circles\Model\Circle; use OCA\Circles\Model\Member; use OCA\Circles\Model\Probes\CircleProbe; +use OCA\Circles\Model\Probes\DataProbe; use OCP\App\IAppManager; use OCP\Server; use Throwable; @@ -45,7 +45,9 @@ public function getCircle(string $circleId): ?Circle { // Enforce current user condition since we always want the full list of members $circlesManager = Server::get(CirclesManager::class); $circlesManager->startSuperSession(); - return $circlesManager->getCircle($circleId); + $dataProbe = new DataProbe(); + $dataProbe->add(DataProbe::OWNER); + return $circlesManager->probeCircle($circleId, null, $dataProbe); } catch (Throwable $e) { } return null; @@ -64,7 +66,9 @@ public function isUserInCircle(string $circleId, string $userId): bool { $circlesManager = Server::get(CirclesManager::class); $federatedUser = $circlesManager->getFederatedUser($userId, Member::TYPE_USER); $circlesManager->startSession($federatedUser); - $circle = $circlesManager->getCircle($circleId); + $dataProbe = new DataProbe(); + $dataProbe->add(DataProbe::INITIATOR); + $circle = $circlesManager->probeCircle($circleId, null, $dataProbe); $member = $circle->getInitiator(); $isUserInCircle = $member->getLevel() >= Member::LEVEL_MEMBER; @@ -96,7 +100,7 @@ public function getUserCircles(string $userId): array { $probe->mustBeMember(); return array_map(function (Circle $circle) { return $circle->getSingleId(); - }, $circlesManager->getCircles($probe)); + }, $circlesManager->probeCircles($probe)); } catch (Throwable $e) { } return []; diff --git a/lib/Service/CommentService.php b/lib/Service/CommentService.php index f773e41dcc..e5d4bc140e 100644 --- a/lib/Service/CommentService.php +++ b/lib/Service/CommentService.php @@ -72,7 +72,7 @@ private function get(int $cardId, int $commentId): IComment { throw new NotFoundException('No comment found.'); } if ($comment->getParentId() !== '0') { - $this->permissionService->checkPermission($this->cardMapper, (int)$comment->getParentId(), Acl::PERMISSION_READ); + $this->permissionService->checkPermission($this->cardMapper, (int)$comment->getObjectId(), Acl::PERMISSION_READ); } return $comment; diff --git a/lib/Service/ConfigService.php b/lib/Service/ConfigService.php index 92880ff39e..c4a98cd3af 100644 --- a/lib/Service/ConfigService.php +++ b/lib/Service/ConfigService.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Service; use OCA\Deck\AppInfo\Application; @@ -25,6 +24,8 @@ class ConfigService { public const SETTING_BOARD_NOTIFICATION_DUE_ALL = 'all'; public const SETTING_BOARD_NOTIFICATION_DUE_DEFAULT = self::SETTING_BOARD_NOTIFICATION_DUE_ASSIGNED; + private const SWIMLANE_CONFIG_KEYS = ['swimlaneMode', 'swimlaneLabelOrder', 'swimlaneUserOrder']; + private ?string $userId = null; public function __construct( @@ -183,16 +184,68 @@ public function set($key, $value) { $result = $value; break; case 'board': - [$boardId, $boardConfigKey] = explode(':', $key); + // extra check that user only send one of the allowed board settings and not something random + $parts = explode(':', $key, 3); + if (count($parts) < 3) { + break; + } + $boardId = $parts[1]; + $boardConfigKey = $parts[2]; + if ($boardId === '' || $boardConfigKey === '') { + throw new BadRequestException('Board config key must be in the form board::'); + } if ($boardConfigKey === 'notify-due' && !in_array($value, [self::SETTING_BOARD_NOTIFICATION_DUE_ALL, self::SETTING_BOARD_NOTIFICATION_DUE_ASSIGNED, self::SETTING_BOARD_NOTIFICATION_DUE_OFF], true)) { throw new BadRequestException('Board notification option must be one of: off, assigned, all'); } - $this->config->setUserValue($userId, Application::APP_ID, $key, (string)$value); + if (in_array($boardConfigKey, self::SWIMLANE_CONFIG_KEYS, true)) { + // Shared board-level setting (visible to every board member). + // EDIT permission is enforced in ConfigController::setValue(), + // whose board:(\d+): match requires a numeric board id — so a + // numeric id is required here too, otherwise the permission + // check could be bypassed. + if (!ctype_digit($boardId)) { + throw new BadRequestException('Board id must be numeric'); + } + $this->validateSwimlaneValue($boardConfigKey, $value); + $this->config->setAppValue(Application::APP_ID, $key, (string)$value); + } else { + $this->config->setUserValue($userId, Application::APP_ID, $key, (string)$value); + } $result = $value; } return $result; } + /** + * Shared swimlane settings live in app config and are delivered to every + * board member on board load, so reject malformed values before storing. + */ + private function validateSwimlaneValue(string $boardConfigKey, mixed $value): void { + if ($boardConfigKey === 'swimlaneMode') { + if (!in_array($value, ['none', 'labels', 'assignees'], true)) { + throw new BadRequestException('Swimlane mode must be one of: none, labels, assignees'); + } + return; + } + + // swimlaneLabelOrder / swimlaneUserOrder: JSON array of lane ids + // (label ids, user ids or the '__none__' catch-all lane). + if (!is_string($value) || strlen($value) > 8192) { + throw new BadRequestException('Swimlane order must be a JSON array of lane ids'); + } + $order = json_decode($value, true); + if (!is_array($order) || !array_is_list($order) || count($order) > 1000) { + throw new BadRequestException('Swimlane order must be a JSON array of lane ids'); + } + foreach ($order as $laneId) { + $isIntId = is_int($laneId); + $isStringId = is_string($laneId) && $laneId !== '' && strlen($laneId) <= 64; + if (!$isIntId && !$isStringId) { + throw new BadRequestException('Swimlane order entries must be label ids, user ids or "__none__"'); + } + } + } + /** * @return string[] */ diff --git a/lib/Service/FileService.php b/lib/Service/FileService.php index 77c4953b05..df7bdbed84 100644 --- a/lib/Service/FileService.php +++ b/lib/Service/FileService.php @@ -83,7 +83,7 @@ public function extendData(Attachment $attachment) { } /** - * @return array + * @return array|null * @throws StatusException */ private function getUploadedFile() { diff --git a/lib/Service/FilesAppService.php b/lib/Service/FilesAppService.php index 1ccf47d14c..75788ecf1c 100644 --- a/lib/Service/FilesAppService.php +++ b/lib/Service/FilesAppService.php @@ -30,6 +30,7 @@ use OCP\IL10N; use OCP\IPreview; use OCP\IRequest; +use OCP\Share\Exceptions\GenericShareException; use OCP\Share\Exceptions\ShareNotFound; use OCP\Share\IManager; use OCP\Share\IShare; @@ -239,7 +240,99 @@ public function create(Attachment $attachment) { } /** - * @return array + * Ensure the file exists in the owner’s Deck attachment folder, link it to the + * Reuse file/share when already present + * + * @param Attachment $attachment + * @param string $content + * @return Attachment + * @throws BadRequestException + * @throws NoPermissionException + * @throws NotFoundException + * @throws StatusException + */ + public function createFromImport(Attachment $attachment, string $content): Attachment { + $fileName = $attachment->getData(); + $this->validateFilename($fileName); + + $ownerId = $attachment->getCreatedBy() ?: $this->userId; + if (!is_string($ownerId) || $ownerId === '') { + throw new StatusException('Could not resolve owner for imported attachment'); + } + + $userFolder = $this->rootFolder->getUserFolder($ownerId); + $attachmentFolderName = $this->configService->getAttachmentFolder($ownerId); + try { + $folder = $userFolder->get($attachmentFolderName); + } catch (NotFoundException) { + $folder = $userFolder->newFolder($attachmentFolderName); + } + if (!$folder instanceof Folder || $folder->isShared()) { + throw new NotFoundException('No target folder found'); + } + + if ($folder->nodeExists($fileName)) { + $node = $folder->get($fileName); + if (!($node instanceof File)) { + throw new StatusException('Attachment target is not a file'); + } + $target = $node; + } else { + $target = $folder->newFile($fileName); + $target->putContent($content); + } + + $cardId = $attachment->getCardId(); + foreach ($this->shareProvider->getSharesByPath($target) as $share) { + if ((int)$share->getSharedWith() === $cardId) { + $attachment->setId((int)$share->getId()); + $attachment->setData($target->getName()); + return $attachment; + } + } + + $this->permissionService->checkPermission( + $this->cardMapper, + $cardId, + Acl::PERMISSION_EDIT, + $ownerId, + true, + true + ); + // Import usually runs in background jobs without request user context. + // Set the actor explicitly so DeckShareProvider permission checks evaluate correctly. + $this->permissionService->setUserId($ownerId); + + $share = $this->shareManager->newShare(); + $share->setNode($target); + $share->setShareType(IShare::TYPE_DECK); + $share->setSharedWith((string)$cardId); + $share->setPermissions(Constants::PERMISSION_READ); + $share->setSharedBy($ownerId); + $share->setShareOwner($ownerId); + + try { + $share = $this->shareManager->createShare($share); + } catch (GenericShareException) { + $share = null; + foreach ($this->shareProvider->getSharesByPath($target) as $existing) { + if ((int)$existing->getSharedWith() === $cardId) { + $share = $existing; + break; + } + } + if ($share === null) { + throw new StatusException('Could not create deck share for imported attachment'); + } + } + + $attachment->setId((int)$share->getId()); + $attachment->setData($target->getName()); + return $attachment; + } + + /** + * @return array|null * @throws StatusException */ private function getUploadedFile() { diff --git a/lib/Service/FullTextSearchService.php b/lib/Service/FullTextSearchService.php index 2f1c6c0520..82bdda76fb 100644 --- a/lib/Service/FullTextSearchService.php +++ b/lib/Service/FullTextSearchService.php @@ -5,6 +5,7 @@ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Deck\Service; use OC\FullTextSearch\Model\DocumentAccess; @@ -28,7 +29,6 @@ */ class FullTextSearchService { - /** @var BoardMapper */ private $boardMapper; @@ -58,7 +58,6 @@ public function generateIndexDocumentFromCard(Card $card): IIndexDocument { return $document; } - /** * @param IIndexDocument $document * @@ -72,7 +71,6 @@ public function fillIndexDocument(IIndexDocument $document) { $document->setAccess($this->generateDocumentAccessFromCardId((int)$card->getId())); } - /** * @param int $cardId * @@ -87,7 +85,6 @@ public function generateDocumentAccessFromCardId(int $cardId): IDocumentAccess { return new DocumentAccess($board->getOwner()); } - /** * @param string $userId * @@ -106,7 +103,6 @@ public function getCardsFromUser(string $userId): array { return $cards; } - /** * @param int $boardId * @@ -122,7 +118,6 @@ public function getCardsFromBoard(int $boardId): array { return $cards; } - /** * @throws DoesNotExistException * @throws MultipleObjectsReturnedException @@ -135,7 +130,6 @@ public function getBoardFromCardId(int $cardId): Board { return $this->boardMapper->find($boardId); } - /** * @param int $stackId * @@ -145,7 +139,6 @@ private function getCardsFromStack(int $stackId): array { return $this->cardMapper->findAll($stackId); } - /** * @param int $boardId * @@ -155,7 +148,6 @@ private function getStacksFromBoard(int $boardId): array { return $this->stackMapper->findAll($boardId); } - /** * @param string $userId * diff --git a/lib/Service/ICustomAttachmentService.php b/lib/Service/ICustomAttachmentService.php index 316018c960..0599f2e8aa 100644 --- a/lib/Service/ICustomAttachmentService.php +++ b/lib/Service/ICustomAttachmentService.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Service; /** diff --git a/lib/Service/Importer/ABoardImportService.php b/lib/Service/Importer/ABoardImportService.php index 7726f707f4..b0b1576d6e 100644 --- a/lib/Service/Importer/ABoardImportService.php +++ b/lib/Service/Importer/ABoardImportService.php @@ -74,6 +74,8 @@ abstract public function getCardLabelAssignment(): array; */ abstract public function getComments(): array; + abstract public function importAttachments(): void; + /** @return Label[] */ abstract public function getLabels(): array; diff --git a/lib/Service/Importer/BoardImportService.php b/lib/Service/Importer/BoardImportService.php index b47f011db8..2bb17dee55 100644 --- a/lib/Service/Importer/BoardImportService.php +++ b/lib/Service/Importer/BoardImportService.php @@ -23,7 +23,8 @@ use OCA\Deck\Event\BoardImportGetAllowedEvent; use OCA\Deck\Exceptions\ConflictException; use OCA\Deck\NotFoundException; -use OCA\Deck\Service\FileService; +use OCA\Deck\Service\AttachmentService; +use OCA\Deck\Service\FilesAppService; use OCA\Deck\Service\Importer\Systems\DeckJsonService; use OCA\Deck\Service\Importer\Systems\TrelloApiService; use OCA\Deck\Service\Importer\Systems\TrelloJsonService; @@ -73,6 +74,7 @@ public function __construct( private ICommentsManager $commentsManager, private IEventDispatcher $eventDispatcher, private LoggerInterface $logger, + private AttachmentService $attachmentService, ) { $this->board = new Board(); $this->disableCommentsEvents(); @@ -125,6 +127,7 @@ public function import(): void { $this->importLabels(); $this->importStacks(); $this->importCards(); + $this->getImportSystem()->importAttachments(); $this->assignCardsToLabels(); $this->importComments(); $this->importCardAssignments(); @@ -319,11 +322,23 @@ public function assignCardsToLabels(): void { } } + /** + * Insert parsed comments by card and remap parent IDs from source to imported comments. + * + * @return void + */ public function importComments(): void { - $allComments = $this->getImportSystem()->getComments(); - foreach ($allComments as $cardId => $comments) { + $commentsByCard = $this->getImportSystem()->getComments(); + $sourceToImportedCommentId = []; + foreach ($commentsByCard as $cardId => $comments) { foreach ($comments as $commentId => $comment) { + $metaData = $comment->getMetaData() ?? []; + $sourceParentId = $comment->getParentId(); + $comment->setParentId($sourceToImportedCommentId[$sourceParentId] ?? '0'); + $this->insertComment((int)$cardId, $comment); + $sourceId = (string)($metaData['deckImportSourceId'] ?? $commentId); + $sourceToImportedCommentId[$sourceId] = $comment->getId(); $this->getImportSystem()->updateComment((int)$cardId, $commentId, $comment); } } @@ -369,20 +384,16 @@ public function importCardAssignments(): void { } public function insertAttachment(Attachment $attachment, string $content): Attachment { - $service = Server::get(FileService::class); - $folder = $service->getFolder($attachment); - - if ($folder->fileExists($attachment->getData())) { - $attachment = $this->attachmentMapper->findByData($attachment->getCardId(), $attachment->getData()); - throw new ConflictException('File already exists.', $attachment); - } - - $target = $folder->newFile($attachment->getData()); - $target->putContent($content); + $attachment->setType('file'); + $attachment->setLastModified(time()); + $attachment->setCreatedAt(time()); - $attachment = $this->attachmentMapper->insert($attachment); + /** @var FilesAppService $fileService */ + $fileService = $this->attachmentService->getService('file'); + $fileService->createFromImport($attachment, $content); + $fileService->extendData($attachment); + $this->attachmentService->syncAttachmentCreateSideEffects($attachment); - $service->extendData($attachment); return $attachment; } diff --git a/lib/Service/Importer/Systems/DeckJsonService.php b/lib/Service/Importer/Systems/DeckJsonService.php index b378cae8da..99dcb36bac 100644 --- a/lib/Service/Importer/Systems/DeckJsonService.php +++ b/lib/Service/Importer/Systems/DeckJsonService.php @@ -11,12 +11,14 @@ use OCA\Deck\BadRequestException; use OCA\Deck\Db\Acl; use OCA\Deck\Db\Assignment; +use OCA\Deck\Db\Attachment; use OCA\Deck\Db\Board; use OCA\Deck\Db\Card; use OCA\Deck\Db\Label; use OCA\Deck\Db\Stack; use OCA\Deck\Service\Importer\ABoardImportService; use OCP\Comments\IComment; +use OCP\Comments\ICommentsManager; use OCP\IUser; use OCP\IUserManager; @@ -94,6 +96,9 @@ public function mapOwner(string $uid): string { public function getCardAssignments(): array { $assignments = []; foreach ($this->tmpCards as $sourceCard) { + if (!property_exists($sourceCard, 'assignedUsers') || !is_iterable($sourceCard->assignedUsers)) { + continue; + } foreach ($sourceCard->assignedUsers as $idMember) { $assignment = new Assignment(); $assignment->setCardId($this->cards[$sourceCard->id]->getId()); @@ -105,24 +110,105 @@ public function getCardAssignments(): array { return $assignments; } + /** + * Parse comments from source cards and return them as an array of comments by card ID. + * + */ public function getComments(): array { $comments = []; foreach ($this->tmpCards as $sourceCard) { - if (!property_exists($sourceCard, 'comments')) { + if (!property_exists($sourceCard, 'comments') || !isset($this->cards[$sourceCard->id])) { + continue; + } + $targetCardId = $this->cards[$sourceCard->id]->getId(); + if (!is_iterable($sourceCard->comments)) { continue; } - $commentsOriginal = $sourceCard->comments; - foreach ($commentsOriginal as $commentOriginal) { + foreach ($sourceCard->comments as $commentOriginal) { + $commentId = (string)($commentOriginal->id ?? ''); + if ($commentId === '') { + continue; + } + $parentId = (string)($commentOriginal->parentId ?? '0'); + [$actorType, $actorId] = $this->resolveCommentActor($commentOriginal); $comment = new Comment(); - $comment->setActor($commentOriginal->actorType, $commentOriginal->actorId) - ->setMessage($commentOriginal->message)->setCreationDateTime(\DateTime::createFromFormat('Y-m-d\TH:i:sP', $commentOriginal->creationDateTime)); - $comments[$this->cards[$sourceCard->id]->getId()][$commentOriginal->id] = $comment; + $comment->setActor($actorType, $actorId) + ->setParentId($parentId) + ->setMessage($commentOriginal->message) + ->setCreationDateTime(\DateTime::createFromFormat('Y-m-d\TH:i:sP', $commentOriginal->creationDateTime)); + $comment->setMetaData([ + 'deckImportSourceId' => $commentId, + 'deckImportParentId' => $parentId, + ]); + $comments[$targetCardId][$commentId] = $comment; } } /** @var array> */ return $comments; } + public function importAttachments(): void { + foreach ($this->tmpCards as $sourceCard) { + $this->importAttachmentsForCard($sourceCard); + } + } + + /** + * @return array{0: string, 1: string} + */ + private function resolveCommentActor(object $commentOriginal): array { + $actorType = (string)($commentOriginal->actorType ?? 'users'); + $actorId = $commentOriginal->actorId ?? null; + + if (!is_string($actorId) || $actorId === '') { + return [ICommentsManager::DELETED_USER, ICommentsManager::DELETED_USER]; + } + + if ($actorType === 'users' && !$this->userManager->userExists($actorId)) { + return [ICommentsManager::DELETED_USER, ICommentsManager::DELETED_USER]; + } + + return [$actorType, $actorId]; + } + + private function importAttachmentsForCard(object $sourceCard): void { + if (!property_exists($sourceCard, 'attachments') || !isset($this->cards[$sourceCard->id])) { + return; + } + + $targetCardId = $this->cards[$sourceCard->id]->getId(); + foreach ($sourceCard->attachments as $sourceAttachment) { + if (($sourceAttachment->type ?? null) !== 'file') { + continue; + } + if (!isset($sourceAttachment->data) || !isset($sourceAttachment->contentBase64)) { + continue; + } + + $attachment = new Attachment(); + $attachment->setCardId($targetCardId); + $attachment->setType('file'); + $attachment->setData((string)$sourceAttachment->data); + $attachment->setCreatedBy( + $this->mapMember($sourceAttachment->createdBy ?? $this->getImportService()->getData()->owner) + ?? $this->mapOwner($this->getImportService()->getData()->owner) + ); + $attachment->setCreatedAt((int)($sourceAttachment->createdAt ?? time())); + $attachment->setLastModified((int)($sourceAttachment->lastModified ?? time())); + + $content = base64_decode((string)$sourceAttachment->contentBase64, true); + if ($content === false) { + continue; + } + + try { + $this->getImportService()->insertAttachment($attachment, $content); + } catch (\Throwable $e) { + continue; + } + } + } + public function getCardLabelAssignment(): array { $cardsLabels = []; foreach ($this->tmpCards as $sourceCard) { @@ -184,7 +270,7 @@ public function getStacks(): array { if (isset($source->cards)) { foreach ($source->cards as $card) { - $card->stackId = $index; + $card->stackId = $source->id; $this->tmpCards[] = $card; } } diff --git a/lib/Service/Importer/Systems/TrelloJsonService.php b/lib/Service/Importer/Systems/TrelloJsonService.php index 142ad242ff..88cd5e930a 100644 --- a/lib/Service/Importer/Systems/TrelloJsonService.php +++ b/lib/Service/Importer/Systems/TrelloJsonService.php @@ -163,6 +163,9 @@ function (\stdClass $a) use ($trelloCard) { return $comments; } + public function importAttachments(): void { + } + private function sortComments(array $comments): array { $comparison = function (\stdClass $a, \stdClass $b): int { if ($a->date === $b->date) { diff --git a/lib/Service/PermissionService.php b/lib/Service/PermissionService.php index 4de5327367..2f370fa457 100644 --- a/lib/Service/PermissionService.php +++ b/lib/Service/PermissionService.php @@ -93,7 +93,6 @@ public function getPermissions(int $boardId, ?string $userId = null, bool $allow return $permissions; } - try { $owner = $this->userIsBoardOwner($boardId, $userId, $allowDeleted); $acls = $board->getDeletedAt() === 0 ? $this->aclMapper->findAll($boardId) : []; @@ -203,7 +202,6 @@ private function getBoard(int $boardId, bool $allowDeleted = false): Board { return $this->boardCache[(string)$boardId]; } - public function externalUserCan(array $acls, int $permission, string $shareToken):bool { $this->configService->ensureFederationEnabled(); foreach ($acls as $acl) { @@ -305,7 +303,7 @@ public function findUsers($boardId, $refresh = false) { continue; } foreach ($group->getUsers() as $user) { - $users[(string)$user->getUID()] = new User($user->getUID(), $this->userManager); + $users[$user->getUID()] = new User($user->getUID(), $this->userManager); } } diff --git a/lib/Service/SearchService.php b/lib/Service/SearchService.php index 383402abc9..a01a6cfb0d 100644 --- a/lib/Service/SearchService.php +++ b/lib/Service/SearchService.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Service; use OCA\Deck\Db\Board; diff --git a/lib/Service/ShareFileAttachmentExportService.php b/lib/Service/ShareFileAttachmentExportService.php new file mode 100644 index 0000000000..2c68a39da1 --- /dev/null +++ b/lib/Service/ShareFileAttachmentExportService.php @@ -0,0 +1,75 @@ +> + */ + public function exportCardAttachments(int $cardId, string $fallbackUserId): array { + $formattedAttachments = []; + foreach ($this->getShareFileAttachments($cardId) as $share) { + $shareAttachment = $this->serializeShareAttachment($share, $fallbackUserId); + if ($shareAttachment !== null) { + $formattedAttachments[] = $shareAttachment; + } + } + + return $formattedAttachments; + } + + /** + * @return array> + */ + private function getShareFileAttachments(int $cardId): array { + $qb = $this->dbConnection->getQueryBuilder(); + $qb->select('id', 'uid_owner', 'uid_initiator', 'file_source', 'stime') + ->from('share') + ->where($qb->expr()->eq('share_type', $qb->createNamedParameter(12))) + ->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter((string)$cardId))) + ->andWhere($qb->expr()->eq('item_type', $qb->createNamedParameter('file'))); + return $qb->executeQuery()->fetchAllAssociative(); + } + + /** + * @param array $share + * + * @return array|null + */ + private function serializeShareAttachment(array $share, string $fallbackUserId): ?array { + try { + $nodes = $this->rootFolder->getById((int)$share['file_source']); + $node = $nodes[0] ?? null; + if ($node === null || !method_exists($node, 'getContent') || !method_exists($node, 'getName')) { + return null; + } + + return [ + 'type' => 'file', + 'data' => (string)$node->getName(), + 'createdBy' => (string)($share['uid_initiator'] ?? $share['uid_owner'] ?? $fallbackUserId), + 'createdAt' => (int)($share['stime'] ?? time()), + 'lastModified' => method_exists($node, 'getMTime') ? (int)$node->getMTime() : (int)($share['stime'] ?? time()), + 'contentBase64' => base64_encode($node->getContent()), + ]; + } catch (\Throwable $e) { + return null; + } + } +} diff --git a/lib/Service/StackService.php b/lib/Service/StackService.php index 9effcd3885..16e8d8b415 100644 --- a/lib/Service/StackService.php +++ b/lib/Service/StackService.php @@ -55,7 +55,6 @@ private function enrichStacksWithCards(array $stacks, int $since = -1): void { continue; } - foreach ($stacks as $stack) { if ($stack->getId() === $stackId) { $stack->setCards($this->cardService->enrichCards($cards)); @@ -307,6 +306,11 @@ public function reorder(int $id, int $order): array { */ public function setDoneStack(int $stackId, int $boardId, bool $isDone): void { $this->permissionService->checkPermission($this->stackMapper, $stackId, Acl::PERMISSION_MANAGE); + $stack = $this->stackMapper->find($stackId); + + if ($stack->getBoardId() !== $boardId) { + throw new BadRequestException('Stack does not belong to the specified board.'); + } if ($this->boardService->isArchived($this->stackMapper, $stackId)) { throw new NoPermissionException('Operation not allowed. This board is archived.'); diff --git a/lib/Sharing/DeckShareProvider.php b/lib/Sharing/DeckShareProvider.php index 84c121c0a1..408f39d4da 100644 --- a/lib/Sharing/DeckShareProvider.php +++ b/lib/Sharing/DeckShareProvider.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Sharing; use OC\Files\Cache\Cache; diff --git a/lib/Sharing/Listener.php b/lib/Sharing/Listener.php index b2200424c6..be58e4a145 100644 --- a/lib/Sharing/Listener.php +++ b/lib/Sharing/Listener.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Sharing; use OC\Files\Filesystem; diff --git a/lib/Sharing/ShareAPIHelper.php b/lib/Sharing/ShareAPIHelper.php index 6ed1f04a3b..11b501490c 100644 --- a/lib/Sharing/ShareAPIHelper.php +++ b/lib/Sharing/ShareAPIHelper.php @@ -7,7 +7,6 @@ declare(strict_types=1); - namespace OCA\Deck\Sharing; use OCA\Deck\Db\Acl; diff --git a/lib/Teams/DeckTeamResourceProvider.php b/lib/Teams/DeckTeamResourceProvider.php index b8cece026a..40cef2343c 100644 --- a/lib/Teams/DeckTeamResourceProvider.php +++ b/lib/Teams/DeckTeamResourceProvider.php @@ -23,7 +23,6 @@ public function __construct( ) { } - public function getId(): string { return Application::APP_ID; } diff --git a/lib/UserMigration/DeckMigrator.php b/lib/UserMigration/DeckMigrator.php new file mode 100644 index 0000000000..7b4caf2545 --- /dev/null +++ b/lib/UserMigration/DeckMigrator.php @@ -0,0 +1,271 @@ +getUID(); + $this->boardService->setUserId($uid); + $this->permissionService->setUserId($uid); + + try { + $exportData = $this->buildExportData($uid); + $jsonData = json_encode($exportData, self::JSON_OPTIONS); + + $exportDestination->addFileContents( + self::FILE_BOARDS, + $jsonData + ); + } catch (\Throwable $e) { + throw new DeckMigratorException($e->getMessage(), 0, $e); + } + } + + /** + * {@inheritDoc} + */ + public function import( + IUser $user, + IImportSource $importSource, + OutputInterface $output, + ): void { + if (!$this->shouldImport($importSource)) { + return; + } + + $this->permissionService->setUserId($user->getUID()); + if (!$this->permissionService->canCreate()) { + $output->writeln('Deck import failed: user is not allowed to create boards.'); + return; + } + + try { + $data = $this->readImportData($importSource); + if (empty($data['boards'])) { + return; + } + $this->configureImportService($user->getUID(), $data); + $this->boardImportService->import(); + } catch (\Throwable $e) { + throw new DeckMigratorException($e->getMessage(), 0, $e); + } + } + + private function buildExportData(string $uid): array { + $boards = $this->boardMapper->findAllByUser($uid); + $exportData = ['boards' => []]; + + foreach ($boards as $board) { + // skip if the board is deleted (to align with the export service) + if ($board->getDeletedAt() > 0) { + continue; + } + $boardWithStacksAndCards = $this->boardService->export($board->getId()); + $this->appendArchivedCards($boardWithStacksAndCards); + $exportData['boards'][] = $this->serializeBoard($boardWithStacksAndCards, $uid); + } + + return $exportData; + } + + private function serializeBoard(object $board, string $uid): array { + $boardData = $board->jsonSerialize(); + $serializedStacks = []; + foreach ($board->getStacks() ?? [] as $stack) { + $stackData = $stack->jsonSerialize(); + $serializedCards = []; + foreach ($stack->getCards() ?? [] as $card) { + $serializedCards[] = $this->serializeCard($card, $uid); + } + $stackData['cards'] = $serializedCards; + $serializedStacks[] = $stackData; + } + $boardData['stacks'] = $serializedStacks; + + return $boardData; + } + + private function appendArchivedCards(object $board): void { + $stacks = $board->getStacks() ?? []; + if (count($stacks) === 0) { + return; + } + + $stackIds = array_map(static fn ($stack) => $stack->getId(), $stacks); + $archivedCardsByStack = $this->cardMapper->findAllArchivedForStacks($stackIds); + + foreach ($stacks as $stack) { + $activeCards = $stack->getCards() ?? []; + $archivedCards = $archivedCardsByStack[$stack->getId()] ?? []; + if (count($archivedCards) === 0) { + continue; + } + $stack->setCards(array_merge($activeCards, $archivedCards)); + } + } + + private function serializeCard(object $card, string $uid): array { + $cardId = $card->getId(); + + $cardData = $card->jsonSerialize(); + $cardData['comments'] = (isset($cardData['comments']) && is_array($cardData['comments']) && $cardData['comments'] !== []) + ? $cardData['comments'] + : $this->serializeCardComments($cardId); + $cardData['attachments'] = (isset($cardData['attachments']) && is_array($cardData['attachments']) && $cardData['attachments'] !== []) + ? $cardData['attachments'] + : $this->shareFileAttachmentExportService->exportCardAttachments($cardId, $uid); + + return $cardData; + } + + private function serializeCardComments(int $cardId): array { + $comments = iterator_to_array($this->commentsManager->getForObject( + Application::COMMENT_ENTITY_TYPE, + (string)$cardId + )); + usort($comments, static function ($firstComment, $secondComment): int { + return ((int)$firstComment->getId()) <=> ((int)$secondComment->getId()); + }); + + $formattedComments = []; + foreach ($comments as $comment) { + $formattedComments[] = [ + 'id' => $comment->getId(), + 'parentId' => $comment->getParentId(), + 'actorType' => $comment->getActorType(), + 'actorId' => $comment->getActorId(), + 'message' => $comment->getMessage(), + 'creationDateTime' => $comment->getCreationDateTime()->format(\DateTime::ATOM), + 'objectType' => $comment->getObjectType(), + 'objectId' => $comment->getObjectId(), + 'verb' => $comment->getVerb(), + ]; + } + + return $formattedComments; + } + + private function shouldImport(IImportSource $importSource): bool { + return $importSource->getMigratorVersion($this->getId()) !== null; + } + + private function readImportData(IImportSource $importSource): array { + $fileContents = $importSource->getFileContents(self::FILE_BOARDS); + $data = json_decode( + $fileContents, + true, + self::JSON_DEPTH, + self::JSON_OPTIONS + ); + + if ($data === null) { + throw new \Exception('Failed to parse JSON: ' . json_last_error_msg()); + } + + return $data; + } + + private function configureImportService(string $userId, array $data): void { + $this->boardImportService->setSystem('DeckJson'); + $this->boardImportService->setConfigInstance((object)[ + 'owner' => $userId, + 'uidRelation' => new \stdClass(), + ]); + $this->boardImportService->setData(json_decode( + json_encode(['boards' => $data['boards']]), + false, + self::JSON_DEPTH, + self::JSON_OPTIONS + )); + } + + /** + * {@inheritDoc} + */ + public function getId(): string { + return 'deck'; + } + + /** + * {@inheritDoc} + */ + public function getDisplayName(): string { + return $this->l10n->t('Deck'); + } + + /** + * {@inheritDoc} + */ + public function getDescription(): string { + return $this->l10n->t('All boards owned by you including stacks, cards, labels, assignments, and comments'); + } +} diff --git a/lib/UserMigration/DeckMigratorException.php b/lib/UserMigration/DeckMigratorException.php new file mode 100644 index 0000000000..1cc1c7d6a4 --- /dev/null +++ b/lib/UserMigration/DeckMigratorException.php @@ -0,0 +1,15 @@ +=6.9.0" - } + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-8.0.0.tgz", + "integrity": "sha512-sL6cvO2IfkSu/iU+zs2S/w01B7A8V7suXSIKEN4hPFFdZoiPGxrj5pAG0lCaqLWiEIrjKzdznIWuaLcxPR53qw==", + "license": "MIT" }, "node_modules/@babel/template": { "version": "7.28.6", @@ -2075,28 +2073,28 @@ } }, "node_modules/@cacheable/memory": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.8.tgz", - "integrity": "sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.2.0.tgz", + "integrity": "sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@cacheable/utils": "^2.4.0", + "@cacheable/utils": "^2.5.0", "@keyv/bigmap": "^1.3.1", "hookified": "^1.15.1", "keyv": "^5.6.0" } }, "node_modules/@cacheable/utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.4.0.tgz", - "integrity": "sha512-PeMMsqjVq+bF0WBsxFBxr/WozBJiZKY0rUojuaCoIaKnEl3Ju1wfEwS+SV1DU/cSe8fqHIPiYJFif8T3MVt4cQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.5.0.tgz", + "integrity": "sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "hashery": "^1.5.0", + "hashery": "^1.5.1", "keyv": "^5.6.0" } }, @@ -2111,9 +2109,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", + "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", "dev": true, "funding": [ { @@ -2320,9 +2318,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.5.tgz", - "integrity": "sha512-nGsF/4C7uzUj+Nj/4J+Zt0bYQ6bz33Phz8Lb2N80Mti1HjGclTJdXZ+9APC4kLvONbjxN1zfvYNd8FEcbBK/MQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", "cpu": [ "ppc64" ], @@ -2337,9 +2335,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.5.tgz", - "integrity": "sha512-Cv781jd0Rfj/paoNrul1/r4G0HLvuFKYh7C9uHZ2Pl8YXstzvCyyeWENTFR9qFnRzNMCjXmsulZuvosDg10Mog==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", "cpu": [ "arm" ], @@ -2354,9 +2352,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.5.tgz", - "integrity": "sha512-Oeghq+XFgh1pUGd1YKs4DDoxzxkoUkvko+T/IVKwlghKLvvjbGFB3ek8VEDBmNvqhwuL0CQS3cExdzpmUyIrgA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", "cpu": [ "arm64" ], @@ -2371,9 +2369,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.5.tgz", - "integrity": "sha512-nQD7lspbzerlmtNOxYMFAGmhxgzn8Z7m9jgFkh6kpkjsAhZee1w8tJW3ZlW+N9iRePz0oPUDrYrXidCPSImD0Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", "cpu": [ "x64" ], @@ -2388,9 +2386,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.5.tgz", - "integrity": "sha512-I+Ya/MgC6rr8oRWGRDF3BXDfP8K1BVUggHqN6VI2lUZLdDi1IM1v2cy0e3lCPbP+pVcK3Tv8cgUhHse1kaNZZw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", "cpu": [ "arm64" ], @@ -2405,9 +2403,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.5.tgz", - "integrity": "sha512-MCjQUtC8wWJn/pIPM7vQaO69BFgwPD1jriEdqwTCKzWjGgkMbcg+M5HzrOhPhuYe1AJjXlHmD142KQf+jnYj8A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", "cpu": [ "x64" ], @@ -2422,9 +2420,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.5.tgz", - "integrity": "sha512-X6xVS+goSH0UelYXnuf4GHLwpOdc8rgK/zai+dKzBMnncw7BTQIwquOodE7EKvY2UVUetSqyAfyZC1D+oqLQtg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", "cpu": [ "arm64" ], @@ -2439,9 +2437,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.5.tgz", - "integrity": "sha512-233X1FGo3a8x1ekLB6XT69LfZ83vqz+9z3TSEQCTYfMNY880A97nr81KbPcAMl9rmOFp11wO0dP+eB18KU/Ucg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", "cpu": [ "x64" ], @@ -2456,9 +2454,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.5.tgz", - "integrity": "sha512-0wkVrYHG4sdCCN/bcwQ7yYMXACkaHc3UFeaEOwSVW6e5RycMageYAFv+JS2bKLwHyeKVUvtoVH+5/RHq0fgeFw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", "cpu": [ "arm" ], @@ -2473,9 +2471,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.5.tgz", - "integrity": "sha512-euKkilsNOv7x/M1NKsx5znyprbpsRFIzTV6lWziqJch7yWYayfLtZzDxDTl+LSQDJYAjd9TVb/Kt5UKIrj2e4A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", "cpu": [ "arm64" ], @@ -2490,9 +2488,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.5.tgz", - "integrity": "sha512-hVRQX4+P3MS36NxOy24v/Cdsimy/5HYePw+tmPqnNN1fxV0bPrFWR6TMqwXPwoTM2VzbkA+4lbHWUKDd5ZDA/w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", "cpu": [ "ia32" ], @@ -2507,9 +2505,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.5.tgz", - "integrity": "sha512-mKqqRuOPALI8nDzhOBmIS0INvZOOFGGg5n1osGIXAx8oersceEbKd4t1ACNTHM3sJBXGFAlEgqM+svzjPot+ZQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", "cpu": [ "loong64" ], @@ -2524,9 +2522,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.5.tgz", - "integrity": "sha512-EE/QXH9IyaAj1qeuIV5+/GZkBTipgGO782Ff7Um3vPS9cvLhJJeATy4Ggxikz2inZ46KByamMn6GqtqyVjhenA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", "cpu": [ "mips64el" ], @@ -2541,9 +2539,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.5.tgz", - "integrity": "sha512-0V2iF1RGxBf1b7/BjurA5jfkl7PtySjom1r6xOK2q9KWw/XCpAdtB6KNMO+9xx69yYfSCRR9FE0TyKfHA2eQMw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", "cpu": [ "ppc64" ], @@ -2558,9 +2556,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.5.tgz", - "integrity": "sha512-rYxThBx6G9HN6tFNuvB/vykeLi4VDsm5hE5pVwzqbAjZEARQrWu3noZSfbEnPZ/CRXP3271GyFk/49up2W190g==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", "cpu": [ "riscv64" ], @@ -2575,9 +2573,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.5.tgz", - "integrity": "sha512-uEP2q/4qgd8goEUc4QIdU/1P2NmEtZ/zX5u3OpLlCGhJIuBIv0s0wr7TB2nBrd3/A5XIdEkkS5ZLF0ULuvaaYQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", "cpu": [ "s390x" ], @@ -2592,9 +2590,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.5.tgz", - "integrity": "sha512-+Gq47Wqq6PLOOZuBzVSII2//9yyHNKZLuwfzCemqexqOQCSz0zy0O26kIzyp9EMNMK+nZ0tFHBZrCeVUuMs/ew==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", "cpu": [ "x64" ], @@ -2609,9 +2607,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.5.tgz", - "integrity": "sha512-3F/5EG8VHfN/I+W5cO1/SV2H9Q/5r7vcHabMnBqhHK2lTWOh3F8vixNzo8lqxrlmBtZVFpW8pmITHnq54+Tq4g==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", "cpu": [ "arm64" ], @@ -2626,9 +2624,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.5.tgz", - "integrity": "sha512-28t+Sj3CPN8vkMOlZotOmDgilQwVvxWZl7b8rxpn73Tt/gCnvrHxQUMng4uu3itdFvrtba/1nHejvxqz8xgEMA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", "cpu": [ "x64" ], @@ -2643,9 +2641,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.5.tgz", - "integrity": "sha512-Doz/hKtiuVAi9hMsBMpwBANhIZc8l238U2Onko3t2xUp8xtM0ZKdDYHMnm/qPFVthY8KtxkXaocwmMh6VolzMA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", "cpu": [ "arm64" ], @@ -2660,9 +2658,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.5.tgz", - "integrity": "sha512-WfGVaa1oz5A7+ZFPkERIbIhKT4olvGl1tyzTRaB5yoZRLqC0KwaO95FeZtOdQj/oKkjW57KcVF944m62/0GYtA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", "cpu": [ "x64" ], @@ -2677,9 +2675,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.5.tgz", - "integrity": "sha512-Xh+VRuh6OMh3uJ0JkCjI57l+DVe7VRGBYymen8rFPnTVgATBwA6nmToxM2OwTlSvrnWpPKkrQUj93+K9huYC6A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", "cpu": [ "arm64" ], @@ -2694,9 +2692,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.5.tgz", - "integrity": "sha512-aC1gpJkkaUADHuAdQfuVTnqVUTLqqUNhAvEwHwVWcnVVZvNlDPGA0UveZsfXJJ9T6k9Po4eHi3c02gbdwO3g6w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", "cpu": [ "x64" ], @@ -2711,9 +2709,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.5.tgz", - "integrity": "sha512-0UNx2aavV0fk6UpZcwXFLztA2r/k9jTUa7OW7SAea1VYUhkug99MW1uZeXEnPn5+cHOd0n8myQay6TlFnBR07w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", "cpu": [ "arm64" ], @@ -2728,9 +2726,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.5.tgz", - "integrity": "sha512-5nlJ3AeJWCTSzR7AEqVjT/faWyqKU86kCi1lLmxVqmNR+j4HrYdns+eTGjS/vmrzCIe8inGQckUadvS0+JkKdQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", "cpu": [ "ia32" ], @@ -2745,9 +2743,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.5.tgz", - "integrity": "sha512-PWypQR+d4FLfkhBIV+/kHsUELAnMpx1bRvvsn3p+/sAERbnCzFrtDRG2Xw5n+2zPxBK2+iaP+vetsRl4Ti7WgA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", "cpu": [ "x64" ], @@ -4370,40 +4368,6 @@ } } }, - "node_modules/@nextcloud/dialogs/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" - }, - "node_modules/@nextcloud/dialogs/node_modules/p-queue": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.0.1.tgz", - "integrity": "sha512-RhBdVhSwJb7Ocn3e8ULk4NMwBEuOxe+1zcgphUy9c2e5aR/xbEsdVXxHJ3lynw6Qiqu7OINEyHlZkiblEpaq7w==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^5.0.1", - "p-timeout": "^7.0.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@nextcloud/dialogs/node_modules/p-timeout": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", - "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", - "license": "MIT", - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@nextcloud/eslint-config": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/@nextcloud/eslint-config/-/eslint-config-8.4.2.tgz", @@ -4902,12 +4866,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/@nextcloud/password-confirmation/node_modules/eventemitter3": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", - "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", - "license": "MIT" - }, "node_modules/@nextcloud/password-confirmation/node_modules/floating-vue": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/floating-vue/-/floating-vue-5.2.2.tgz", @@ -4945,34 +4903,6 @@ "tabbable": "^6.4.0" } }, - "node_modules/@nextcloud/password-confirmation/node_modules/p-queue": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.1.0.tgz", - "integrity": "sha512-O/ZPaXuQV29uSLbxWBGGZO1mCQXV2BLIwUr59JUU9SoH76mnYvtms7aafH/isNSNGwuEfP6W/4xD0/TJXxrizw==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^5.0.1", - "p-timeout": "^7.0.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@nextcloud/password-confirmation/node_modules/p-timeout": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", - "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", - "license": "MIT", - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@nextcloud/password-confirmation/node_modules/perfect-debounce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", @@ -5281,9 +5211,9 @@ } }, "node_modules/@nextcloud/stylelint-config": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@nextcloud/stylelint-config/-/stylelint-config-3.2.1.tgz", - "integrity": "sha512-fRWuN92ydC52+CGURBmbgkaAFDKOq9pmx/vsujr8cRKlGbAhLH+gyxzSpQUc37ZKKNaBDuUvcGzrqH/YipKbGA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@nextcloud/stylelint-config/-/stylelint-config-3.2.2.tgz", + "integrity": "sha512-5rr77fGK+zoa8yN+8zR43XbqyuN/yB2wSAy4vKE2F+hgAeOhpUAyChV+pfySDbP20t4s22DHgn7BDiZKsbNE3Q==", "dev": true, "license": "AGPL-3.0-or-later", "dependencies": { @@ -5293,23 +5223,11 @@ "node": "^20.19 || ^22 || ^24" }, "peerDependencies": { - "stylelint": "^17.1.1", - "stylelint-config-recommended-scss": "^17.0.0", + "stylelint": "^17.9.1", + "stylelint-config-recommended-scss": "^17.0.1", "stylelint-config-recommended-vue": "^1.6.1" } }, - "node_modules/@nextcloud/timezones": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nextcloud/timezones/-/timezones-0.2.0.tgz", - "integrity": "sha512-1mwQ+asTFOgv9rxPoAMEbDF8JfnenIa2EGNS+8MATCyi6WXxYh0Lhkaq1d3l2+xNbUPHgMnk4cRYsvIo319lkA==", - "license": "AGPL-3.0-or-later", - "dependencies": { - "ical.js": "^2.1.0" - }, - "engines": { - "node": "^20 || ^22" - } - }, "node_modules/@nextcloud/typings": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/@nextcloud/typings/-/typings-1.10.0.tgz", @@ -5323,37 +5241,37 @@ } }, "node_modules/@nextcloud/vue": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-8.35.0.tgz", - "integrity": "sha512-qPm0aaPbnt7n694WQ97T+EMQTxCa3+RPKDzsBVD6vb01N4uGYwjvrEEOLVmBMlEWqkFy+ks3tpeOjkDPOoJbNA==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-8.39.0.tgz", + "integrity": "sha512-TJgrFeVr82CN8ng4y+IxMBb7mKlww7Fot22z33+Q0zKgWvi5EoQ0vYescA3Drl8cIRSGktUdFm3xO2gAqvnwoA==", "license": "AGPL-3.0-or-later", "dependencies": { - "@floating-ui/dom": "^1.7.4", + "@floating-ui/dom": "^1.7.6", "@linusborg/vue-simple-portal": "^0.1.5", - "@nextcloud/auth": "^2.5.3", + "@nextcloud/auth": "^2.6.0", "@nextcloud/axios": "^2.5.2", "@nextcloud/browser-storage": "^0.5.0", "@nextcloud/capabilities": "^1.2.1", "@nextcloud/event-bus": "^3.3.3", "@nextcloud/initial-state": "^2.2.0", "@nextcloud/l10n": "^3.4.1", - "@nextcloud/logger": "^3.0.2", + "@nextcloud/logger": "^3.0.3", "@nextcloud/router": "^3.1.0", - "@nextcloud/sharing": "^0.3.0", - "@nextcloud/timezones": "^0.2.0", + "@nextcloud/sharing": "^0.4.0", "@nextcloud/vue-select": "^3.26.0", "@vueuse/components": "^11.0.0", "@vueuse/core": "^11.0.0", "blurhash": "^2.0.5", "clone": "^2.1.2", "debounce": "^2.2.0", - "dompurify": "^3.3.0", + "dompurify": "^3.4.2", "emoji-mart-vue-fast": "^15.0.5", "escape-html": "^1.0.3", "floating-vue": "^1.0.0-beta.19", - "focus-trap": "^7.6.6", + "focus-trap": "^7.8.0", "linkify-string": "^4.3.2", "md5": "^2.3.0", + "mdast-util-to-string": "^4.0.0", "p-queue": "^8.1.1", "rehype-external-links": "^3.0.0", "rehype-highlight": "^7.0.2", @@ -5365,11 +5283,11 @@ "splitpanes": "^2.4.1", "string-length": "^5.0.1", "striptags": "^3.2.0", - "tabbable": "^6.3.0", + "tabbable": "^6.4.0", "tributejs": "^5.1.3", "unified": "^11.0.1", "unist-builder": "^4.0.0", - "unist-util-visit": "^5.0.0", + "unist-util-visit-parents": "^6.0.2", "vue": "^2.7.16", "vue-color": "^2.8.1", "vue-frag": "^1.4.3", @@ -5393,22 +5311,47 @@ } }, "node_modules/@nextcloud/vue/node_modules/@floating-ui/core": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", - "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.10" + "@floating-ui/utils": "^0.2.11" } }, "node_modules/@nextcloud/vue/node_modules/@floating-ui/dom": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", - "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.7.3", - "@floating-ui/utils": "^0.2.10" + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@nextcloud/vue/node_modules/@nextcloud/sharing": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@nextcloud/sharing/-/sharing-0.4.0.tgz", + "integrity": "sha512-1hUNyc7uJdBpnimOnEshJjEtAPAjzDYVl6qmWqF5ZxoN9wOvbExw0QjX3xFIbHbX2dmvbRNLBj0RzLzipmZyeg==", + "license": "GPL-3.0-or-later", + "dependencies": { + "@nextcloud/initial-state": "^3.0.0", + "is-svg": "^6.1.0" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + }, + "optionalDependencies": { + "@nextcloud/files": "^3.12.2 || ^4.0.0" + } + }, + "node_modules/@nextcloud/vue/node_modules/@nextcloud/sharing/node_modules/@nextcloud/initial-state": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@nextcloud/initial-state/-/initial-state-3.0.0.tgz", + "integrity": "sha512-cV+HBdkQJGm8FxkBI5rFT/FbMNWNBvpbj6OPrg4Ae4YOOsQ15CL8InPOAw1t4XkOkQK2NEdUGQLVUz/19wXbdQ==", + "license": "GPL-3.0-or-later", + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" } }, "node_modules/@nextcloud/vue/node_modules/@types/unist": { @@ -5435,6 +5378,40 @@ "node": ">=12.20" } }, + "node_modules/@nextcloud/vue/node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/@nextcloud/vue/node_modules/p-queue": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.1.tgz", + "integrity": "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@nextcloud/vue/node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@nextcloud/vue/node_modules/string-length": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", @@ -5568,6 +5545,20 @@ "semver": "bin/semver.js" } }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -5906,6 +5897,187 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/@peculiar/asn1-cms": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.7.0.tgz", + "integrity": "sha512-hew63shtzzvBcSHbhm+cyAmKe6AIfinT9hzEqSPjDC6opTTMKmTkQ0gHuN2KsWlvqiKw1S/fS94fhag/FJkioQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "@peculiar/asn1-x509-attr": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-csr": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.7.0.tgz", + "integrity": "sha512-VVsAyGqErT9D1SY4aEqozThXMVI+ssVRiv2DDeYuvpBKLIgZ3hYs3Ay3u/VSoKq6ESFi9cf6rf3IOOzfwh7oMA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-ecc": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.7.0.tgz", + "integrity": "sha512-n7KEs/Q/wrB415cxy4fHOBhegp4NdJ15fkJPwcB/3/8iNBQC2L/N7SChJPKDJPZGYH0jD4Tg4/0vnHmwghnbKw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pfx": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.7.0.tgz", + "integrity": "sha512-V/nrlQVmhg7lYAsM7E13UDL5erAwFv6kCIVFqNaMIHSVi7dngcT839JkRTkQBqznMG98l2XjxYk74ZztAohZzA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@peculiar/asn1-cms": "^2.7.0", + "@peculiar/asn1-pkcs8": "^2.7.0", + "@peculiar/asn1-rsa": "^2.7.0", + "@peculiar/asn1-schema": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs8": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.7.0.tgz", + "integrity": "sha512-9GTl1nE8Mx1kTZ+7QyYatDyKsm34QcWRBFkY1iPvWC3X4Dona5s/tlLiQsx5WzVdZqiMBZNYT0buyw4/vbhnjw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs9": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.7.0.tgz", + "integrity": "sha512-Bh7m+OuIaSEllPQcSd9OSp93F4ROWH7sbITWV8MI+8dwsjE5111/87VxiWVvYFKyww3vp39geLv9ENqhwWHcew==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@peculiar/asn1-cms": "^2.7.0", + "@peculiar/asn1-pfx": "^2.7.0", + "@peculiar/asn1-pkcs8": "^2.7.0", + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "@peculiar/asn1-x509-attr": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.7.0.tgz", + "integrity": "sha512-/qvENQrXyTZURjMqSeofHul0JJt2sNSzSwk36pl2olkHbaioMQgrASDZAlHXl0xUlnVbHj0uGgOrBMTb5x2aJQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.7.0.tgz", + "integrity": "sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.7.0.tgz", + "integrity": "sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509-attr": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.7.0.tgz", + "integrity": "sha512-NS8e7SOgXipkzUPLF/sce7ukpMpWjhxYsH0n6Y+bHYo4TTxOb95Zv7hqwSuL212mj5YxovjdOKQOgH1As3E94w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", + "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/x509": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", + "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-csr": "^2.6.0", + "@peculiar/asn1-ecc": "^2.6.0", + "@peculiar/asn1-pkcs9": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "pvtsutils": "^1.3.6", + "reflect-metadata": "^0.2.2", + "tslib": "^2.8.1", + "tsyringe": "^4.10.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -5932,9 +6104,9 @@ "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.5.tgz", + "integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==", "dev": true, "license": "BSD-3-Clause" }, @@ -5964,9 +6136,9 @@ "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.1.tgz", + "integrity": "sha512-mnzgDV26ueAvk7rsbt9L7bE0SuAoqyuys/sMMrmVcN5x9VsxpcG3rqAUSgDyLp0UZlmNfIbQ4fHfCtreVBk8Ew==", "dev": true, "license": "BSD-3-Clause" }, @@ -5985,9 +6157,9 @@ "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.1.tgz", + "integrity": "sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==", "dev": true, "license": "BSD-3-Clause" }, @@ -6268,16 +6440,17 @@ } }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", - "@types/serve-static": "*" + "@types/serve-static": "^1" } }, "node_modules/@types/express-serve-static-core": { @@ -6419,16 +6592,6 @@ "undici-types": "~5.26.4" } }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", @@ -7095,7 +7258,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", - "dev": true, "dependencies": { "consolidate": "^0.15.1", "hash-sum": "^1.0.2", @@ -7113,14 +7275,12 @@ "node_modules/@vue/component-compiler-utils/node_modules/picocolors": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" }, "node_modules/@vue/component-compiler-utils/node_modules/postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -7137,7 +7297,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7716,6 +7875,18 @@ "node": ">=0.4.0" } }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -8063,6 +8234,22 @@ "dev": true, "peer": true }, + "node_modules/asn1js": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", + "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.5", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/assert": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", @@ -8189,13 +8376,14 @@ "dev": true }, "node_modules/axios": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.0.tgz", - "integrity": "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.18.1.tgz", + "integrity": "sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.11", + "follow-redirects": "^1.16.0", "form-data": "^4.0.5", + "https-proxy-agent": "^5.0.1", "proxy-from-env": "^2.1.0" } }, @@ -8506,6 +8694,15 @@ "tweetnacl": "^0.14.3" } }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -8574,8 +8771,7 @@ "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/blueimp-md5": { "version": "2.19.0", @@ -9047,19 +9243,30 @@ "node": ">= 0.8" } }, + "node_modules/bytestreamjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", + "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/cacheable": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.4.tgz", - "integrity": "sha512-djgxybDbw9fL/ZWMI3+CE8ZilNxcwFkVtDc1gJ+IlOSSWkSMPQabhV/XCHTQ6pwwN6aivXPZ43omTooZiX06Ew==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.5.0.tgz", + "integrity": "sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@cacheable/memory": "^2.0.8", - "@cacheable/utils": "^2.4.0", + "@cacheable/memory": "^2.2.0", + "@cacheable/utils": "^2.5.0", "hookified": "^1.15.0", "keyv": "^5.6.0", - "qified": "^0.9.0" + "qified": "^0.10.1" } }, "node_modules/cachedir": { @@ -9759,7 +9966,6 @@ "version": "0.15.1", "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", - "dev": true, "dependencies": { "bluebird": "^3.1.1" }, @@ -10178,7 +10384,6 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", - "dev": true, "peer": true, "dependencies": { "icss-utils": "^5.1.0", @@ -10225,7 +10430,6 @@ }, "node_modules/cssesc": { "version": "3.0.0", - "dev": true, "license": "MIT", "bin": { "cssesc": "bin/cssesc" @@ -10299,9 +10503,9 @@ } }, "node_modules/cypress-split": { - "version": "1.24.31", - "resolved": "https://registry.npmjs.org/cypress-split/-/cypress-split-1.24.31.tgz", - "integrity": "sha512-hDXoIQSFmpa+0hPEgRE22k027vlwd5aJlrPoB1owqWwsvoR2ab4GspPtvlTA2FwA4YbHMbhC6vbkiJC6DId4aQ==", + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/cypress-split/-/cypress-split-1.25.0.tgz", + "integrity": "sha512-/K8qQz3yeSc5GyHFyqJC6ipz3S47kwtFu7WfuZ+uSAjtfNlCxTBlPV5CTTn0v39zjWEVqrfpu2arZuzZegu/9g==", "dev": true, "license": "MIT", "dependencies": { @@ -11357,9 +11561,9 @@ } }, "node_modules/dompurify": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.0.tgz", - "integrity": "sha512-nolgK9JcaUXMSmW+j1yaSvaEaoXYHwWyGJlkoCTghc97KgGDDSnpoU/PlEnw63Ah+TGKFOyY+X5LnxaWbCSfXg==", + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.12.tgz", + "integrity": "sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg==", "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { "@types/trusted-types": "^2.0.7" @@ -11574,6 +11778,15 @@ "vue": ">2.0.0" } }, + "node_modules/emoji-mart-vue-fast/node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/emoji-mart-vue-fast/node_modules/core-js": { "version": "3.45.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz", @@ -11591,6 +11804,15 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", @@ -11853,9 +12075,9 @@ } }, "node_modules/esbuild": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.5.tgz", - "integrity": "sha512-zdQoHBjuDqKsvV5OPaWansOwfSQ0Js+Uj9J85TBvj3bFW1JjWTSULMRwdQAc8qMeIScbClxeMK0jlrtB9linhA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -11866,32 +12088,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.5", - "@esbuild/android-arm": "0.27.5", - "@esbuild/android-arm64": "0.27.5", - "@esbuild/android-x64": "0.27.5", - "@esbuild/darwin-arm64": "0.27.5", - "@esbuild/darwin-x64": "0.27.5", - "@esbuild/freebsd-arm64": "0.27.5", - "@esbuild/freebsd-x64": "0.27.5", - "@esbuild/linux-arm": "0.27.5", - "@esbuild/linux-arm64": "0.27.5", - "@esbuild/linux-ia32": "0.27.5", - "@esbuild/linux-loong64": "0.27.5", - "@esbuild/linux-mips64el": "0.27.5", - "@esbuild/linux-ppc64": "0.27.5", - "@esbuild/linux-riscv64": "0.27.5", - "@esbuild/linux-s390x": "0.27.5", - "@esbuild/linux-x64": "0.27.5", - "@esbuild/netbsd-arm64": "0.27.5", - "@esbuild/netbsd-x64": "0.27.5", - "@esbuild/openbsd-arm64": "0.27.5", - "@esbuild/openbsd-x64": "0.27.5", - "@esbuild/openharmony-arm64": "0.27.5", - "@esbuild/sunos-x64": "0.27.5", - "@esbuild/win32-arm64": "0.27.5", - "@esbuild/win32-ia32": "0.27.5", - "@esbuild/win32-x64": "0.27.5" + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" } }, "node_modules/escalade": { @@ -13090,9 +13312,9 @@ } }, "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz", + "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==", "funding": [ { "type": "github", @@ -13106,9 +13328,9 @@ "license": "BSD-3-Clause" }, "node_modules/fast-xml-builder": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.4.tgz", - "integrity": "sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.2.0.tgz", + "integrity": "sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==", "funding": [ { "type": "github", @@ -13117,7 +13339,8 @@ ], "license": "MIT", "dependencies": { - "path-expression-matcher": "^1.1.3" + "path-expression-matcher": "^1.5.0", + "xml-naming": "^0.1.0" } }, "node_modules/fast-xml-parser": { @@ -13567,16 +13790,16 @@ } }, "node_modules/form-data": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", - "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" + "hasown": "^2.0.4", + "mime-types": "^2.1.35" }, "engines": { "node": ">= 6" @@ -13603,6 +13826,12 @@ "node": ">= 0.6" } }, + "node_modules/frappe-gantt": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/frappe-gantt/-/frappe-gantt-1.2.2.tgz", + "integrity": "sha512-1+uPNRa92LBIeKiZCVhJMiGIifJk5ONaoerXI8eBREXWRZGGoTJR5ATpMpsnAQcyBA6Gnq5wIht4eL+e4eHMBA==", + "license": "MIT" + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -13742,9 +13971,9 @@ } }, "node_modules/get-east-asian-width": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", - "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", + "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", "dev": true, "license": "MIT", "peer": true, @@ -13843,6 +14072,7 @@ "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -13903,7 +14133,8 @@ "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "peer": true }, "node_modules/global-dirs": { "version": "3.0.1", @@ -14151,8 +14382,7 @@ "node_modules/hash-sum": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", - "dev": true + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==" }, "node_modules/hash.js": { "version": "1.1.7", @@ -14166,23 +14396,24 @@ } }, "node_modules/hashery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.0.tgz", - "integrity": "sha512-nhQ6ExaOIqti2FDWoEMWARUqIKyjr2VcZzXShrI+A3zpeiuPWzx6iPftt44LhP74E5sW36B75N6VHbvRtpvO6Q==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz", + "integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "hookified": "^1.14.0" + "hookified": "^1.15.0" }, "engines": { "node": ">=20" } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -14593,6 +14824,19 @@ "dev": true, "peer": true }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -14622,12 +14866,6 @@ "node": ">=10.18" } }, - "node_modules/ical.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ical.js/-/ical.js-2.1.0.tgz", - "integrity": "sha512-BOVfrH55xQ6kpS3muGvIXIg2l7p+eoe12/oS7R5yrO3TL/j/bLsR0PR+tYQESFbyTbvGgPHn9zQ6tI4FWyuSaQ==", - "license": "MPL-2.0" - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -14646,7 +14884,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, "peer": true, "engines": { "node": "^10 || ^12 || >= 14" @@ -14685,9 +14922,9 @@ } }, "node_modules/immutable": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.8.tgz", - "integrity": "sha512-d/Ld9aLbKpNwyl0KiM2CT1WYvkitQ1TSvmRtkcV8FKStiDoA7Slzgjmb/1G2yhKM1p0XeNOieaTbFZmU1d3Xuw==", + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.9.tgz", + "integrity": "sha512-ObHy4YN7ycwZOUCLI1/6svfyAFu7vL8RhAvVu/bh/RZW9EPlOyDaQ9jDQWCtdqzaXUjgXZCW1migtHE7YI7UGQ==", "dev": true, "license": "MIT", "peer": true @@ -17410,12 +17647,13 @@ } }, "node_modules/js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.7.tgz", + "integrity": "sha512-z/wZZgDrkNV1eA0ULjM/F9/50Ya8fbzgKneSpoPsXSGd0KnpdtHfOZWK+GcwLk+EZbS4F9RBhU+K2RgzuDaItw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=20" } }, "node_modules/js-tokens": { @@ -17574,14 +17812,15 @@ "peer": true }, "node_modules/launch-editor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", - "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz", + "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "picocolors": "^1.1.1", + "shell-quote": "^1.8.4" } }, "node_modules/layerr": { @@ -17627,9 +17866,20 @@ "license": "MIT" }, "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.2.tgz", + "integrity": "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], + "license": "MIT", "dependencies": { "uc.micro": "^2.0.0" } @@ -17690,6 +17940,32 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/local-pkg": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", @@ -17964,7 +18240,6 @@ }, "node_modules/lru-cache": { "version": "4.1.5", - "dev": true, "license": "ISC", "dependencies": { "pseudomap": "^1.0.2", @@ -18020,14 +18295,24 @@ } }, "node_modules/markdown-it": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", - "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.2.0.tgz", + "integrity": "sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], "license": "MIT", "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", - "linkify-it": "^5.0.0", + "linkify-it": "^5.0.1", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" @@ -18520,7 +18805,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, "dependencies": { "source-map": "^0.6.1" } @@ -18529,7 +18813,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -19099,7 +19382,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -19245,9 +19527,9 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", "funding": [ { "type": "github", @@ -19333,17 +19615,6 @@ } } }, - "node_modules/node-forge": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", - "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", - "dev": true, - "license": "(BSD-3-Clause OR GPL-2.0)", - "peer": true, - "engines": { - "node": ">= 6.13.0" - } - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -19742,26 +20013,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-queue": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.1.tgz", - "integrity": "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==", + "node_modules/p-queue": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.3.0.tgz", + "integrity": "sha512-7NED7xhQ74Ngp4JP/2e0VZHp7vSWfJfqeiR92jPgxsz6m0Se4P03YoTKa9dDXyZ3r6P616gUXttrB6nnHYKang==", "license": "MIT", "dependencies": { - "eventemitter3": "^5.0.1", - "p-timeout": "^6.1.2" + "eventemitter3": "^5.0.4", + "p-timeout": "^7.0.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-queue/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" }, "node_modules/p-retry": { "version": "6.2.0", @@ -19782,11 +20054,12 @@ } }, "node_modules/p-timeout": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", - "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", + "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", + "license": "MIT", "engines": { - "node": ">=14.16" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -19921,9 +20194,9 @@ } }, "node_modules/path-expression-matcher": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.4.0.tgz", - "integrity": "sha512-s4DQMxIdhj3jLFWd9LxHOplj4p9yQ4ffMGowFf3cpEgrrJjEhN0V5nxw4Ye1EViAGDoL4/1AeO6qHpqYPOzE4Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.5.0.tgz", + "integrity": "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==", "funding": [ { "type": "github", @@ -20293,6 +20566,25 @@ "pathe": "^2.0.3" } }, + "node_modules/pkijs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", + "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@noble/hashes": "1.4.0", + "asn1js": "^3.0.6", + "bytestreamjs": "^2.0.1", + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/pluralize": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", @@ -20314,9 +20606,9 @@ } }, "node_modules/postcss": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", - "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "version": "8.5.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", + "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", "funding": [ { "type": "opencollective", @@ -20333,7 +20625,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -20378,7 +20670,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "dev": true, "peer": true, "engines": { "node": "^10 || ^12 || >= 14" @@ -20391,7 +20682,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", - "dev": true, "peer": true, "dependencies": { "icss-utils": "^5.0.0", @@ -20409,7 +20699,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", - "dev": true, "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.4" @@ -20425,7 +20714,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, "peer": true, "dependencies": { "icss-utils": "^5.0.0" @@ -20495,7 +20783,6 @@ "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", - "dev": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -20508,7 +20795,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, "peer": true }, "node_modules/postcss-values-parser": { @@ -20708,23 +20994,23 @@ "dev": true }, "node_modules/protobufjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.5.tgz", - "integrity": "sha512-3wY1AxV+VBNW8Yypfd1yQY9pXnqTAN+KwQxL8iYm3/BjKYMNg4i0owhEe26PWDOMaIrzeeF98Lqd5NGz4omiIg==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.8.tgz", + "integrity": "sha512-dvpCIeLPbXZS/Ete7yLaO7RenOdken2NHKykBXbsaGxZT0UTltcarBciw+A78SRQs9iMAAVpsYA+l8b1hTePIA==", "dev": true, "hasInstallScript": true, "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", + "@protobufjs/codegen": "^2.0.5", "@protobufjs/eventemitter": "^1.1.0", "@protobufjs/fetch": "^1.1.0", "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", + "@protobufjs/inquire": "^1.1.1", "@protobufjs/path": "^1.1.2", "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", + "@protobufjs/utf8": "^1.1.1", "@types/node": ">=13.7.0", "long": "^5.0.0" }, @@ -20764,7 +21050,6 @@ }, "node_modules/pseudomap": { "version": "1.0.2", - "dev": true, "license": "ISC" }, "node_modules/public-encrypt": { @@ -20833,24 +21118,46 @@ } ] }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/qified": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/qified/-/qified-0.9.0.tgz", - "integrity": "sha512-4q61YgkHbY6gmwkqm0BsxyLDO3UYdrdiJTJ7JiaZb3xpW1duxn135SB7KqUEkCiuu5O4W+TtwEWP2VjmSRanvA==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/qified/-/qified-0.10.1.tgz", + "integrity": "sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "hookified": "^2.1.0" + "hookified": "^2.1.1" }, "engines": { "node": ">=20" } }, "node_modules/qified/node_modules/hookified": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.1.0.tgz", - "integrity": "sha512-ootKng4eaxNxa7rx6FJv2YKef3DuhqbEj3l70oGXwddPQEEnISm50TEZQclqiLTAtilT2nu7TErtCO523hHkyg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.2.0.tgz", + "integrity": "sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==", "dev": true, "license": "MIT", "peer": true @@ -21069,6 +21376,14 @@ "node": ">= 10.13.0" } }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -21773,6 +22088,7 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, + "peer": true, "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } @@ -22108,17 +22424,18 @@ "peer": true }, "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", + "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" + "@peculiar/x509": "^1.14.2", + "pkijs": "^3.3.3" }, "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/semver": { @@ -22402,11 +22719,15 @@ } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz", + "integrity": "sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==", "dev": true, + "license": "MIT", "peer": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -23156,9 +23477,9 @@ } }, "node_modules/stylelint": { - "version": "17.5.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.5.0.tgz", - "integrity": "sha512-o/NS6zhsPZFmgUm5tXX4pVNg1XDOZSlucLdf2qow/lVn4JIyzZIQ5b3kad1ugqUj3GSIgr2u5lQw7X8rjqw33g==", + "version": "17.14.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.14.1.tgz", + "integrity": "sha512-xVQwyiuxALUBNB2fBe0tmNemg9KqLtdj3T64mioFDar79B2cU8LIyz+3KL6LdiHs9NkeNfwxpKSaIVOY8f112g==", "dev": true, "funding": [ { @@ -23173,43 +23494,41 @@ "license": "MIT", "peer": true, "dependencies": { - "@csstools/css-calc": "^3.1.1", + "@csstools/css-calc": "^3.2.1", "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-syntax-patches-for-csstree": "^1.0.29", + "@csstools/css-syntax-patches-for-csstree": "^1.1.6", "@csstools/css-tokenizer": "^4.0.0", "@csstools/media-query-list-parser": "^5.0.0", "@csstools/selector-resolve-nested": "^4.0.0", "@csstools/selector-specificity": "^6.0.0", "colord": "^2.9.3", - "cosmiconfig": "^9.0.1", + "cosmiconfig": "^9.0.2", "css-functions-list": "^3.3.3", "css-tree": "^3.2.1", "debug": "^4.4.3", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^11.1.2", + "file-entry-cache": "^11.1.5", "global-modules": "^2.0.0", - "globby": "^16.1.1", + "globby": "^16.2.1", "globjoin": "^0.1.4", "html-tags": "^5.1.0", "ignore": "^7.0.5", "import-meta-resolve": "^4.2.0", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", "mathml-tag-names": "^4.0.0", "meow": "^14.1.0", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.1.1", - "postcss": "^8.5.8", + "postcss": "^8.5.16", "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^7.1.1", + "postcss-selector-parser": "^7.1.4", "postcss-value-parser": "^4.2.0", - "string-width": "^8.2.0", - "supports-hyperlinks": "^4.4.0", + "string-width": "^8.2.1", + "supports-hyperlinks": "^4.5.0", "svg-tags": "^1.0.0", "table": "^6.9.0", - "write-file-atomic": "^7.0.0" + "write-file-atomic": "^7.0.1" }, "bin": { "stylelint": "bin/stylelint.mjs" @@ -23261,9 +23580,9 @@ } }, "node_modules/stylelint-config-recommended-scss": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-17.0.0.tgz", - "integrity": "sha512-VkVD9r7jfUT/dq3mA3/I1WXXk2U71rO5wvU2yIil9PW5o1g3UM7Xc82vHmuVJHV7Y8ok5K137fmW5u3HbhtTOA==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-17.0.1.tgz", + "integrity": "sha512-x5DVehzJudcwF0od3sGpgkln2PLLranFE7twwbp7dqDINCyZvwzFkMc6TLhNOvazRiVBJYATQLouJY0xPGB8WA==", "dev": true, "license": "MIT", "peer": true, @@ -23309,17 +23628,20 @@ } }, "node_modules/stylelint-scss": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-7.0.0.tgz", - "integrity": "sha512-H88kCC+6Vtzj76NsC8rv6x/LW8slBzIbyeSjsKVlS+4qaEJoDrcJR4L+8JdrR2ORdTscrBzYWiiT2jq6leYR1Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-7.2.0.tgz", + "integrity": "sha512-6E79Bachv0Iz0gqRUZgdqdXCsiq26DWBWIBNHYtjTmAp3wJu6cp/I37VfW7BPntmh2puF3bY09XWl4HZGrLhzw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "css-tree": "^3.0.1", + "@csstools/css-calc": "^3.2.1", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-syntax-patches-for-csstree": "^1.1.4", + "@csstools/css-tokenizer": "^4.0.0", + "css-tree": "^3.2.1", "is-plain-object": "^5.0.0", "known-css-properties": "^0.37.0", - "mdn-data": "^2.25.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.6", "postcss-selector-parser": "^7.1.1", @@ -23332,6 +23654,32 @@ "stylelint": "^16.8.2 || ^17.0.0" } }, + "node_modules/stylelint-scss/node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz", + "integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peer": true, + "peerDependencies": { + "css-tree": "^3.2.1" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } + } + }, "node_modules/stylelint-scss/node_modules/css-tree": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", @@ -23367,9 +23715,9 @@ "peer": true }, "node_modules/stylelint-scss/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "dev": true, "license": "MIT", "peer": true, @@ -23459,9 +23807,9 @@ } }, "node_modules/stylelint/node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.1.tgz", - "integrity": "sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz", + "integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==", "dev": true, "funding": [ { @@ -23555,9 +23903,9 @@ "peer": true }, "node_modules/stylelint/node_modules/cosmiconfig": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", - "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", + "integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==", "dev": true, "license": "MIT", "peer": true, @@ -23617,33 +23965,33 @@ } }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.2.tgz", - "integrity": "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==", + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.5.tgz", + "integrity": "sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "flat-cache": "^6.1.20" + "flat-cache": "^6.1.23" } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "6.1.21", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.21.tgz", - "integrity": "sha512-2u7cJfSf7Th7NxEk/VzQjnPoglok2YCsevS7TSbJjcDQWJPbqUUnSYtriHSvtnq+fRZHy1s0ugk4ApnQyhPGoQ==", + "version": "6.1.23", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.23.tgz", + "integrity": "sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "cacheable": "^2.3.3", - "flatted": "^3.4.1", + "cacheable": "^2.5.0", + "flatted": "^3.4.2", "hookified": "^1.15.0" } }, "node_modules/stylelint/node_modules/globby": { - "version": "16.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-16.1.1.tgz", - "integrity": "sha512-dW7vl+yiAJSp6aCekaVnVJxurRv7DCOLyXqEG3RYMYUg7AuJ2jCqPkZTA8ooqC2vtnkaMcV5WfFBMuEnTu1OQg==", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.2.2.tgz", + "integrity": "sha512-NLvV9ubZ6NDsJaOpKPy3cQeJpKi9DcWiyCiFUpJPA0YihRqiE6RWaLUmgNNPr8MgPpLZjnBjSmou7uZBRJv9wA==", "dev": true, "license": "MIT", "peer": true, @@ -23663,9 +24011,9 @@ } }, "node_modules/stylelint/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", "dev": true, "license": "MIT", "peer": true, @@ -23687,21 +24035,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylelint/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/stylelint/node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", + "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", "peer": true, "dependencies": { @@ -23748,9 +24096,9 @@ } }, "node_modules/stylelint/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "dev": true, "license": "MIT", "peer": true, @@ -23791,9 +24139,9 @@ } }, "node_modules/stylelint/node_modules/string-width": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.0.tgz", - "integrity": "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz", + "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==", "dev": true, "license": "MIT", "peer": true, @@ -23901,9 +24249,9 @@ } }, "node_modules/supports-hyperlinks": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-4.4.0.tgz", - "integrity": "sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-4.5.0.tgz", + "integrity": "sha512-ZW2OvfeCXrNTbLakPUzjQG922EeGCOteFSVoek5DKStTh898wf7zgtuFlzQN8HfZCxC3Eh02yJVrRW51hADf+w==", "dev": true, "license": "MIT", "peer": true, @@ -24249,9 +24597,9 @@ "dev": true }, "node_modules/tmp": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", - "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", "dev": true, "license": "MIT", "engines": { @@ -24568,14 +24916,13 @@ "license": "0BSD" }, "node_modules/tsx": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", - "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.22.4.tgz", + "integrity": "sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" + "esbuild": "~0.28.0" }, "bin": { "tsx": "dist/cli.mjs" @@ -24587,6 +24934,28 @@ "fsevents": "~2.3.3" } }, + "node_modules/tsyringe": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", + "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/tsyringe/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD", + "peer": true + }, "node_modules/tty-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", @@ -24768,7 +25137,8 @@ "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" }, "node_modules/ufo": { "version": "1.6.3", @@ -24793,9 +25163,9 @@ } }, "node_modules/undici": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz", - "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==", + "version": "6.27.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz", + "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==", "dev": true, "license": "MIT", "engines": { @@ -25008,9 +25378,10 @@ } }, "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" @@ -25211,7 +25582,6 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "dev": true, "license": "MIT" }, "node_modules/utils-merge": { @@ -25455,6 +25825,12 @@ "vue": "^2.6.0" } }, + "node_modules/vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "license": "MIT" + }, "node_modules/vue-infinite-loading": { "version": "2.4.5", "license": "MIT", @@ -25463,103 +25839,33 @@ } }, "node_modules/vue-loader": { - "version": "17.4.2", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.4.2.tgz", - "integrity": "sha512-yTKOA4R/VN4jqjw4y5HrynFL8AK0Z3/Jt7eOJXEitsm0GMRHDBjCfCiuTiLP7OESvsZYo2pATCWhDqxC5ZrM6w==", + "version": "15.11.1", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.11.1.tgz", + "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==", "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "watchpack": "^2.4.0" + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" }, "peerDependencies": { - "webpack": "^4.1.0 || ^5.0.0-0" + "css-loader": "*", + "webpack": "^3.0.0 || ^4.1.0 || ^5.0.0-0" }, "peerDependenciesMeta": { - "@vue/compiler-sfc": { + "cache-loader": { "optional": true }, - "vue": { + "prettier": { + "optional": true + }, + "vue-template-compiler": { "optional": true } } }, - "node_modules/vue-loader/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/vue-loader/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/vue-loader/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/vue-loader/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/vue-loader/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/vue-loader/node_modules/hash-sum": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", - "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", - "license": "MIT" - }, - "node_modules/vue-loader/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/vue-material-design-icons": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/vue-material-design-icons/-/vue-material-design-icons-5.3.1.tgz", @@ -25577,6 +25883,15 @@ "vue": "^2.6.0" } }, + "node_modules/vue-resize/node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/vue-router": { "version": "3.6.5", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.6.5.tgz", @@ -25589,6 +25904,16 @@ "smooth-dnd": "0.12.1" } }, + "node_modules/vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "license": "MIT", + "dependencies": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, "node_modules/vue-template-compiler": { "version": "2.7.16", "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", @@ -25601,7 +25926,6 @@ }, "node_modules/vue-template-es2015-compiler": { "version": "1.9.1", - "dev": true, "license": "MIT" }, "node_modules/vue2-datepicker": { @@ -25664,6 +25988,7 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", "license": "MIT", + "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -25962,16 +26287,16 @@ } }, "node_modules/webpack-dev-server": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", - "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.6.tgz", + "integrity": "sha512-HNLRmamRvVavZQ+avceZifmv8hmdUjg43t6MI4SqJDwFdW7RPQwH5vzGhDRZSX59SgfbeHhLnq3g+uooWo7pVw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", - "@types/express": "^4.17.21", + "@types/express": "^4.17.25", "@types/express-serve-static-core": "^4.17.21", "@types/serve-index": "^1.9.4", "@types/serve-static": "^1.15.5", @@ -25981,17 +26306,17 @@ "bonjour-service": "^1.2.1", "chokidar": "^3.6.0", "colorette": "^2.0.10", - "compression": "^1.7.4", + "compression": "^1.8.1", "connect-history-api-fallback": "^2.0.0", - "express": "^4.21.2", + "express": "^4.22.1", "graceful-fs": "^4.2.6", "http-proxy-middleware": "^2.0.9", "ipaddr.js": "^2.1.0", - "launch-editor": "^2.6.1", + "launch-editor": "^2.14.1", "open": "^10.0.3", "p-retry": "^6.2.0", "schema-utils": "^4.2.0", - "selfsigned": "^2.4.1", + "selfsigned": "^5.5.0", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", @@ -26105,10 +26430,11 @@ "license": "MIT" }, "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", + "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "http-parser-js": ">=0.5.1", @@ -26341,10 +26667,11 @@ } }, "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=10.0.0" @@ -26372,6 +26699,21 @@ "node": ">=12" } }, + "node_modules/xml-naming": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/xml-naming/-/xml-naming-0.1.0.tgz", + "integrity": "sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -26393,7 +26735,6 @@ }, "node_modules/yallist": { "version": "2.1.2", - "dev": true, "license": "ISC" }, "node_modules/yaml": { diff --git a/package.json b/package.json index 1e95297266..0c643854eb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "deck", "description": "", - "version": "3.0.0-dev.1", + "version": "4.0.0-dev.1", "authors": [ { "name": "Julius Härtl", @@ -31,7 +31,7 @@ }, "dependencies": { "@babel/polyfill": "^7.12.1", - "@babel/runtime": "^7.29.2", + "@babel/runtime": "^8.0.0", "@nextcloud/auth": "^2.6.0", "@nextcloud/axios": "^2.5.1", "@nextcloud/capabilities": "^1.2.0", @@ -44,16 +44,17 @@ "@nextcloud/notify_push": "^1.3.1", "@nextcloud/password-confirmation": "^6.1.0", "@nextcloud/router": "^3.0.1", - "@nextcloud/vue": "^8.34.0", + "@nextcloud/vue": "^8.39.0", "blueimp-md5": "^2.19.0", "chroma-js": "^3.2.0", - "dompurify": "^3.4.0", + "dompurify": "^3.4.12", + "frappe-gantt": "^1.2.2", "lodash": "^4.18.1", - "markdown-it": "^14.1.1", + "markdown-it": "^14.2.0", "markdown-it-link-attributes": "^4.0.1", "markdown-it-task-checkbox": "^1.0.6", "moment": "^2.30.1", - "p-queue": "^8.0.1", + "p-queue": "^9.3.0", "pinia": "^2.3.1", "url-search-params-polyfill": "^8.2.5", "vue": "^2.7.15", @@ -61,7 +62,7 @@ "vue-click-outside": "^1.1.0", "vue-easymde": "^2.0.0", "vue-infinite-loading": "^2.4.5", - "vue-loader": "^17.4.2", + "vue-loader": "^15.11.1", "vue-material-design-icons": "^5.3.1", "vue-router": "^3.6.5", "vue-smooth-dnd": "^0.8.1", @@ -80,13 +81,13 @@ "@nextcloud/browserslist-config": "^3.0.1", "@nextcloud/cypress": "^1.0.0-beta.15", "@nextcloud/eslint-config": "^8.4.2", - "@nextcloud/stylelint-config": "^3.2.1", + "@nextcloud/stylelint-config": "^3.2.2", "@nextcloud/webpack-vue-config": "^6.3.0", "@relative-ci/agent": "^4.3.1", "@vue/test-utils": "^2.4.6", "@vue/vue2-jest": "^29.2.6", "cypress": "^13.17.0", - "cypress-split": "^1.24.31", + "cypress-split": "^1.25.0", "eslint-plugin-cypress": "^3.6.0", "eslint-webpack-plugin": "^5.0.3", "jest": "^29.7.0", diff --git a/psalm.xml b/psalm.xml index bd7ead736e..2963f3fefe 100644 --- a/psalm.xml +++ b/psalm.xml @@ -8,7 +8,7 @@ errorBaseline="tests/psalm-baseline.xml" findUnusedBaselineEntry="true" findUnusedCode="false" - phpVersion="8.2" + phpVersion="8.3" > diff --git a/src/CardMoveDialog.vue b/src/CardMoveDialog.vue index 42b8df2b3d..831c2d25d1 100644 --- a/src/CardMoveDialog.vue +++ b/src/CardMoveDialog.vue @@ -38,6 +38,8 @@ import { generateOcsUrl } from '@nextcloud/router' import axios from '@nextcloud/axios' import { subscribe, unsubscribe } from '@nextcloud/event-bus' import { mapGetters } from 'vuex' +import { mapState } from 'pinia' +import { useStackStore } from './stores/stack.js' export default { name: 'CardMoveDialog', @@ -52,7 +54,8 @@ export default { } }, computed: { - ...mapGetters(['stackById', 'boardById']), + ...mapGetters(['boardById']), + ...mapState(useStackStore, ['stackById']), activeBoards() { return this.$store.getters.boards.filter((item) => item.deletedAt === 0 && item.archived === false) }, diff --git a/src/components/Controls.vue b/src/components/Controls.vue index ef7ee270dd..31cbe996af 100644 --- a/src/components/Controls.vue +++ b/src/components/Controls.vue @@ -226,6 +226,21 @@ + + + {{ t('deck', 'Kanban view') }} + + + + {{ t('deck', 'Gantt view') }} + + {{ showCardCover ? t('deck', 'Hide card cover images') : t('deck', 'Show card cover images') }} + @@ -264,7 +304,7 @@ + + + + diff --git a/src/components/board/SharingTabSidebar.vue b/src/components/board/SharingTabSidebar.vue index 3d0a3de03e..59d7088256 100644 --- a/src/components/board/SharingTabSidebar.vue +++ b/src/components/board/SharingTabSidebar.vue @@ -91,6 +91,7 @@ const SOURCE_TO_SHARE_TYPE = { emails: 4, remotes: 6, circles: 7, + teams: 7, } export default { @@ -139,7 +140,7 @@ export default { displayName: item.displayname || item.name || item.label || item.id, user: item.id, subname: item.shareWithDisplayNameUnique || item.subline || item.id, // NcSelectUser does its own pattern matching to filter things out - type: SOURCE_TO_SHARE_TYPE[item.source] + type: SOURCE_TO_SHARE_TYPE[item.source], } return res }).slice(0, 10) diff --git a/src/components/board/Stack.vue b/src/components/board/Stack.vue index b208dccc8e..4641c09c5d 100644 --- a/src/components/board/Stack.vue +++ b/src/components/board/Stack.vue @@ -5,7 +5,8 @@ diff --git a/src/components/card/CardSidebarTabComments.vue b/src/components/card/CardSidebarTabComments.vue index fd0fc5d6f6..64f8f1649c 100644 --- a/src/components/card/CardSidebarTabComments.vue +++ b/src/components/card/CardSidebarTabComments.vue @@ -11,15 +11,15 @@ - -
    - + @@ -38,12 +38,13 @@ + diff --git a/src/components/card/DueDateSelector.vue b/src/components/card/DueDateSelector.vue index 8c5b2171da..1e75237750 100644 --- a/src/components/card/DueDateSelector.vue +++ b/src/components/card/DueDateSelector.vue @@ -14,7 +14,7 @@ :hide-label="true" type="datetime-local" />