diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 0063e5ec3..eedd056f3 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,20 +1,24 @@ -FROM ubuntu:21.10 -LABEL maintainer="sgr" +FROM ubuntu:24.04 +LABEL maintainer="wekan" +LABEL org.opencontainers.image.ref.name="ubuntu" +LABEL org.opencontainers.image.version="24.04" +LABEL org.opencontainers.image.source="https://github.com/wekan/wekan" # 2022-04-25: # - gyp does not yet work with Ubuntu 22.04 ubuntu:rolling, # so changing to 21.10. https://github.com/wekan/wekan/issues/4488 -ENV BUILD_DEPS="gnupg gosu libarchive-tools wget curl bzip2 g++ build-essential python3 git ca-certificates iproute2" -ENV DEBIAN_FRONTEND=noninteractive +ENV BUILD_DEPS="apt-utils gnupg gosu wget bzip2 g++ iproute2 apt-transport-https libarchive-tools" +ENV DEV_DEPS="curl python3 ca-certificates build-essential git" +ARG DEBIAN_FRONTEND=noninteractive ENV \ DEBUG=false \ NODE_VERSION=v14.21.4 \ - METEOR_RELEASE=METEOR@2.13 \ + METEOR_RELEASE=METEOR@2.14 \ USE_EDGE=false \ METEOR_EDGE=1.5-beta.17 \ - NPM_VERSION=latest \ + NPM_VERSION=6.14.17 \ FIBERS_VERSION=4.0.1 \ ARCHITECTURE=linux-x64 \ SRC_PATH=./ \ @@ -28,15 +32,14 @@ ENV \ ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60 \ ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15 \ ACCOUNTS_COMMON_LOGIN_EXPIRATION_IN_DAYS=90 \ - RICHER_CARD_COMMENT_EDITOR=false \ - CARD_OPENED_WEBHOOK_ENABLED=false \ - ATTACHMENTS_STORE_PATH="" \ ATTACHMENTS_UPLOAD_EXTERNAL_PROGRAM="" \ ATTACHMENTS_UPLOAD_MIME_TYPES="" \ ATTACHMENTS_UPLOAD_MAX_SIZE=0 \ AVATARS_UPLOAD_EXTERNAL_PROGRAM="" \ AVATARS_UPLOAD_MIME_TYPES="" \ AVATARS_UPLOAD_MAX_SIZE=0 \ + RICHER_CARD_COMMENT_EDITOR=false \ + CARD_OPENED_WEBHOOK_ENABLED=false \ MAX_IMAGE_PIXEL="" \ IMAGE_COMPRESS_RATIO="" \ NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE="" \ @@ -48,10 +51,12 @@ ENV \ MATOMO_SITE_ID="" \ MATOMO_DO_NOT_TRACK=true \ MATOMO_WITH_USERNAME=false \ + METRICS_ALLOWED_IP_ADDRESSES="" \ BROWSER_POLICY_ENABLED=true \ TRUSTED_URL="" \ WEBHOOKS_ATTRIBUTES="" \ OAUTH2_ENABLED=false \ + OIDC_REDIRECTION_ENABLED=false \ OAUTH2_CA_CERT="" \ OAUTH2_ADFS_ENABLED=false \ OAUTH2_B2C_ENABLED=false \ @@ -71,6 +76,9 @@ ENV \ LDAP_ENABLE=false \ LDAP_PORT=389 \ LDAP_HOST="" \ + LDAP_AD_SIMPLE_AUTH="" \ + LDAP_USER_AUTHENTICATION=false \ + LDAP_USER_AUTHENTICATION_FIELD=uid \ LDAP_BASEDN="" \ LDAP_LOGIN_FALLBACK=false \ LDAP_RECONNECT=true \ @@ -88,8 +96,6 @@ ENV \ LDAP_ENCRYPTION=false \ LDAP_CA_CERT="" \ LDAP_REJECT_UNAUTHORIZED=false \ - LDAP_USER_AUTHENTICATION=false \ - LDAP_USER_AUTHENTICATION_FIELD=uid \ LDAP_USER_SEARCH_FILTER="" \ LDAP_USER_SEARCH_SCOPE="" \ LDAP_USER_SEARCH_FIELD="" \ @@ -144,69 +150,32 @@ ENV \ SAML_IDENTIFIER_FORMAT="" \ SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE="" \ SAML_ATTRIBUTES="" \ - DEFAULT_WAIT_SPINNER="" \ + ORACLE_OIM_ENABLED=false \ + WAIT_SPINNER="" \ + WRITABLE_PATH=/data \ S3="" -# \ -# NODE_OPTIONS="--max_old_space_size=4096" -#--------------------------------------------------------------------- -# https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132 -# Add more Node heap: # NODE_OPTIONS="--max_old_space_size=4096" -# Add more stack: -# bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js" + +#--------------------------------------------- +# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ==== +# https://github.com/wekan/wekan/wiki/autologin +#- OIDC_REDIRECTION_ENABLED=true #--------------------------------------------------------------------- -# Install OS -RUN set -o xtrace \ - && useradd --user-group -m --system --home-dir /home/wekan wekan \ - && apt-get update \ - && apt-get install --assume-yes --no-install-recommends apt-utils apt-transport-https ca-certificates 2>&1 \ - && apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS} - -# OLD: -# && curl -fsSLO --compressed "https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-$ARCHITECTURE.tar.xz" \ -# && curl -fsSLO --compressed "https://nodejs.org/dist/$NODE_VERSION/SHASUMS256.txt.asc" \ - -# Install NodeJS -RUN set -o xtrace \ - && cd /tmp \ - && curl -fsSLO --compressed "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.xz" \ - && curl -fsSLO --compressed "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt" \ - && grep " node-$NODE_VERSION-$ARCHITECTURE.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ - && tar -xJf "node-$NODE_VERSION-$ARCHITECTURE.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ - && rm "node-$NODE_VERSION-$ARCHITECTURE.tar.xz" SHASUMS256.txt \ - && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ - && mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp /root/.node-gyp/${NODE_VERSION} /home/wekan/.config \ - && npm install -g npm@${NPM_VERSION} \ - && chown wekan:wekan --recursive /home/wekan/.config - -ENV DEBIAN_FRONTEND=dialog - -USER wekan - -# Install Meteor -RUN set -o xtrace \ - && cd /home/wekan \ - && curl https://install.meteor.com/?release=$METEOR_VERSION --output /home/wekan/install-meteor.sh \ - # Replace tar with bsdtar in the install script; https://github.com/jshimko/meteor-launchpad/issues/39 - && sed --in-place "s/tar -xzf.*/bsdtar -xf \"\$TARBALL_FILE\" -C \"\$INSTALL_TMPDIR\"/g" /home/wekan/install-meteor.sh \ - && sed --in-place 's/VERBOSITY="--silent"/VERBOSITY="--progress-bar"/' /home/wekan/install-meteor.sh \ - && printf "\n[-] Installing Meteor $METEOR_VERSION...\n\n" \ - && sh /home/wekan/install-meteor.sh - ENV PATH=$PATH:/home/wekan/.meteor/ -USER root - -RUN echo "export PATH=$PATH" >> /etc/environment - -USER wekan +RUN <> /etc/environment +EOR # Copy source dir -RUN set -o xtrace \ - && mkdir -p /home/wekan/app/.meteor \ - && mkdir -p /home/wekan/app/packages +RUN < +Email settings, only SMTP MAIL_URL and MAIL_FROM are in use: +https://github.com/wekan/wekan/wiki/Troubleshooting-Mail ### Server Setup Information - + +Please anonymize info, and do not any of your Wekan board URLs, passwords, +API tokens etc to this public issue. + * Did you test in newest Wekan?: * Did you configure root-url correctly so Wekan cards open correctly (see https://github.com/wekan/wekan/wiki/Settings)? * Operating System: @@ -23,13 +31,25 @@ Email settings, only SMTP MAIL_URL and MAIL_FROM are in use: https://github.com/ * What webbrowser version are you using (Wekan should work on all modern browsers that support Javascript)? ### Problem description - + +Add a recorded animated gif (e.g. with https://github.com/phw/peek) about +how it works currently, and screenshot mockups how it should work. + + #### Reproduction Steps -#### Logs - - + +If logs are very long, attach them in .zip file + diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 3d4490c3c..173603b2c 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -38,7 +38,7 @@ jobs: # https://github.com/docker/login-action - name: Log into registry ${{ env.REGISTRY }} if: github.event_name != 'pull_request' - uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 + uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -48,14 +48,14 @@ jobs: # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta - uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 + uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} # Build and push Docker image with Buildx (don't push on PR) # https://github.com/docker/build-push-action - name: Build and push Docker image - uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 + uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 with: context: . push: ${{ github.event_name != 'pull_request' }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dbe30ccaa..fcdbed26d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,6 +25,6 @@ jobs: git config user.email "$GITHUB_ACTOR@users.noreply.github.com" - name: Run chart-releaser - uses: helm/chart-releaser-action@v1.6.0 + uses: helm/chart-releaser-action@v1.7.0 env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/test_suite.yml b/.github/workflows/test_suite.yml index b733060a2..a02b3e254 100644 --- a/.github/workflows/test_suite.yml +++ b/.github/workflows/test_suite.yml @@ -125,7 +125,7 @@ jobs: v1-meteor_build_cache- - name: Setup meteor - uses: meteorengineer/setup-meteor@v1 + uses: meteorengineer/setup-meteor@v2 with: meteor-release: '2.2' diff --git a/.tx/config b/.tx/config index 261af1170..7745b5608 100644 --- a/.tx/config +++ b/.tx/config @@ -1,6 +1,6 @@ [main] host = https://www.transifex.com -lang_map = es_AR: es-AR, es_419: es-LA, es_TX: es-TX, he_IL: he-IL, zh_CN: zh-CN, ar_EG: ar-EG, cs_CZ: cs-CZ, fa_IR: fa-IR, ms_MY: ms-MY, nl_NL: nl-NL, de_CH: de-CH, en_IT: en-IT, uz_UZ: uz-UZ, fr_CH: fr-CH, hi_IN: hi-IN, et_EE: et-EE, es_PE: es-PE, es_MX: es-MX, gl_ES: gl-ES, mn_MN: mn, sl_SI: sl, zh_TW: zh-TW, ast_ES: ast-ES, es_CL: es-CL, ja_JP: ja, lv_LV: lv, ro_RO: ro-RO, az_AZ: az-AZ, cy_GB: cy-GB, gu_IN: gu-IN, pl_PL: pl-PL, vep: ve-PP, en_BR: en-BR, en@ysv: en-YS, hu_HU: hu, ko_KR: ko-KR, pt_BR: pt-BR, zh_HK: zh-HK, zu_ZA: zu-ZA, en_MY: en-MY, ja-Hira: ja-HI, fi_FI: fi, vec: ve-CC, vi_VN: vi-VN, fr_FR: fr-FR, id_ID: id, zh_Hans: zh-Hans, en_DE: en-DE, en_GB: en-GB, el_GR: el-GR, uk_UA: uk-UA, az@latin: az-LA, de_AT: de-AT, uz@Latn: uz-LA, vls: vl-SS, ar_DZ: ar-DZ, bg_BG: bg, es_PY: es-PY, fy_NL: fy-NL, uz@Arab: uz-AR, ru_UA: ru-UA, war: wa-RR, zh_CN.GB2312: zh-GB +lang_map = te_IN: te-IN, es_AR: es-AR, es_419: es-LA, es_TX: es-TX, he_IL: he-IL, zh_CN: zh-CN, ar_EG: ar-EG, cs_CZ: cs-CZ, fa_IR: fa-IR, ms_MY: ms-MY, nl_NL: nl-NL, de_CH: de-CH, en_IT: en-IT, uz_UZ: uz-UZ, fr_CH: fr-CH, hi_IN: hi-IN, et_EE: et-EE, es_PE: es-PE, es_MX: es-MX, gl_ES: gl-ES, mn_MN: mn, sl_SI: sl, zh_TW: zh-TW, ast_ES: ast-ES, es_CL: es-CL, ja_JP: ja, lv_LV: lv, ro_RO: ro-RO, az_AZ: az-AZ, cy_GB: cy-GB, gu_IN: gu-IN, pl_PL: pl-PL, vep: ve-PP, en_BR: en-BR, en@ysv: en-YS, hu_HU: hu, ko_KR: ko-KR, pt_BR: pt-BR, zh_HK: zh-HK, zu_ZA: zu-ZA, en_MY: en-MY, ja-Hira: ja-HI, fi_FI: fi, vec: ve-CC, vi_VN: vi-VN, fr_FR: fr-FR, id_ID: id, zh_Hans: zh-Hans, en_DE: en-DE, en_GB: en-GB, el_GR: el-GR, uk_UA: uk-UA, az@latin: az-LA, de_AT: de-AT, uz@Latn: uz-LA, vls: vl-SS, ar_DZ: ar-DZ, bg_BG: bg, es_PY: es-PY, fy_NL: fy-NL, uz@Arab: uz-AR, ru_UA: ru-UA, war: wa-RR, zh_CN.GB2312: zh-GB [o:wekan:p:wekan:r:application] file_filter = imports/i18n/data/.i18n.json diff --git a/.vscode/launch.json b/.vscode/launch.json index 1cb8d89fa..5cdd3f3ef 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,45 +1,57 @@ { "version": "0.2.0", "configurations": [ - { - "type": "chrome", - "request": "launch", - "name": "Meteor: Chrome", - "url": "http://localhost:3000", - "webRoot": "${workspaceFolder}" + { + "type": "node", + "request": "launch", + "name": "Meteor: Node", + "runtimeExecutable": "meteor", + "runtimeArgs": [ + "--port=4000", + "--exclude-archs=web.browser.legacy,web.cordova", + "--raw-logs" + ], + "env": { + "WRITABLE_PATH": "/tmp/uploads", }, - { - "type": "node", - "request": "launch", - "name": "Meteor: Node", - "runtimeExecutable": "/home/wekan/.meteor/meteor", - "runtimeArgs": ["run", "--inspect-brk=9229"], - "outputCapture": "std", - "port": 9229, - "timeout": 60000 + "outputCapture": "std", + "restart": true, + "timeout": 60000 + }, + { + "type": "chrome", + "request": "launch", + "name": "Meteor: Chrome", + "url": "http://localhost:4000", + "sourceMapPathOverrides": { + "meteor://💻app/*": "${workspaceFolder}/*" }, - { - "type": "node", - "request": "launch", - "name": "Test: Node", - "runtimeExecutable": "meteor", - "runtimeArgs": [ - "test", - "--inspect-brk=9229", - "--port=4040", - "--exclude-archs=web.browser.legacy,web.cordova", - "--driver-package=meteortesting:mocha", - "--settings=settings.json" - ], - "outputCapture": "std", - "port": 9229, - "timeout": 60000 - } + "userDataDir": "${env:HOME}/.vscode/chrome" + }, + { + "type": "node", + "request": "launch", + "name": "Test: Node", + "runtimeExecutable": "meteor", + "runtimeArgs": [ + "test", + "--port=4040", + "--exclude-archs=web.browser.legacy,web.cordova", + "--driver-package=meteortesting:mocha", + "--settings=settings.json", + "--raw-logs" + ], + "env": { + "TEST_WATCH": "1" + }, + "outputCapture": "std", + "timeout": 60000 + } ], "compounds": [ - { - "name": "Meteor: All", - "configurations": ["Meteor: Node", "Meteor: Chrome"] - } + { + "name": "Meteor: All", + "configurations": ["Meteor: Node", "Meteor: Chrome"] + } ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c5975f18..495be0185 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,855 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming WeKan ® release + +This release adds the following updates: + +- Updated Browser compatibility matrix, adding Iris browser at RISC OS Direct, and fixing links. + [Part1](https://github.com/wekan/wekan/commit/db5346fc5c7407160f381c0fcf4a87204206ed55), + [Part2](https://github.com/wekan/wekan/commit/05d1736f5f21e93e83b2e25029c6cab6c5106398). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.84 2025-03-23 WeKan ® release + +This release adds the following new features: + +- [Time on minicard for Start/End/Due Date](https://github.com/wekan/wekan/pull/5712). + Thanks to Rayene123. + +and adds the following updates: + +- [Added developer docs about Login code](https://github.com/wekan/wekan/commit/c0e4e01deb936653df69b4fd21598ac27cd349a0). + Thanks to xet7. +- Updated dependencies. + [Part 1](https://github.com/wekan/wekan/pull/5718), + [Part 2](https://github.com/wekan/wekan/commit/bb6ac70f63b6f3568b7c943417c698615936a956). + Thanks to developers of dependencies. + +and fixes the following bugs: + +- [Fixed typo at Shortcuts, now became visible translations of assignees visibility 1-9 shortcuts](https://github.com/wekan/wekan/commit/4510ddda1507bc775b9523d3673adba48d7a8385). + Thanks to xet7. +- [Fixed building OpenAPI docs](https://github.com/wekan/wekan/commit/a2911bc9c3bd94ef583388931d2cd354cc8657e3). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.83 2025-03-08 WeKan ® release + +This release adds the following updates: + +- [Adding Development information to readme](https://github.com/wekan/wekan/pull/5702). + Thanks to adam-fu. +- Updated GitHub actions. + [Part 1](https://github.com/wekan/wekan/pull/5703), + [Part 2](https://github.com/wekan/wekan/pull/5704). + +and fixes the following bugs: + +- [Removed siteurl from manifest to fix browser console error about not matching URL](https://github.com/wekan/wekan/commit/b402676079517e463ed291285f69c04126a00975). + Thanks to xet7. +- [Exception while invoking method 'copyCard' TypeError: Cannot read property 'name' of undefined](https://github.com/wekan/wekan/pull/5711). + Thanks to Firas-Git. +- [Comment out error message of non-existing Custom Field](https://github.com/wekan/wekan/commit/908a5fc60d5d574a36d4bfd496d3a16fd267ae75). + Thanks to xet7. +- [Reverted Docker changes of WeKan v7.68 to get WeKan Docker version working](https://github.com/wekan/wekan/commit/e7462ada12ec8edfd08d6c3b3a97a034211d51eb). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.82 2025-02-24 WeKan ® release + +v7.82 Docker version is broken: https://github.com/wekan/wekan/issues/5697 . Snap Candidate works. + +This release adds the following new features: + +- [Add possibility to use a token in place of ipaddress to access metrics route](https://github.com/wekan/wekan/pull/5682). + Thanks to salleman33. + +and adds the following updates: + +- [Updated dependencies](https://github.com/wekan/wekan/pull/5691). + Thanks to dependabot. +- [Updated requirements at docs](https://github.com/wekan/wekan/commit/148b81262d0d143460e881d645fefa6740aae40d). + Thanks to mueller-ma. +- [Updated dependencies](https://github.com/wekan/wekan/commit/666ee8403388f7d5e1a30cf0e53bc46a70bf1c40). + Thanks to developes of dependencies. +- [Fixed building WeKan. Updated dompurify. Forked Meteor 2.14 version of meteor-node-stubs to update elliptic](https://github.com/wekan/wekan/commit/18d0fa43275cd2955dd6416213e316ca08a62255). + Thanks to developers of depedencies and xet7. + +and fixes the following bugs: + +- [Added missing ) character](https://github.com/wekan/wekan/commit/563a508e269be87eb713e2888409525e1ba82001). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.81 2025-02-07 WeKan ® release + +This release adds the following new features: + +- [Helm Chart: Added secretManaged value for enabling or disabling the creation of secret by Helm](https://github.com/wekan/charts/pull/39). + Thanks to salleman33. + +and adds the following updates: + +- [Updated Docker Actions](https://github.com/wekan/wekan/pull/5670). + Thanks to dependabot. +- [Added Meteor 3.1 learning course to docs](https://github.com/wekan/wekan/commit/0c7e12c5e7f322bdbaaa61100e66153dd0b92e4d). + Thanks to producer of learning course. +- [Upgraded to MongoDB 6.0.20 at Snap Candidate](https://github.com/wekan/wekan/commit/b571f1c9530b899db75bf28a03c18277a9b77cb8). + Thanks to MongoDB developers. + +and fixes the following bugs: + +- [Fixed env variable METRICS_ACCEPTED_IP_ADDRESS to be same as at docs](https://github.com/wekan/wekan/commit/0b1e0bd39569175668c195b63dde91bf0e6f1b24). + Thanks to salleman33. +- [Fixed misspelling of hours at env variable setting LDAP_BACKGROUND_SYNC_INTERVAL](https://github.com/wekan/wekan/commit/36a307785369337a788499065f64175971878930). + Thanks to hubermam. +- [Helm Chart: Restore pod security context in deployment](https://github.com/wekan/charts/pull/40). + Thanks to adalinesimonian. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.80 2025-01-12 WeKan ® release + +This release fixes the following bugs: + +- [Fix card updating issues with ReactiveCache when using keyboard shortcuts](https://github.com/wekan/wekan/pull/5654). + Thanks to NadavTasher. +- [Fix assignee toggling keyboard shortcut to only toggle current board members](https://github.com/wekan/wekan/pull/5655). + Thanks to NadavTasher. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.79 2025-01-02 WeKan ® release + +This release adds the following new features: + +- [Add toggle for week-of-year in date displays (ISO 8601)](https://github.com/wekan/wekan/pull/5652). + Thanks to NadavTasher. +- [Assign members using keyboard shortcut Ctrl+Alt+(1-9)](https://github.com/wekan/wekan/pull/5653). + Thanks to NadavTasher. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.78 2024-12-31 WeKan ® release + +This release fixes the following bugs: + +- [Disable scrollbars on older versions of Chrome and Safari in "no vertical scrollbars" mode](https://github.com/wekan/wekan/pull/5644). + Thanks to NadavTasher. +- [Fix styling for vertical scrollbars toggle](https://github.com/wekan/wekan/pull/5645). + Thanks to NadavTasher. +- [Add additional archiving keyboard shortcut (added -)](https://github.com/wekan/wekan/pull/5646). + Thanks to NadavTasher. +- [Fix assign-self shortcut in shortcut help popup (different from actual shortcut)](https://github.com/wekan/wekan/pull/5647). + Thanks to NadavTasher. +- [Fix upper-case keyboard shortcuts & different language shortcuts getting triggered when shortcuts are disabled](https://github.com/wekan/wekan/pull/5648). + Thanks to NadavTasher. +- [Fix list header too wide in cleanlight and cleandark themes](https://github.com/wekan/wekan/pull/5649). + Thanks to NadavTasher. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.77 2024-12-30 WeKan ® release + +This release adds the following new features: + +- [Allow vertical scrollbars to be disabled (new preference)](https://github.com/wekan/wekan/pull/5643). + Thanks to NadavTasher. + +and fixes the following bugs: + +- [Enable keyboard shortcuts by default](https://github.com/wekan/wekan/pull/5639). + Thanks to NadavTasher. +- [Fix comment backgrounds in cleandark theme](https://github.com/wekan/wekan/pull/5640). + Thanks to NadavTasher. +- [Fix weird add checklist buttons in card details](https://github.com/wekan/wekan/pull/5641). + Thanks to NadavTasher. +- [Fix "SPACE" shortcut not working after recent fixes](https://github.com/wekan/wekan/pull/5642). + Thanks to NadavTasher. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.76 2024-12-30 WeKan ® release + +This release fixes the following bugs: + +- [Always handle the escape key when shortcuts are enabled](https://github.com/wekan/wekan/pull/5636). + Thanks to NadavTasher. +- [New Swimlane button visible, when there are no swimlanes at all](https://github.com/wekan/wekan/pull/5635). + Thanks to NadavTasher. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.75 2024-12-29 WeKan ® release + +This release fixes the following bugs: + +- [Change margins around keyboard shortcuts toggle to make it clearer, remove old toggle from mobile view](https://github.com/wekan/wekan/pull/5634). + Thanks to NadavTasher. +- [Fix Cannot save Layout settings](https://github.com/wekan/wekan/commit/407d018067a5398f0c8d50519096b921d744be68). + Thanks to tensor5g and xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.74 2024-12-25 WeKan ® release + +This release fixes the following bugs: + +- [Restore keyboard shortcuts, enable per-user toggle, fix Ctrl + C bug by checking the text selection range](https://github.com/wekan/wekan/pull/5628). + Thanks to NadavTasher. +- [Fixed keyboard shortcuts defaults, icons and texts to be more understandable](https://github.com/wekan/wekan/commit/955a46ca6016e75c0ac1b01e25f96f47c2844559). + Thanks to xet7. +- ["Auto List Width" is now at "List ☰ Set Width" popup](https://github.com/wekan/wekan/commit/a862486ec37fcd022619c7e45ad9ca615aa444ed). + Thanks to xet7. +- [Keyboard Shortcuts Enable/Disable is now at Right Sidebar, where already was list of Keyboard Shortcuts](https://github.com/wekan/wekan/commit/275ac445d0cd6f817dd2281aacc27ca7d30b17eb). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.73 2024-12-24 WeKan ® release + +This release adds the following updates: + +- [Changed the default maximum list width](https://github.com/wekan/wekan/pull/5614). + Thanks to NadavTasher. +- [Updated Developer Docs about docker compose](https://github.com/wekan/wekan/commit/3e3b629aa2a9efb43b1be8f57009c1d384b66ed8). + Thanks to sridharin2020 and xet7. +- [Hide support popup. It will be made editable later](https://github.com/wekan/wekan/commit/0332ef32980b24a0c4e108436eec5b112287c14b). + Thanks to xet7. +- [Hide Accessibility Settings at Admin Panel. It will be continued and added back later](https://github.com/wekan/wekan/commit/e70c51a1f033c8712771238e408cbf52487f07f5). + Thanks to xet7. + +and fixes the following bugs: + +- [Fix buggy behaviours in board dragscrolling](https://github.com/wekan/wekan/pull/5618). + Thanks to NadavTasher. +- [Revert back to have shortcut "c to archive" back for non-Persian keyboards](https://github.com/wekan/wekan/commit/ba0fdaef72393632ca80b42a3c5d2ee5f5e0c76e). + Thanks to hatl and xet7. +- Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible. + [Part 1](https://github.com/wekan/wekan/commit/5606414f8975fa0f75642d2e3a6b48c7559186f9), + [Part 2](https://github.com/wekan/wekan/commit/94391d4cde7aed6e37efc6a9127b23ef0c2bd323), + [Part 3](https://github.com/wekan/wekan/commit/8b73c702c39a1fd546e591a096d703a53577ffec). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.72 2024-12-08 WeKan ® release + +This release adds the following new features: + +- [Optional board list auto-width, Support for min & max width for lists](https://github.com/wekan/wekan/pull/5607). + Thanks to NadavTasher. + +and adds the following updates: + +- [Disabled syncing of old and unrelated docker containers between docker registries](https://github.com/wekan/wekan/commit/17d5fae7bbd96eb6721ad869802cc980c9791c7f). + Thanks to xet7. + +and fixes the following bugs: + +- [Fix in API user role is not considered](https://github.com/wekan/wekan/commit/c062bd63bbfceb3a96f23ea3e8696534694db54e). + Thanks to mohammadZahedian and xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.71 2024-12-05 WeKan ® release + +This release adds the following new features: + +- [To menu right top username, added Support, to have info about from where to get support](https://github.com/wekan/wekan/commit/46327f19a1c6d37f2e5591aa0cc2a882e4c56ee5). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.70 2024-12-04 WeKan ® release + +This release adds the following new features: + +- [Helm Chart: Allow to define securityContext for pod and containers](https://github.com/wekan/charts/pull/37). + Thanks to maitredede. +- [Move card to archive, add shortcut key ÷ for Persian keyboard](https://github.com/wekan/wekan/commit/80ea1782f935c74f1b7b1fd0fb7700ef9a39dc64). + Thanks to mohammadZahedian and xet7. + +and fixes the following bugs: + +- [Helm Chart: Service account token does not need to be mounted in op](https://github.com/wekan/charts/pull/38). + Thanks to maitredede. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.69 2024-12-02 WeKan ® release + +This release adds the following updates: + +- [Bump docker/metadata-action from 5.5.1 to 5.6.1](https://github.com/wekan/wekan/pull/5590). + Thanks to dependabot. +- [Updated dependencies](https://github.com/wekan/wekan/commit/9c87572f90f16fbdddb6a4dff3984e64acac20cc). + Thanks to developers of dependencies. +- [Updated Windows docs](https://github.com/wekan/wekan/commit/aa33ead7b2efd11bfd9e3f1fb94b564b6bdce119). + Thanks to xet7. +- [Update docker-compose.yml Keycloak part](https://github.com/wekan/wekan/pull/5597). + Thanks to NadavTasher. +- [Updated Keycloak etc login settings at start-wekan.bat and start-wekan.sh](https://github.com/wekan/wekan/commit/ab4c3bd2fc49e6fa82ec47dccdf9670110cddf98). + Thanks to xet7. +- [Updated release scripts](https://github.com/wekan/wekan/commit/79f7ec27159825db9206f385d9281fd68a2aacf5). + Thanks to xet7. + +and fixes the following bugs: + +- [Fix issue with comments not showing when using Exodark Theme](https://github.com/wekan/wekan/pull/5595). + Thanks to walster001. +- [Change archive-card shortcut to backtick for better ergonomics](https://github.com/wekan/wekan/pull/5589). + Thanks to malteprang. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.68 2024-11-24 WeKan ® release + +This release adds the following updates: + +- [Speed improvements to building WeKan x86_64 Dockerfile. Reduced Docker image size from 1 GB to 0.5 GB. Using Ubuntu 24.04 Docker base image](https://github.com/wekan/wekan/pull/5588). + Thanks to NadavTasher. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.67 2024-11-21 WeKan ® release + +This release adds the following new features: + +- [Re-introduce list auto-width feature, Reverted scrollbar hiding, Fixed transparent sidebar bug](https://github.com/wekan/wekan/pull/5586). + Thanks to NadavTasher. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.65 2024-11-20 WeKan ® release + +This release fixes the following bugs: + +- [Revert some scrollbar, sidebar and list width changes](https://github.com/wekan/wekan/commit/096fe130f68e0d8d082d309901c75ed04285b7e2). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.64 2024-11-20 WeKan ® release + +This release fixes the following bugs: + +- [Add missing semicolon in keyboard.js](https://github.com/wekan/wekan/pull/5580). + Thanks to NadavTasher. +- [Make lists fill up space evenly, change listWidth to max-width](https://github.com/wekan/wekan/pull/5581). + Thanks to NadavTasher. +- [Change way of disabling scrollbars, disable swimlane scrollbars](https://github.com/wekan/wekan/pull/5583). + Thanks to NadavTasher. +- [Improve list auto-width, fix regressions](https://github.com/wekan/wekan/pull/5584). + Thanks to NadavTasher. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.63 2024-11-16 WeKan ® release + +This release adds the following new features: + +- [Always close sidebar when user clicks ESC](https://github.com/wekan/wekan/pull/5571). + Thanks to NadavTasher. +- [Added 'n' shortcut for adding new minicards to current list](https://github.com/wekan/wekan/pull/5570). + Thanks to NadavTasher. +- [Patch to allow shortcuts to work when another keyboard layout is used](https://github.com/wekan/wekan/pull/5574). + Thanks to NadavTasher. + +and adds the following updates: + +- [Updated scaling docs](https://github.com/wekan/wekan/commit/92af6f71d9c60acbca8f65c7ec1822818186639c). + Thanks to xet7. + +and fixes the following bugs: + +- [Fix some text alignment issues when using RTL languages](https://github.com/wekan/wekan/pull/5572). + Thanks to NadavTasher. +- [Hide scrollbars where they interrupt](https://github.com/wekan/wekan/pull/5573). + Thanks to NadavTasher. +- [Disable sidebar showing when filtering using keyboard shortcut](https://github.com/wekan/wekan/pull/5575). + Thanks to NadavTasher. +- [Change move-to-archive keyboard shortcut to '-', because of Ctrl + C shortcut](https://github.com/wekan/wekan/pull/5576). + Thanks to NadavTasher. +- [Potential bug(fix?) - Add assign-self keyboard shortcut (old shortcut actually adds)](https://github.com/wekan/wekan/pull/5577). + Thanks to NadavTasher. +- [Sidebar style overhaul - absolute positioning, weird style fixes, disable sidebar scrollbar](https://github.com/wekan/wekan/pull/5578). + Thanks to NadavTasher. +- [Revert adding more stack size](https://github.com/wekan/wekan/commit/edb73982953d63066494dbc096bdeb62f7fe730b). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.62 2024-11-15 WeKan ® release + +This release adds the following new features: + +- [Added comment section on card details to avoid loading the card comment activities from the server](https://github.com/wekan/wekan/pull/5566). + Thanks to mfilser. +- [Checklist items hide per card](https://github.com/wekan/wekan/pull/5567). + Thanks to mfilser. +- [Checklist multiline insert (many checklist items at once)](https://github.com/wekan/wekan/pull/5568). + Thanks to mfilser. +- [Each checklist can now be configured to hide checked checklist items](https://github.com/wekan/wekan/pull/5569). + Thanks to mfilser. + +and adds the following updates: + +- [Copied updated Docs from wiki to WeKan repo](https://github.com/wekan/wekan/commit/559251eb0d8aea6a714f14224497d0a25c7a3864). + Thanks to xet7. +- [Updated docs about Linked Cards](https://github.com/wekan/wekan/commit/96627540da0b6e12890ee1660f4ff0f469bb0e25). + Thanks to xet7. +- [Add docs about how at LXC/LXD Fix: System does not fully support snapd](https://github.com/wekan/wekan/commit/508bbb37ce960c88c2a7d0b2cb35e5d8790df19f). + Thanks to xet7. +- [Copied from Sandstorm developer discussions to docs fix for running Sandstorm at Ubuntu 24.04](https://github.com/wekan/wekan/commit/8ac9353c5313402e00160843ca57405ebeb128cb). + Thanks to xet7. +- [Update ldap-sync.py reference](https://github.com/wekan/wekan/pull/5555). + Thanks to emmanuel-ferdman. +- [Updated dependencies](https://github.com/wekan/wekan/commit/b24acefa6f6696b702f2c3ceb28d6d6290017bb2). + Thanks to developers of dependencies. +- [Update Snap Candidate to MongoDB 6.0.19. Updated WeKan Windows version numbers. Added Cron docs](https://github.com/wekan/wekan/commit/fb4d95672e37d849ff52954c79eede2af7d2a509). + Thanks to xet7. +- [Updated docs sidebar](https://github.com/wekan/wekan/commit/5448a1569113142ab5b2440763c9642c88e86ba4)- + Thanks to xet7. +- [Updated Docker base image to Ubuntu 24.10](https://github.com/wekan/wekan/commit/7a34bc3eb03943506abe5e54501d1906fc16540b). + Thanks to Ubuntu developers. + +and fixes the following bugs: + +- [Add more stack size](https://github.com/wekan/wekan/commit/324be07b859937966f98feb2aeea8f344c689bb0). + Thanks to xet7. +- [Fix Warning: missing space before text for line 210 of jade file client/components/activities/activities.jade](https://github.com/wekan/wekan/commit/a27f8ecfa9971740a019a955d3f8d0e5a5dd8dab). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.61 2024-10-23 WeKan ® release + +This release adds the following updates: + +- [Testing packages without versions from, for upcoming upgrades](https://github.com/wekan/wekan/commit/6e8e581ceb330a7756403efa1f8bbe5a198ff111). + Thanks to xet7. +- [Updated to MongoDB 6.0.18 at Snap Candidate](https://github.com/wekan/wekan/commit/9d92a79a284147380eb08a0c011a8815dae5209b). + Thanks to MongoDB developers. + +and fixes the following bugs: + +- [Try 3 to fix apparmor denied in syslog at Snap Candidate. Changed MongoDB --host back to --bind_ip](https://github.com/wekan/wekan/commit/6c54b38cdfd14959f4449cea0c3150bf86708ecd). + Thanks to webenefits and xet7. +- [Try 4 to fix apparmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/ecdfc681700633d8688ca709f36924ceced96af8). + Thanks to webenefits and xet7. +- [Try 5 to fix apparmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/e32d2daa4567728e4dd5048c9c575edcac1372da). + Thanks to webenefits and xet7. +- [Try 6 to fix apparmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/5aa38c2e40429f06aac8bc1bc0b5ac30c5344c6f). + Thanks to webenefits and xet7. +- [Renaming list shows in activities](https://github.com/wekan/wekan/pull/5549). + Thanks to AdenKoziol. +- [Fixing opening cards and slow performance of closing cards by reverting switching kadira:flow-router to ostrio:flow-router-extra](https://github.com/wekan/wekan/pull/5552). + Thanks to mfilser. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.60 2024-09-23 WeKan ® release + +This release adds the following updates: + +- [Added to Docs CNAME DNS info about CloudFlare and Sandstorm](https://github.com/wekan/wekan/commit/b6e7e03c95dfa68c8de6922ffb7663631e476d91). + Thanks to xet7. +- [Switch from kadira:flow-router to ostrio:flow-router-extra](https://github.com/wekan/wekan/pull/5530). + Thanks to imajus. +- [Removed outdated dependency page. To be seen, does anything break](https://github.com/wekan/wekan/commit/a9d41217bd8c797b28510efec3e21a92d7ec4bba). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.59 2024-09-04 WeKan ® release + +This release tries to fix the following bugs: + +- [Try 2 to fix apparmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/0a1074ca6e95728b0da30bd701ba783f2a4bdd98). + Newest MongoDB uses --host, not anymore --bind_ip. + Thanks to webenefits and xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.58 2024-09-04 WeKan ® release + +This release tries to fix the following bugs: + +- [Try to fix apparrmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/a6c8833f652ee84284da2195bf79fb8edaa818b7). + Thanks to webenefits and xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.57 2024-09-04 WeKan ® release + +This release adds the following updates: + +- [Rework fix for mobile devices to incorporate all themes/list headers](https://github.com/wekan/wekan/pull/5517). + Thanks to walster001. +- [Update templates to use label instead of span](https://github.com/wekan/wekan/pull/5519). + Thanks to novashdima. +- [Large updates to UI CSS](https://github.com/wekan/wekan/pull/5523). + Thanks to walster001. +- [Updated dependencies](https://github.com/wekan/wekan/commit/1610eff0e9212fdf6423ce5579b7bdaf8e45950b). + Thanks to developers of dependencies. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.56 2024-08-21 WeKan ® release + +This release adds the following updates: + +- Updated Browser compatibility matrix. + [Part 1](https://github.com/wekan/wekan/commit/cab285c34d1f159120ccd48b17a897e95bd48471), + [Part 2](https://github.com/wekan/wekan/commit/ec534c8cca3f0256091c2d870c128d26033d40ad). +- [Updated code of conduct](https://github.com/wekan/wekan/commit/cae6f38b8070cfcc2f2529027f7e66b965a19f05). + Thanks to xet7. +- [Updated Docker build actions](https://github.com/wekan/wekan/pull/5505). + Thanks to dependabot. +- Updated docs for building custom Docker image. + [Part 1](https://github.com/wekan/wekan/issues/5509), + [Part 2](https://github.com/wekan/wekan/commit/6d6d51310e4168cd0fc75f550d3af35df9ccef9f), + [Part 3](https://github.com/wekan/wekan/commit/a94cfd5b91d29f81e51e67ed03ba84f820d4892a). +- [Update mongodb chart version to 15.6.18 and enables wekan to be deployed on an OpenShift cluster](https://github.com/wekan/charts/pull/36). + Thanks to fobrice. +- [Upgraded Snap Candidate MongoDB to 6.0.17](https://github.com/wekan/wekan/commit/d63d445b7d5da48c05d0fbd4e560c00283b1aef7). + Thanks to MongoDB developers. + +and fixes the following bugs: + +- [Fix ModernDark Mobile View List Titles](https://github.com/wekan/wekan/pull/5503). + Thanks to walster001. +- [Fix apparmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/c3909edc5ee7a82b694b19ca7e022cbdfd12affd). + Thanks to webenefits and xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.55 2024-08-08 WeKan ® release + +This release fixes the following bugs: + +- [Fix board backgrounds not showing correctly after v7.54](https://github.com/wekan/wekan/pull/5501). + Thanks to walster001. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.54 2024-08-07 WeKan ® release + +This release adds the following new features: + +- [Helm Chart: Add Support for Overriding Image Registry in Airgapped Environments](https://github.com/wekan/charts/pull/35). + Thanks to geilername. +- [PWA, move to standalone (standard) to display the status bar](https://github.com/wekan/wekan/pull/5484) + Thanks to mfilser. +- [Added info how with Caddy webserver config, PWA and Android app override icons, showing toolbars, etc](https://github.com/wekan/wekan/commit/55fc342f6d90d8e30b70a8903ecead1c4370bd89). + Thanks to xet7. + +and fixes the following bugs: + +- [Don't set background image in .board-canvas too](https://github.com/wekan/wekan/pull/5485). + Thanks to mfilser. +- [Bugfix, variable "color" didn't exist](https://github.com/wekan/wekan/pull/5486). + Thanks to mfilser. +- [Little opacity to minicards to see the background image a little bit](https://github.com/wekan/wekan/pull/5487). + Thanks to mfilser. +- [Remove attachment storage name from attachment list](https://github.com/wekan/wekan/pull/5488). + Thanks to mfilser. +- [Attachment popup back was broken since new attachment viewer, now fixed](https://github.com/wekan/wekan/pull/5489). + Thanks to mfilser. +- [Change Meteor.user() to ReactiveCache.getCurrentUser()](https://github.com/wekan/wekan/pull/5490). + Thanks to mfilser. +- [Fix empty parentId in cards](https://github.com/wekan/wekan/pull/5491). + Thanks to mfilser. +- [Sidebar xmark icon, add padding and background color](https://github.com/wekan/wekan/pull/5492). + Thanks to mfilser. +- [Board view, first column a bit smaller to save screen space](https://github.com/wekan/wekan/pull/5493). + Thanks to mfilser. +- [Minicard, show creator, defaultValue of schema and other code is now the same](https://github.com/wekan/wekan/pull/5494). + Thanks to mfilser. +- [Editor, Bugfix, copy text is now at each editor (textarea) again](https://github.com/wekan/wekan/pull/5495). + Thanks to mfilser. +- [Bugfix, Cards Count on mobile view was missing](https://github.com/wekan/wekan/pull/5496). + Thanks to mfilser. +- [ListHeader, simpler code logic at collapsed if conditions](https://github.com/wekan/wekan/pull/5497). + Thanks to mfilser. +- [Bugfix, edit description didn't work if it was clicked](https://github.com/wekan/wekan/pull/5498). + Thanks to mfilser. +- [Fix LDAP login fails after upgrade](https://github.com/wekan/wekan/commit/a4169f3da773e4fd961acd0266260085a753cdab). + Thanks to juppees and xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.53 2024-08-03 WeKan ® release + +This release adds the following new features: + +- [Added Dragscroll to scroll the board](https://github.com/wekan/wekan/pull/5477). + Click on an empty space in the board, hold the left mouse and move left and right + to scroll the board easily. + Thanks to mfilser. + +and adds the following updates: + +- [Updated release script: New install webpage location](https://github.com/wekan/wekan/commit/5e639a7c2d6dc1182ba95e44875ac8a6798a62be). + Thanks to xet7. +- [Updated dependencies](https://github.com/wekan/wekan/commit/3f9ae57144dc9befd674c784896d68b5db9df146). + Thanks to developers of dependencies. +- [Copied changes from wiki to docs](https://github.com/wekan/wekan/commit/aaca60b6760cc84b56a24fc15c93f23b4a34f06e). + Thanks to xet7. +- [Updated Snap Candidate to MongoDB 6.0.16](https://github.com/wekan/wekan/commit/1af1844f37d17f9f54ca358ccf0f44eed1dfbef4). + Thanks to MongoDB developers. + +and fixes the following bugs: + +- [Board Menu Popup's were opened twice because of 2 same event creation](https://github.com/wekan/wekan/pull/5478). + Thanks to mfilser. +- [Fixing of "mode is undefined" on first activity component creation](https://github.com/wekan/wekan/pull/5479). + Thanks to mfilser. +- [Changing card color now closes the popup and doesn't refresh the whole board page](https://github.com/wekan/wekan/pull/5480). + Thanks to mfilser. +- [Fix dragscroll package name](https://github.com/wekan/wekan/commit/45674806d78fddb8a3b8a75890e5059cc1a680ea). + Thanks to xet7. +- [Reducing card size in database if no planning poker was started](https://github.com/wekan/wekan/pull/5481). + Thanks to mfilser. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.52 2024-08-03 WeKan ® release + +This release adds the following new features: + +- [Helm Chart: Add option to set resource limits for initContainer](https://github.com/wekan/charts/pull/33). + Thanks to mreichelt-dicos. +- [Helm Chart: Fixes for mongodb persistence. Please test is this correct](https://github.com/wekan/charts/commit/7efb071dd91d76c3971e1865fd18f9d43d8c6891). + Thanks to emoritzx. +- [Helm Chart: Added info about rarely used running WeKan at subpath](https://github.com/wekan/charts/commit/7d4176c7b328c5477c1fa29a323574aac78616a9). + Thanks to emoritzx. + +and adds the following updates: + +- Updated dependencies. + [Part 1](https://github.com/wekan/wekan/pull/5460), + [Part 2](https://github.com/wekan/wekan/pull/5464), + [Part 3](https://github.com/wekan/wekan/pull/5460), + [Part 4](https://github.com/wekan/wekan/pull/5469), + [Part 5](https://github.com/wekan/wekan/pull/5470), + [Part 6](https://github.com/wekan/wekan/pull/5471), + [Part 7](https://github.com/wekan/wekan/pull/5473). + Thanks to dependabot. +- Added RepoCloud SaaS. + [Part 1](https://github.com/wekan/wekan/commit/21d6dfd79090f9885635f55537bd9fa1ef8539e1), + [Part 2](https://github.com/wekan/wekan/commit/e663ce038af397f547e8823d61ce5dc2e3cea84d), + [Part 3](https://github.com/wekan/wekan.github.io/commit/e9e0550824cdda31daae42df7c497fbd037fd78f). + Thanks to RepoCloud. +- [Updated WeKan app webmanifest](https://github.com/wekan/wekan/commit/745618626535743938b9d2e8c88afe6345807a85). + Thanks to xet7. +- [Revert forking of ldapjs](https://github.com/wekan/wekan/commit/c89f3ba3da6512169e033d76377a9190b35a92d2). + Thanks to xet7. + +and fixes the following bugs: + +- [Fixes to Clean light and Clean dark themes](https://github.com/wekan/wekan/pull/5458). + Thanks to abramchikd. +- [Activities, adding back "created at" field](https://github.com/wekan/wekan/pull/5476). + Thanks to mfilser. +- [Fix typos at attachments code](https://github.com/wekan/wekan/commit/de3bc9cb4d20590c45ff72ef7749d830ea3fc16c). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.51 2024-06-27 WeKan ® release + +This release adds the following updates: + +- [Updated dependencies](https://github.com/wekan/wekan/pull/5452). + Thanks to dependabot. +- Moved docs from wiki to wekan repo docs directory, organized to subdirectories. Organizing and updating in progress. + [Part 1](https://github.com/wekan/wekan/commit/1961e22cbd51e83aa131c8b092c7d43475a021eb), + [Part 2](https://github.com/wekan/wekan/commit/ce89ff48331a27ffb42d021833c78df3a462b9db), + [Part 3](https://github.com/wekan/wekan/commit/449c02c42a0183a49592ada89bdfb8f25e5db903), + [Part 4](https://github.com/wekan/wekan/commit/0fb2f7fdd6b6cb828ab4ea534204a5b834d2e19a), + [Part 5](https://github.com/wekan/wekan/commit/e9c1c620eb938349c30761497066daf41cdcfc19), + [Part 6](https://github.com/wekan/wekan/commit/6b7b66801b716e1d0bf2548b18eed4ed4e354f2d), + [Part 7](https://github.com/wekan/wekan/commit/1cfaddff9cd4fe84fb74c80d1585f2a5dd65f5ca), + [Part 8](https://github.com/wekan/wekan/commit/057ac4031eaa912b849c637e163f4dffa79a9329), + [Part 9](https://github.com/wekan/wekan/commit/52375df78380bbe3407b51dc986baaf6f31f40e4), + [Part 10](https://github.com/wekan/wekan/commit/00a56f6aaa0c2bcd24ca8829a0718b45e7cedf04), + [Part 11](https://github.com/wekan/wekan/commit/c863428aa2597457fc4931e7b1bdd75d6cc2610b). + Thanks to xet7. + +and fixes the following bugs: + +- [Fix ModernDark Cards not showing correctly](https://github.com/wekan/wekan/pull/5455). + Thanks to walster001. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.50 2024-06-22 WeKan ® release + +This release adds the following new features: + +- [Added "Clean dark" and "Clean light" themes that are more clean and modern looking](https://github.com/wekan/wekan/pull/5449). + Thanks to abramchikd. + +and adds the following updates: + +- Updated docs for WeKan version for Windows. + [Part 1](https://github.com/wekan/wekan/commit/9b428150a4fb9efdcb2ae9d3bb59d0da29529e69), + [Part 2](https://github.com/wekan/wekan/commit/3c35a6400b88e071a474a552ee941892522c8d59). + Thanks to xet7. +- Updated dependencies. + [Part 1](https://github.com/wekan/wekan/pull/5446), + [Part 2](https://github.com/wekan/wekan/commit/99a8afd6c39591e0d85fe5f55ebc3016b9e7f011). + Thanks to developers of dependencies. + +and fixes the following bugs: + +- [Task card may overflow below the screen when maximized, making the bottom part not viewable](https://github.com/wekan/wekan/pull/5443). + Thanks to Hekatomb. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.49 2024-06-11 WeKan ® release + +This release adds the following updates: + +- [WeKan new release version number from wiki to WeKan repo docs](https://github.com/wekan/wekan/commit/e5c7650fc8eb5c3fcc6216f12e806ceb56fd94d9). + Thanks to xet7. +- Updated dependencies. + [Part 1](https://github.com/wekan/wekan/pull/5430), + [Part 2](https://github.com/wekan/wekan/pull/5441). + Thanks to dependabot. + +and fixes the following bugs: + +- [Bugfix: Strikethrough inactive Teams and orginizations logic was inverted](https://github.com/wekan/wekan/pull/5435). + Thanks to Hekatomb. +- [Changed back to original icon of Edit Description](https://github.com/wekan/wekan/commit/e3214c874ec9369ab6b865154f7964da8ec55f45). + Thanks to saschafoerster, C0rn3j and xet7. +- [Fill out Org and Team in adminReports](https://github.com/wekan/wekan/pull/5440). + Thanks to Hekatomb. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.48 2024-06-06 WeKan ® release + +This release adds the following updates: + +- [Updated release scripts](https://github.com/wekan/wekan/commit/4a9d881e47751ec49d24af5bf4fd1c5452ceb194). + Thanks to xet7. +- Add changes from wiki to docs. + [Part 1](https://github.com/wekan/wekan/commit/13be8160d5b6a894c674d04c37ff9e653e7bd4b0), + [Part 2](https://github.com/wekan/wekan/commit/e65a8c90177cd948ca8212486a365b65cd7d5372). + Thanks to xet7. + +and fixes the following bugs: + +- [Fix Admin Panel pages Organizations and Teams, where HTML Tables were broken](https://github.com/wekan/wekan/commit/36bb5e099ed9f1f88c0399867bd76f040467745c). + Thanks to Hekatomb and xet7. +- [Try to show more of title of collapsed list](https://github.com/wekan/wekan/commit/ec0e88ad2e914437b4767456a160f2c1138fc5f2). + Thanks to C0rn3j and xet7. +- [Allow Normal user to add new swimlane, list and label](https://github.com/wekan/wekan/commit/04b995e77fdb5abc186e02482a75aba6a5cf0759). + Thanks to RyanHecht, norrig and xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.47 2024-06-03 WeKan ® release + +This release adds the following updates: + +- [Update Docker base images to Ubuntu 24.04](https://github.com/wekan/wekan/commit/79e2001708b5110b26cf54b15bbbf90f7977fe90). + Thanks to xet7. +- [Updated to MongoDB 6.0.15 at Snap Candidate](https://github.com/wekan/wekan/commit/4e2a8735bc2e449a2a3c949d042fb625052a1152). + Thanks to MongoDB developers. +- [Updated release scripts](https://github.com/wekan/wekan/commit/2c9c9c43561093801004f0268d58b29d9a10b570). + Thanks to xet7. + +and fixes the following bugs: + +- [Only show Board name edit button to BoardAdmin](https://github.com/wekan/wekan/commit/5e2b423ef87c62a70a6b08abd2f185fd560f391f). + Thanks to xet7. +- [Fix Edit Description button is wildly out of place](https://github.com/wekan/wekan/commit/1f2fb2ccce38e9cac348f1c459784d6e5a949ded). + Thanks to C0rn3j and xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.46 2024-06-03 WeKan ® release + +This release adds the following updates: + +- [Update ukrainian translation](https://github.com/wekan/wekan/pull/5405). + Thanks to novashdima. +- [Updated GitHub issue template for issue instructions to be more visible](https://github.com/wekan/wekan/commit/5124265142c94d5044b81f81eaaa9c3bc01cef58). + Thanks to xet7. +- [For development, only recommend Debian 12 amd64, because Sandstorm works at Debian 12. Sandstorm does not work at Ubuntu 24.04](https://github.com/wekan/wekan/commit/1bd30bc12129be8cc8a633a561bb8a5be76823d7). + Thanks to xet7. Related https://github.com/sandstorm-io/sandstorm/issues/3712 + +and fixes the following bugs: + +- [Optimize SVGs and PNGs to save 550KB](https://github.com/wekan/wekan/pull/5403). + Thanks to C0rn3j. +- [Swap deprecated egrep for grep -E](https://github.com/wekan/wekan/pull/5404). + Thanks to C0rn3j. +- [Remove notification while copying board](https://github.com/wekan/wekan/pull/5412). + Thanks to e-gaulue. +- [Fixed loading of cards if there are more than 20 of them on one swimlane](https://github.com/wekan/wekan/pull/5417). + Thanks to novashdima. +- [Devcontainer, reduce image size and other necessary changes for development](https://github.com/wekan/wekan/pull/5418). + Thanks to mfilser. +- [Dockerfile production and dev same build](https://github.com/wekan/wekan/pull/5419). + Thanks to mfilser. +- [Remove second created at on activities](https://github.com/wekan/wekan/pull/5420). + Thanks to mfilser. +- [Fix Export CSV/TSV from Board create unhandled Exception](https://github.com/wekan/wekan/pull/5424). + Thanks to Dexus. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.45 2024-05-06 WeKan ® release + +This release adds the following updates: + +- [Update Docker base container to Ubuntu 24.04, and update software versions](https://github.com/wekan/wekan/commit/63117e87e759af965c8eeceaaa41f52815630d20). + Thanks to developers of dependencies. +- [Updated dependencies](https://github.com/wekan/wekan/pull/5392). + Thanks to developers of dependencies. + +and fixes the following bugs: + +- [Fix display of tables with a large number of rows](https://github.com/wekan/wekan/pull/5393). + Thanks to novashdima. +- [Fix white List color and define Silver in CSS instead of leaving it unset](https://github.com/wekan/wekan/pull/5400). + Thanks to C0rn3j. +- [Allow silver color to be set in List and Swimlane](https://github.com/wekan/wekan/pull/5401). + Thanks to C0rn3j. +- [Fix Can't set a Due Date that has a leading zero in time, errors with invalid time](https://github.com/wekan/wekan/commit/9cebee734740790145ca574c539ccebd067cee7e). + Thanks to C0rn3j and xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v7.44 2024-04-26 WeKan ® release + +This release adds the following new features: + +- [Collapse Lists](https://github.com/wekan/wekan/commit/a601ba542aebefdfa8b5d683d22405ab3d5f8569). + Thanks to xet7. +- [Collapse Swimlanes. In Progress, does not work yet, not visible yet](https://github.com/wekan/wekan/commit b704d58f0f3cf5e7785b79d5a6c9f6c63da4159c). + Thanks to xet7. + +and fixes the following bugs: + +- [Fix board not visible at Collapse Lists](https://github.com/wekan/wekan/commit/e6476319bcb06cc71fa0eefa0a608ec3a7b89767). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + # v7.43 2024-04-18 WeKan ® release This release adds the following updates: diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index f639fe496..ab3b34b15 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -11,7 +11,7 @@ For all code at WeKan GitHub Organization https://github.com/wekan ## Private reports -- Email support (at) wekan.team using [this PGP public key](support-at-wekan.team_pgp-publickey.asc) if possible +- Email support@wekan.team - Security issues: [SECURITY.md](SECURITY.md) - License violations - Anything private, sensitive or negative diff --git a/Dockerfile b/Dockerfile index 431eb9046..64a4e921f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,8 @@ -FROM --platform=linux/amd64 ubuntu:23.10 as wekan -LABEL maintainer="wekan" \ - org.opencontainers.image.ref.name="ubuntu" \ - org.opencontainers.image.version="23.10" \ - org.opencontainers.image.source="https://github.com/wekan/wekan" - -# 2022-09-04: -# - above "--platform=linux/amd64 ubuntu:22.04 as wekan" is needed to build Dockerfile -# correctly on Mac M1 etc, to not get this error: -# https://stackoverflow.com/questions/71040681/qemu-x86-64-could-not-open-lib64-ld-linux-x86-64-so-2-no-such-file-or-direc +FROM ubuntu:24.04 +LABEL maintainer="wekan" +LABEL org.opencontainers.image.ref.name="ubuntu" +LABEL org.opencontainers.image.version="24.04" +LABEL org.opencontainers.image.source="https://github.com/wekan/wekan" # 2022-04-25: # - gyp does not yet work with Ubuntu 22.04 ubuntu:rolling, @@ -16,19 +11,17 @@ LABEL maintainer="wekan" \ # 2021-09-18: # - Above Ubuntu base image copied from Docker Hub ubuntu:hirsute-20210825 # to Quay to avoid Docker Hub rate limits. - -# Set the environment variables (defaults where required) -# DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303 -# ENV BUILD_DEPS="paxctl" ARG DEBIAN_FRONTEND=noninteractive -ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \ +ENV BUILD_DEPS="apt-utils gnupg gosu wget bzip2 g++ curl libarchive-tools build-essential git ca-certificates python3" + +ENV \ DEBUG=false \ NODE_VERSION=v14.21.4 \ - METEOR_RELEASE=METEOR@2.13.3 \ + METEOR_RELEASE=METEOR@2.14 \ USE_EDGE=false \ METEOR_EDGE=1.5-beta.17 \ - NPM_VERSION=9.8.1 \ + NPM_VERSION=6.14.17 \ FIBERS_VERSION=4.0.1 \ ARCHITECTURE=linux-x64 \ SRC_PATH=./ \ @@ -165,7 +158,7 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build- WRITABLE_PATH=/data \ S3="" -# NODE_OPTIONS="--max_old_space_size=4096" \ +# NODE_OPTIONS="--max_old_space_size=4096" #--------------------------------------------- # == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ==== @@ -176,67 +169,64 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build- # Copy the app to the image COPY ${SRC_PATH} /home/wekan/app +# Install OS RUN < { - let mode = this.data().mode; - const capitalizedMode = Utils.capitalize(mode); - let searchId; - if (mode === 'linkedcard' || mode === 'linkedboard') { - searchId = Utils.getCurrentCard().linkedId; - mode = mode.replace('linked', ''); - } else if (mode === 'card') { - searchId = Utils.getCurrentCardId(); - } else { - searchId = Session.get(`current${capitalizedMode}`); - } - const limit = this.page.get() * activitiesPerPage; - const user = ReactiveCache.getCurrentUser(); - const hideSystem = user ? user.hasHiddenSystemMessages() : false; - if (searchId === null) return; - - this.subscribe('activities', mode, searchId, limit, hideSystem, () => { - this.loadNextPageLocked = false; - - // TODO the guard can be removed as soon as the TODO above is resolved - if (!sidebar) return; - // If the sibear peak hasn't increased, that mean that there are no more - // activities, and we can stop calling new subscriptions. - // XXX This is hacky! We need to know excatly and reactively how many - // activities there are, we probably want to denormalize this number - // dirrectly into card and board documents. - const nextPeakBefore = sidebar.callFirstWith(null, 'getNextPeak'); - sidebar.calculateNextPeak(); - const nextPeakAfter = sidebar.callFirstWith(null, 'getNextPeak'); - if (nextPeakBefore === nextPeakAfter) { - sidebar.callFirstWith(null, 'resetNextPeak'); + let mode = this.data()?.mode; + if (mode) { + const capitalizedMode = Utils.capitalize(mode); + let searchId; + const showActivities = this.showActivities(); + if (mode === 'linkedcard' || mode === 'linkedboard') { + const currentCard = Utils.getCurrentCard(); + searchId = currentCard.linkedId; + mode = mode.replace('linked', ''); + } else if (mode === 'card') { + searchId = Utils.getCurrentCardId(); + } else { + searchId = Session.get(`current${capitalizedMode}`); } - }); + const limit = this.page.get() * activitiesPerPage; + if (searchId === null) return; + + this.subscribe('activities', mode, searchId, limit, showActivities, () => { + this.loadNextPageLocked = false; + + // TODO the guard can be removed as soon as the TODO above is resolved + if (!sidebar) return; + // If the sibear peak hasn't increased, that mean that there are no more + // activities, and we can stop calling new subscriptions. + // XXX This is hacky! We need to know excatly and reactively how many + // activities there are, we probably want to denormalize this number + // dirrectly into card and board documents. + const nextPeakBefore = sidebar.callFirstWith(null, 'getNextPeak'); + sidebar.calculateNextPeak(); + const nextPeakAfter = sidebar.callFirstWith(null, 'getNextPeak'); + if (nextPeakBefore === nextPeakAfter) { + sidebar.callFirstWith(null, 'resetNextPeak'); + } + }); + } }); }, loadNextPage() { @@ -54,14 +56,26 @@ BlazeComponent.extendComponent({ this.loadNextPageLocked = true; } }, -}).register('activities'); - -Template.activities.helpers({ - activities() { - const ret = this.card.activities(); + showActivities() { + let ret = false; + let mode = this.data()?.mode; + if (mode) { + if (mode === 'linkedcard' || mode === 'linkedboard') { + const currentCard = Utils.getCurrentCard(); + ret = currentCard.showActivities ?? false; + } else if (mode === 'card') { + ret = this.data()?.card?.showActivities ?? false; + } else { + ret = Utils.getCurrentBoard().showActivities ?? false; + } + } return ret; }, -}); + activities() { + const ret = this.data().card.activities(); + return ret; + }, +}).register('activities'); BlazeComponent.extendComponent({ checkItem() { @@ -247,32 +261,6 @@ BlazeComponent.extendComponent({ return customField.name; }, - events() { - return [ - { - // XXX We should use Popup.afterConfirmation here - 'click .js-delete-comment': Popup.afterConfirm('deleteComment', () => { - const commentId = this.data().activity.commentId; - CardComments.remove(commentId); - Popup.back(); - }), - 'submit .js-edit-comment'(evt) { - evt.preventDefault(); - const commentText = this.currentComponent() - .getValue() - .trim(); - const commentId = Template.parentData().activity.commentId; - if (commentText) { - CardComments.update(commentId, { - $set: { - text: commentText, - }, - }); - } - }, - }, - ]; - }, }).register('activity'); Template.activity.helpers({ diff --git a/client/components/activities/comments.css b/client/components/activities/comments.css index 4fbfdf8ba..f495ca361 100644 --- a/client/components/activities/comments.css +++ b/client/components/activities/comments.css @@ -63,3 +63,78 @@ display: block; margin: auto; } +.comments { + clear: both; +} +.comments .comment { + margin: 0.5px 0; + padding: 6px 0; + display: flex; +} +.comments .comment .member { + width: 32px; + height: 32px; +} +.comments .comment .comment-member { + font-weight: 700; +} +.comments .comment .comment-desc { + word-wrap: break-word; + overflow: hidden; + flex: 1; + align-self: center; + margin: 0; + margin-left: 3px; + overflow: hidden; + word-break: break-word; +} +.comments .comment .comment-desc .comment-text { + display: block; + border-radius: 3px; + background: #fff; + text-decoration: none; + box-shadow: 0 1px 2px rgba(0,0,0,0.2); + margin-top: 5px; + padding: 5px; +} +.comments .comment .comment-desc .reactions { + display: flex; + margin-top: 5px; + gap: 5px; +} +.comments .comment .comment-desc .reactions .open-comment-reaction-popup { + display: flex; + align-items: center; + text-decoration: none; + height: 24px; +} +.comments .comment .comment-desc .reactions .open-comment-reaction-popup i.fa.fa-smile-o { + font-size: 17px; + font-weight: 500; + margin-left: 2px; +} +.comments .comment .comment-desc .reactions .open-comment-reaction-popup i.fa.fa-plus { + font-size: 8px; + margin-top: -7px; + margin-left: 1px; +} +.comments .comment .comment-desc .reactions .reaction { + cursor: pointer; + border: 1px solid #808080; + border-radius: 15px; + display: flex; + padding: 2px 5px; +} +.comments .comment .comment-desc .reactions .reaction.selected { + background-color: #b0c4de; +} +.comments .comment .comment-desc .reactions .reaction:hover { + background-color: #b0c4de; +} +.comments .comment .comment-desc .reactions .reaction .reaction-count { + font-size: 12px; +} +.comments .comment .comment-desc .comment-meta { + font-size: 0.8em; + color: #999; +} diff --git a/client/components/activities/comments.jade b/client/components/activities/comments.jade index 4cddf4c23..07b52d47d 100644 --- a/client/components/activities/comments.jade +++ b/client/components/activities/comments.jade @@ -7,3 +7,59 @@ template(name="commentForm") | {{getUnsavedValue 'cardComment' currentCard._id}} .add-controls button.primary.confirm.clear.js-add-comment(type="submit") {{_ 'comment'}} + +template(name="comments") + .comments + each commentData in getComments + +comment(commentData) + +template(name="comment") + .comment + +userAvatar(userId=userId) + p.comment-desc + span.comment-member + +memberName(user=user) + + +inlinedForm(classNames='js-edit-comment') + +editor(autofocus=true) + = text + .edit-controls + button.primary(type="submit") {{_ 'edit'}} + .fa.fa-times-thin.js-close-inlined-form + else + .comment-text + +viewer + = text + +commentReactions(reactions=reactions commentId=_id) + span(title=createdAt).comment-meta {{ moment createdAt }} + if($eq currentUser._id userId) + +editOrDeleteComment + else if currentUser.isBoardAdmin + +editOrDeleteComment + +template(name="editOrDeleteComment") + = ' - ' + a.js-open-inlined-form {{_ "edit"}} + = ' - ' + a.js-delete-comment {{_ "delete"}} + +template(name="deleteCommentPopup") + p {{_ "comment-delete"}} + button.js-confirm.negate.full(type="submit") {{_ 'delete'}} + +template(name="commentReactions") + .reactions + each reaction in reactions + span.reaction(class="{{#if isSelected reaction.userIds}}selected{{/if}}" data-codepoint="#{reaction.reactionCodepoint}" title="{{userNames reaction.userIds}}") + span.reaction-codepoint !{reaction.reactionCodepoint} + span.reaction-count #{reaction.userIds.length} + if (currentUser.isBoardMember) + a.open-comment-reaction-popup(title="{{_ 'addReactionPopup-title'}}") + i.fa.fa-smile-o + i.fa.fa-plus + +template(name="addReactionPopup") + .reactions-popup + each codepoint in codepoints + span.add-comment-reaction(data-codepoint="#{codepoint}") !{codepoint} + diff --git a/client/components/activities/comments.js b/client/components/activities/comments.js index b46bd3c75..62629252d 100644 --- a/client/components/activities/comments.js +++ b/client/components/activities/comments.js @@ -55,6 +55,41 @@ BlazeComponent.extendComponent({ }, }).register('commentForm'); +BlazeComponent.extendComponent({ + getComments() { + const ret = this.data().comments(); + return ret; + }, +}).register("comments"); + +BlazeComponent.extendComponent({ + events() { + return [ + { + 'click .js-delete-comment': Popup.afterConfirm('deleteComment', () => { + const commentId = this.data()._id; + CardComments.remove(commentId); + Popup.back(); + }), + 'submit .js-edit-comment'(evt) { + evt.preventDefault(); + const commentText = this.currentComponent() + .getValue() + .trim(); + const commentId = this.data()._id; + if (commentText) { + CardComments.update(commentId, { + $set: { + text: commentText, + }, + }); + } + }, + }, + ]; + }, +}).register("comment"); + // XXX This should be a static method of the `commentForm` component function resetCommentInput(input) { input.val(''); // without manually trigger, input event won't be fired diff --git a/client/components/boards/boardBody.css b/client/components/boards/boardBody.css index cb091b57d..1138aa19a 100644 --- a/client/components/boards/boardBody.css +++ b/client/components/boards/boardBody.css @@ -16,9 +16,6 @@ transition: margin 0.1s; overflow-y: auto; } -.board-wrapper .board-canvas.is-sibling-sidebar-open { - margin-right: 248px; -} .board-wrapper .board-canvas .board-overlay { position: fixed; left: 0; diff --git a/client/components/boards/boardBody.jade b/client/components/boards/boardBody.jade index edeb25464..de1c1ca3c 100644 --- a/client/components/boards/boardBody.jade +++ b/client/components/boards/boardBody.jade @@ -17,25 +17,32 @@ template(name="boardBody") | {{_ 'tableVisibilityMode-allowPrivateOnly'}} else .board-wrapper(class=currentBoard.colorClass) - +sidebar .board-canvas.js-swimlanes( + class="{{#if hasSwimlanes}}dragscroll{{/if}}" class="{{#if Sidebar.isOpen}}is-sibling-sidebar-open{{/if}}" class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}" - class="{{#if draggingActive.get}}is-dragging-active{{/if}}") + class="{{#if draggingActive.get}}is-dragging-active{{/if}}" + class="{{#unless isVerticalScrollbars}}no-scrollbars{{/unless}}") if showOverlay.get .board-overlay if currentBoard.isTemplatesBoard each currentBoard.swimlanes +swimlane(this) else if isViewSwimlanes - each currentBoard.swimlanes - +swimlane(this) + if hasSwimlanes + each currentBoard.swimlanes + +swimlane(this) + else + a.js-empty-board-add-swimlane(title="{{_ 'add-swimlane'}}") + h1.big-message.quiet + | {{_ 'add-swimlane'}} + else if isViewLists +listsGroup(currentBoard) else if isViewCalendar +calendarView else +listsGroup(currentBoard) + +sidebar template(name="calendarView") if isViewCalendar diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index f02b69fdd..29bf5e5bb 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -1,5 +1,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; +import dragscroll from '@wekanteam/dragscroll'; const subManager = new SubsManager(); const { calculateIndex } = Utils; @@ -194,6 +195,9 @@ BlazeComponent.extendComponent({ }); this.autorun(() => { + // Always reset dragscroll on view switch + dragscroll.reset(); + if (Utils.isTouchScreenOrShowDesktopDragHandles()) { $swimlanesDom.sortable({ handle: '.js-swimlane-header-handle', @@ -219,6 +223,7 @@ BlazeComponent.extendComponent({ boardComponent.openNewListForm(); } + dragscroll.reset(); Utils.setBackgroundImage(); }, @@ -243,6 +248,10 @@ BlazeComponent.extendComponent({ } }, + hasSwimlanes() { + return Utils.getCurrentBoard().swimlanes().length > 0; + }, + isViewLists() { const currentUser = ReactiveCache.getCurrentUser(); if (currentUser) { @@ -261,6 +270,11 @@ BlazeComponent.extendComponent({ } }, + isVerticalScrollbars() { + const user = ReactiveCache.getCurrentUser(); + return user && user.isVerticalScrollbars(); + }, + openNewListForm() { if (this.isViewSwimlanes()) { // The form had been removed in 416b17062e57f215206e93a85b02ef9eb1ab4902 @@ -283,6 +297,7 @@ BlazeComponent.extendComponent({ this._isDragging = false; } }, + 'click .js-empty-board-add-swimlane': Popup.open('swimlaneAdd'), }, ]; }, diff --git a/client/components/boards/boardColors.css b/client/components/boards/boardColors.css index cac7fdf05..7f1bb29e4 100644 --- a/client/components/boards/boardColors.css +++ b/client/components/boards/boardColors.css @@ -1,3 +1,7 @@ +/* =============== +THEME - NEPHRITIS +=================*/ + .board-color-nephritis#header, .board-color-nephritis.sk-spinner div, .board-backgrounds-list .board-color-nephritis.background-box, @@ -70,6 +74,35 @@ .board-color-nephritis#header-quick-access ul li.current { border-bottom: 4px solid #3dd37c; } + +/* Transparent modern scrollbar - Nephritis*/ +.board-color-nephritis .board-canvas { + scrollbar-color: #27ae60f2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-nephritis .sidebar .sidebar-content { + scrollbar-color: #27ae60f2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-nephritis .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-nephritis .list-body { + margin-top: 8px; +} + +/* === END NEPHRITIS THEME === */ + +/* =============== +THEME - Pomegranate +=================*/ + .board-color-pomegranate#header, .board-color-pomegranate.sk-spinner div, .board-backgrounds-list .board-color-pomegranate.background-box, @@ -142,6 +175,35 @@ .board-color-pomegranate#header-quick-access ul li.current { border-bottom: 4px solid #d7584b; } + +/* Transparent modern scrollbar - pomegranate*/ +.board-color-pomegranate .board-canvas { + scrollbar-color: #c0392bf2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-pomegranate .sidebar .sidebar-content { + scrollbar-color: #c0392bf2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-pomegranate .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-pomegranate .list-body { + margin-top: 8px; +} + +/* === END Pomegranate THEME === */ + +/* =============== +THEME - Belize +=================*/ + .board-color-belize#header, .board-color-belize.sk-spinner div, .board-backgrounds-list .board-color-belize.background-box, @@ -214,6 +276,35 @@ .board-color-belize#header-quick-access ul li.current { border-bottom: 4px solid #459cd6; } + +/* Transparent modern scrollbar - belize*/ +.board-color-belize .board-canvas { + scrollbar-color: #2573a7f2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-belize .sidebar .sidebar-content { + scrollbar-color: #2980b9f2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-belize .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-belize .list-body { + margin-top: 8px; +} + +/* === END Belize THEME === */ + +/* =============== +THEME - Wisteria +=================*/ + .board-color-wisteria#header, .board-color-wisteria.sk-spinner div, .board-backgrounds-list .board-color-wisteria.background-box, @@ -286,6 +377,35 @@ .board-color-wisteria#header-quick-access ul li.current { border-bottom: 4px solid #a765c2; } + +/* Transparent modern scrollbar - wisteria*/ +.board-color-wisteria .board-canvas { + scrollbar-color: #8e44adf2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-wisteria .sidebar .sidebar-content { + scrollbar-color: #8e44adf2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-wisteria .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-wisteria .list-body { + margin-top: 8px; +} + +/* === END Wisteria THEME === */ + +/* =============== +THEME - Midnight +=================*/ + .board-color-midnight#header, .board-color-midnight.sk-spinner div, .board-backgrounds-list .board-color-midnight.background-box, @@ -358,6 +478,35 @@ .board-color-midnight#header-quick-access ul li.current { border-bottom: 4px solid #476582; } + +/* Transparent modern scrollbar - midnight*/ +.board-color-midnight .board-canvas { + scrollbar-color: #2c3e50f2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-midnight .sidebar .sidebar-content { + scrollbar-color: #2c3e50f2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-midnight .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-midnight .list-body { + margin-top: 8px; +} + +/* === END Midnight THEME === */ + +/* =============== +THEME - Pumpkin +=================*/ + .board-color-pumpkin#header, .board-color-pumpkin.sk-spinner div, .board-backgrounds-list .board-color-pumpkin.background-box, @@ -430,6 +579,35 @@ .board-color-pumpkin#header-quick-access ul li.current { border-bottom: 4px solid #eb984e; } + +/* Transparent modern scrollbar - pumpkin*/ +.board-color-pumpkin .board-canvas { + scrollbar-color: #e67e22f2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-pumpkin .sidebar .sidebar-content { + scrollbar-color: #e67e22f2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-pumpkin .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-pumpkin .list-body { + margin-top: 8px; +} + +/* === END Pumpkin THEME === */ + +/* =============== +THEME - Moderate Pink +=================*/ + .board-color-moderatepink#header, .board-color-moderatepink.sk-spinner div, .board-backgrounds-list .board-color-moderatepink.background-box, @@ -502,6 +680,35 @@ .board-color-moderatepink#header-quick-access ul li.current { border-bottom: 4px solid #d77ba7; } + +/* Transparent modern scrollbar - moderatepink*/ +.board-color-moderatepink .board-canvas { + scrollbar-color: #cd5a91f2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-moderatepink .sidebar .sidebar-content { + scrollbar-color: #cd5a91f2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-moderatepink .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-moderatepink .list-body { + margin-top: 8px; +} + +/* === END Moderatepink THEME === */ + +/* =============== +THEME - Strong Cyan +=================*/ + .board-color-strongcyan#header, .board-color-strongcyan.sk-spinner div, .board-backgrounds-list .board-color-strongcyan.background-box, @@ -574,6 +781,35 @@ .board-color-strongcyan#header-quick-access ul li.current { border-bottom: 4px solid #0adbff; } + +/* Transparent modern scrollbar - strongcyan*/ +.board-color-strongcyan .board-canvas { + scrollbar-color: #00aeccf2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-strongcyan .sidebar .sidebar-content { + scrollbar-color: #00aeccf2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-strongcyan .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-strongcyan .list-body { + margin-top: 8px; +} + +/* === END Strongcyan THEME === */ + +/* =============== +THEME - Lime Green +=================*/ + .board-color-limegreen#header, .board-color-limegreen.sk-spinner div, .board-backgrounds-list .board-color-limegreen.background-box, @@ -646,6 +882,35 @@ .board-color-limegreen#header-quick-access ul li.current { border-bottom: 4px solid #6fcc89; } + +/* Transparent modern scrollbar - limegreen*/ +.board-color-limegreen .board-canvas { + scrollbar-color: #4bbf6bf2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-limegreen .sidebar .sidebar-content { + scrollbar-color: #4bbf6bf2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-limegreen .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-limegreen .list-body { + margin-top: 8px; +} + +/* === END Limegreen THEME === */ + +/* =============== +THEME - Dark +=================*/ + .board-color-dark#header, .board-color-dark.sk-spinner div, .board-backgrounds-list .board-color-dark.background-box, @@ -659,6 +924,7 @@ border-radius: 7px; padding: 10px 10px 4px 10px; box-shadow: 2px 2px 4px 0px rgba(0,0,0,0.15); + background-color: rgb(255 255 255 / 90%); } .board-color-dark button[type=submit].primary, .board-color-dark input[type=submit].primary, @@ -718,7 +984,12 @@ .board-color-dark#header-quick-access ul li.current { border-bottom: 4px solid #476483; } -.board-color-dark .ui-sortable, + +/* Board Wrapper background fix for dark theme */ +.board-color-dark.board-wrapper { + background-color: #2c3e50; +} + .board-color-dark .swimlane, .board-color-dark .swimlane >.swimlane-header-wrap, .board-color-dark .swimlane >.list.js-list, @@ -815,6 +1086,35 @@ background-color: #ccc; color: #222; } + +/* Transparent modern scrollbar - dark*/ +.board-color-dark .board-canvas { + scrollbar-color: #f2f2f2f2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-dark .sidebar .sidebar-content { + scrollbar-color: #f2f2f2f2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-dark .list { + border-left: none; /* Remove this property to bring back lines in-between columns if needed*/ + padding: 0px 1px 8px 1px; /* Improves spacing between columns due to no borders, 8px padding at bottom to separate horizontal scrollbar/lists */ +} + +.board-color-dark .list-body { + margin-top: 8px; +} + +/* === END Dark THEME === */ + +/* =============== +THEME - Relax +=================*/ + .board-color-relax#header, .board-color-relax.sk-spinner div, .board-backgrounds-list .board-color-relax.background-box, @@ -887,7 +1187,7 @@ .board-color-relax#header-quick-access ul li.current { border-bottom: 4px solid #3dd37e; } -.board-color-relax .ui-sortable { +.board-color-relax .board-wrapper { background-color: #a7e366; } .board-color-relax .list-header { @@ -916,6 +1216,35 @@ font-weight: bold; font-size: 11pt; } + +/* Transparent modern scrollbar - relax*/ +.board-color-relax .board-canvas { + scrollbar-color: #fffffff2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-relax .sidebar .sidebar-content { + scrollbar-color: #a7e366 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-relax .list { + border-left: none; + /* padding-bottom: 8px; - Removed to get rid of grey bars for relax theme */ +} + +.board-color-relax .list-body { + margin-top: 8px; +} + +/* === END Relax THEME === */ + +/* =============== +THEME - Corteza +=================*/ + .board-color-corteza#header, .board-color-corteza.sk-spinner div, .board-backgrounds-list .board-color-corteza.background-box, @@ -988,9 +1317,35 @@ .board-color-corteza#header-quick-access ul li.current { border-bottom: 4px solid #76a3b6; } -/* - Alternate "Clear" Styling -*/ + +/* Transparent modern scrollbar - corteza*/ +.board-color-corteza .board-canvas { + scrollbar-color: #568ba2f2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-corteza .sidebar .sidebar-content { + scrollbar-color: #568ba2f2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-corteza .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-corteza .list-body { + margin-top: 8px; +} + +/* === END Corteza THEME === */ + +/* =============== +THEME - Clear Blue +=================*/ + .board-color-clearblue.sk-spinner div, .board-backgrounds-list .board-color-clearblue.background-box, .board-list .board-color-clearblue a { @@ -1054,7 +1409,7 @@ .board-color-clearblue .toggle-switch:checked ~ .toggle-label:after { background-color: #197ddc; } -.board-color-clearblue .board-canvas { +.board-color-clearblue.board-wrapper { background: linear-gradient(135deg, #499bea 0%, #00aecc 100%); } .board-color-clearblue .swimlane { @@ -1062,7 +1417,7 @@ } .board-color-clearblue .swimlane .list:first-child { min-width: 20px; - margin-left: 0px; + margin-left: 10px; /* Added 10px margin left to stop lists being butted up against the edge of the screen */ border-left: none; } .board-color-clearblue .swimlane .list:nth-child { @@ -1096,7 +1451,7 @@ color: rgba(0,0,0,0.6); } .board-color-clearblue .list-header { - background-color: rgba(255,255,255,0.25); + background-color: rgb(255 255 255 / 68%); border-radius: 14px 14px 0 0; } .board-color-clearblue .list-header:not([class*="list-header-"]) { @@ -1190,7 +1545,7 @@ .board-color-clearblue .list-body .open-minicard-composer { color: rgba(0,0,0,0.3); } -.board-color-clearblue .swinlane.ui-sortable-helper { +.board-color-clearblue .swimlane.ui-sortable-helper { transform: rotate(0deg); } .board-color-clearblue .swimlane .swimlane-header-wrap { @@ -1224,9 +1579,40 @@ cursor: -webkit-grabbing; cursor: grabbing; } -/* - Alternate "Natural" Styling -*/ + +/* Transparent modern scrollbar - clearblue*/ +.board-color-clearblue .board-canvas { + scrollbar-color: #ffffffdb #ffffff00; + scrollbar-width: thin; +} + +.board-color-clearblue .list-body { + scrollbar-width: thin; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-clearblue .sidebar .sidebar-content { + scrollbar-color: #00aecc #ffffff00; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-clearblue .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-clearblue .list-body { + margin-top: 8px; +} + +/* === END Clearblue THEME === */ + +/* =============== +THEME - Natural +=================*/ + .board-color-natural#header, .board-color-natural.sk-spinner div, .board-backgrounds-list .board-color-natural.background-box, @@ -1302,15 +1688,41 @@ .board-color-natural#header-quick-access { background-color: #2d392b; } -.board-color-natural .ui-sortable { +.board-color-natural.board-wrapper { background-color: #dedede; } .board-color-natural .swimlane .swimlane-header-wrap { background-color: #c2c0ab; } -/* - Alternate "Modern" Styling -*/ + +/* Transparent modern scrollbar - natural*/ +.board-color-natural .board-canvas { + scrollbar-color: #596557f2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-natural .sidebar .sidebar-content { + scrollbar-color: #596557f2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-natural .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-natural .list-body { + margin-top: 8px; +} + +/* === END Natural THEME === */ + +/* =============== +THEME - Modern +=================*/ + .board-color-modern#header, .board-color-modern.sk-spinner div, .board-backgrounds-list .board-color-modern.background-box, @@ -1433,7 +1845,7 @@ height: 21px; background: #f7f7f7; } -.board-color-modern .board-canvas { +.board-color-modern.board-wrapper { background: #f5f5f5; } .board-color-modern .swimlane { @@ -1476,7 +1888,7 @@ color: #222; } .board-color-modern .list-header { - background: none; + background: #f5f5f5f2; /*Added background colour same colour as base board background, prevents poor text visibility when bgd image applied*/ } .board-color-modern .list-header .list-header-name { /* font-family: Poppins; */ @@ -1546,7 +1958,7 @@ .board-color-modern .pop-over-list li>a .sub-name { margin-bottom: 8px; } -.board-color-modern .sidebar .sidebar-shadow { +.board-color-modern .sidebar { box-shadow: 0 0 60px rgba(0,0,0,0.2); } .board-color-modern .board-color-modern section#notifications-drawer { @@ -1569,9 +1981,35 @@ .board-color-modern section#notifications-drawer .header .toggle-read { top: 18px; } -/* - Alternate "Modern Dark" Styling -*/ + +/* Transparent modern scrollbar - modern*/ +.board-color-modern .board-canvas { + scrollbar-color: #333333f2 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-modern .sidebar .sidebar-content { + scrollbar-color: #333333f2 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-modern .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-modern .list-body { + margin-top: 8px; +} + +/* === END Modern THEME === */ + +/* =============== +THEME - Modern Dark +=================*/ + .board-color-moderndark#header, .board-color-moderndark.sk-spinner div, .board-backgrounds-list .board-color-moderndark.background-box, @@ -1731,7 +2169,7 @@ line-height: 0.8em; padding-top: 10px; } -.board-color-moderndark .board-canvas { +.board-color-moderndark.board-wrapper { background: #2a2a2a; } .board-color-moderndark .swimlane .swimlane-header-wrap { @@ -1790,7 +2228,7 @@ } @media screen and (max-width: 800px) { .board-color-moderndark .list-header .list-header-name { - line-height: 40px; + line-height: unset; padding-top: 10px; } .board-color-moderndark .list-header-black, .board-color-moderndark .mini-list { @@ -1919,8 +2357,8 @@ } @media screen and (min-width: 801px) { .board-color-moderndark .card-details { - position: absolute; - top: 30px; + position: fixed; + top: 82px; left: calc(50% - 384px); width: 768px; max-height: calc(100% - 60px); @@ -1993,7 +2431,7 @@ background-color: #ccc; color: #222; } -.board-color-moderndark .sidebar .sidebar-shadow { +.board-color-moderndark .sidebar { background-color: #222; box-shadow: -10px 0 5px -10px #444; border-left: 1px solid #333; @@ -2030,6 +2468,38 @@ .pop-over.board-color-moderndark .pop-over-list li > a:hover { background-color: rgba(255,255,255,0.2); } + +/* Transparent moderndark scrollbar - moderndark*/ +.board-color-moderndark .board-canvas { + scrollbar-width: thin; + scrollbar-color: #343434f2 #999999f2; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-moderndark .sidebar .sidebar-content { + scrollbar-width: thin; + scrollbar-color: #343434f2 #999999f2; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-moderndark .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-moderndark .list-body { + margin-top: 8px; +} + +/* === END ModernDark THEME === */ + + +/* =============== +THEME - Exodark +=================*/ + .board-color-exodark#header, .board-color-exodark.sk-spinner div, .board-backgrounds-list .board-color-exodark.background-box, @@ -2110,7 +2580,7 @@ color: #fff !important; } */ -.board-color-exodark .board-canvas { +.board-color-exodark.board-wrapper { background: #222; /* font-family: Poppins; */ } @@ -2121,13 +2591,12 @@ margin: 10px; color: #fff; border-radius: 15px; - background: #222; - box-shadow: inset 15px 15px 37px #1c1c1c, inset -15px -15px 37px #282828; + background-color: #1c1c1c; border: none; } .board-color-exodark .swimlane .list:first-child { min-width: 20px; - margin-left: 0px; + margin-left: 10px; /*Added 10px margin to prevent butting up against edge of screen */ border-left: none; } .board-color-exodark .swimlane .list:nth-child { @@ -2179,6 +2648,9 @@ background: #2b2b2b !important; color: #fff; } +.board-color-exodark .card-details .comment-text { + color:#2b2b2b +} /*Fixes issue with comment text colour blending into background*/ .board-color-exodark .card-details .card-details-header { background: #2b2b2b; color: #fff; @@ -2251,3 +2723,1467 @@ background: #2b2b2b; color: #fff; } + +/* Transparent modern scrollbar - Exodark*/ +.board-color-exodark .list-body { + scrollbar-color: #e4e4e4d4 #202020ba; +} + +.board-color-exodark .list { + overflow: hidden; +} + +.board-color-exodark .board-canvas { + scrollbar-color: #e4e4e4d4 #202020ba; +} + +/* Apply scrollbar to sidebar content*/ +.board-color-exodark .sidebar .sidebar-content { + scrollbar-color: #e4e4e4d4 #202020ba; +} + +/* === END Exodark THEME === */ + +/* =============== +THEME - Clean Dark +=================*/ + +.board-color-cleandark#header ul li, +.board-color-cleandark#header-quick-access ul li { + color: rgba(255, 255, 255, 50%); + font-size: 16px; + font-weight: 400; + line-height: 24px; +} + +.board-color-cleandark#header-main-bar h1 { + font-size: 16px; + font-weight: 500; + line-height: 24px !important; + color: rgba(255, 255, 255, 1); +} + +.board-color-cleandark#header ul li.current, +.board-color-cleandark#header-quick-access ul li.current { + color: rgba(255, 255, 255, 85%); +} + +.board-color-cleandark .swimlane-header { + font-size: 16px; + font-weight: 500; + line-height: 24px; + color: rgba(255, 255, 255, 1); +} + +.board-color-cleandark.board-wrapper { + background: #0A0A14; +} + +.board-color-cleandark .sidebar { + background: rgba(35, 35, 43, 1) !important; + box-shadow: none; +} + +.board-color-cleandark .sidebar hr { + background:rgba(255, 255, 255, 0.05); +} + +.board-color-cleandark .sidebar .tab-item { + border-radius: 16px; + padding: 4px 12px 4px 12px; + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(255, 255, 255, 0.85); + background: rgba(57, 57, 71, 1); +} + +.board-color-cleandark .sidebar .tab-item.active { + background: rgba(255, 255, 255, 1); + color: rgba(10, 10, 20, 1); + border: none; + padding: 4px 12px 4px 12px !important; +} + +.board-color-cleandark .sidebar .tabs-content-container { + border: none; +} + +.board-color-cleandark .card-details { + background: #23232B; + border-radius: 20px; + box-shadow: none; +} + +.board-color-cleandark .card-details-item a { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(255, 255, 255, 0.5); +} + +.board-color-cleandark .add-assignee { + box-shadow: none !important; +} + +.board-color-cleandark .add-assignee:hover { + background: #444455; + border-radius: 8px; +} + +.board-color-cleandark .add-checklist-top { + display: none !important; +} + +.board-color-cleandark .add-checklist { + padding: 8px; + width: min-content !important; +} + +.board-color-cleandark .add-checklist:hover { + background: #444455 !important; + border-radius: 12px !important; +} + +.board-color-cleandark .add-checklist:hover i { + color: #FFFFFF !important; +} + +.board-color-cleandark .add-assignee:hover i { + color: #FFFFFF !important; +} + +.board-color-cleandark .card-time.card-label-green { + background: #009B64; + width: min-content; + color: #FFFFFF; + padding-left: 8px; + padding-right: 8px; + border-radius: 8px; + margin-left: 4px; +} + +.board-color-cleandark .card-details hr { + background: rgba(255, 255, 255, 0.05); +} + +.board-color-cleandark .card-details-canvas { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(255, 255, 255, 0.85); +} + +.board-color-cleandark.pop-over { + border-radius: 12px; + border: none; + background: rgba(46, 46, 57, 1); +} + +.board-color-cleandark.pop-over .pop-over-list, +.board-color-cleandark.pop-over .content { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(255, 255, 255, 1); +} + +.board-color-cleandark.pop-over .pop-over-list a:hover { + background: #393947 !important; +} + +.board-color-cleandark .member { + box-shadow: none !important; +} + +.board-color-cleandark .add-member:hover { + background: #444455; + border-radius: 8px; +} + +.board-color-cleandark .add-member:hover i { + color: #FFFFFF !important; +} + +.board-color-cleandark .add-label { + box-shadow: none !important; +} + +.board-color-cleandark .add-label:hover { + background: #444455; + border-radius: 8px; +} + +.board-color-cleandark .add-label:hover i { + color: #FFFFFF !important; +} + +.board-color-cleandark.pop-over .content kbd { + background: rgba(46, 46, 57, 1); +} + +.board-color-cleandark .full-name { + font-size: 16px; + font-weight: 500; + line-height: 24px; + + color: rgba(255, 255, 255, 0.85); +} + +.board-color-cleandark .username { + font-size: 16px; + font-weight: 400; + line-height: 24px; + + color: rgba(255, 255, 255, 0.7); +} + +.board-color-cleandark .attachment-item:hover { + background: rgba(46, 46, 57, 1); +} + +.board-color-cleandark .checklist { + background: none; + color: #FFFFFF; +} + +.board-color-cleandark .checklist-item { + background: none; +} + +.board-color-cleandark .checklist-item:hover { + background: rgba(46, 46, 57, 1) !important; +} + +.board-color-cleandark .add-checklist-item { + width: min-content !important; + padding: 8px; +} + +.board-color-cleandark .add-checklist-item:hover { + background: #444455 !important; + border-radius: 12px !important; +} + +.board-color-cleandark .add-checklist-item:hover i { + color: #FFFFFF !important; +} + +.board-color-cleandark .add-attachment { + border-radius: 12px; +} + +.board-color-cleandark .add-attachment:hover i { + color: #FFFFFF !important; +} + +.board-color-cleandark .attachment-actions i, +.board-color-cleandark .attachment-actions a { + font-size: 1em !important; +} + +.board-color-cleandark .activity-desc { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(255, 255, 255, 0.5); +} + +.board-color-cleandark .activity-desc .activity-member { + color: rgba(255, 255, 255, 0.85); +} + +.board-color-cleandark .comments .comment .comment-desc .comment-text { + background: transparent; +} + +.board-color-cleandark .activity-checklist, +.board-color-cleandark .activity-comment { + background: none !important; + color: #FFFFFF; + border: 1px solid rgba(0, 155, 100, 1); + border-radius: 12px !important; +} + +.board-color-cleandark button[type=submit].primary, +.board-color-cleandark input[type=submit].primary { + font-size: 16px; + font-weight: 400; + line-height: 24px; + border-radius: 12px; + padding: 6px 12px 6px 12px; + background: #FFFFFF; + color: rgba(10, 10, 20, 0.85); +} + +.board-color-cleandark textarea { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(255, 255, 255, 1); + background: rgba(57, 57, 71, 1) !important; + border: none !important; + border-radius: 12px !important; +} + +.board-color-cleandark textarea::placeholder { + color: rgba(255, 255, 255, 0.85) !important; +} + +.board-color-cleandark input { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(255, 255, 255, 0.85) !important; + background: rgba(57, 57, 71, 1) !important; + border-radius: 12px !important; + border: none !important; +} + +.board-color-cleandark input::placeholder { + color: rgba(255, 255, 255, 1) !important; +} + +.board-color-cleandark select { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(255, 255, 255, 0.85); + background: rgba(57, 57, 71, 1); + border-radius: 12px; + border: none; +} + +.board-color-cleandark button.primary { + padding: 6px 12px 6px 12px; + border-radius: 12px; + border: none; + background: #FFFFFF; + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(10, 10, 20, 0.85); +} + +.board-color-cleandark button.primary:hover { + background: rgba(255, 255, 255, 0.85); +} + +.board-color-cleandark button.negate { + padding: 6px 12px 6px 12px; + border-radius: 12px; + border: none; + background: #cc003a; + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: #FFFFFF; +} + +.board-color-cleandark button.negate:hover { + background: rgba(204, 0, 58, 0.77); +} + +.board-color-cleandark .card-details .checklist-item { + display: flex; + align-items: center; + gap: 4px; +} + +.board-color-cleandark .card-details .check-box.materialCheckBox { + border-radius: 4px; + border: none; + background: #393947; + height: 24px; + width: 24px; +} + +.board-color-cleandark .card-details .check-box.materialCheckBox.is-checked { + border-bottom: 2px solid #FFFFFF; + border-right: 2px solid #FFFFFF; + width: 11px; + height: 19px; + border-radius: 0; + background: none; +} + +.board-color-cleandark .sidebar .sidebar-content h3, +.board-color-cleandark .sidebar .sidebar-content h2, +.board-color-cleandark .sidebar .sidebar-content h1 { + color: #FFFFFF; +} + +.board-color-cleandark #cards span { + color: #FFFFFF; +} + +.board-color-cleandark #cards .materialCheckBox { + border-radius: 4px; + border: none; + background: #393947; + height: 18px; + width: 18px; +} + +.board-color-cleandark .sidebar-list-item-description { + color: #FFFFFF; +} + +.board-color-cleandark #cards .materialCheckBox.is-checked { + border-bottom: 2px solid #FFFFFF; + border-right: 2px solid #FFFFFF; + width: 5px; + height: 13px; + border-radius: 0; + background: none; + margin-left: 3px; + margin-top: 3px; +} + +.board-color-cleandark .allBoards { + white-space: nowrap; +} + +.board-color-cleandark#header-quick-access ul.header-quick-access-list li { + display: inline-flex; + align-items: center; + padding-bottom: 4px; + padding-top: 4px; + margin-right: 10px; +} + +.board-color-cleandark#header-quick-access ul.header-quick-access-list { + display: flex; + align-items: center; +} + +/* Transparent modern scrollbar - cleandark*/ +.board-color-cleandark .board-canvas { + scrollbar-color: #23232be6 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-cleandark .sidebar .sidebar-content { + scrollbar-color: #ff6d00 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-cleandark .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-cleandark .list-body { + margin-top: 8px; +} + +/* =============== +THEME - Clean Light +=================*/ +/* Please note Clean Light theme elements also contain references to some cleandark theme elements so if unable to find code you're looking for under CleanDark it might be here. This should probably be cleaned up*/ + +.board-color-cleanlight { + background: #E0E0E0; +} + +.board-color-cleanlight .board-header-btn { + color: rgba(10, 10, 20, 0.85) !important; +} + +.board-color-cleanlight .board-header-btn i { + color: rgba(10, 10, 20, 0.85) !important; +} + +.board-color-cleanlight .board-header-btns a { + color: rgba(10, 10, 20, 0.85) !important; +} + +.board-color-cleanlight .header-user-bar-name { + color: rgba(10, 10, 20, 0.85) !important; +} + +.board-color-cleanlight#header ul li, +.board-color-cleanlight#header-quick-access ul li { + color: rgba(10, 10, 20, 0.5) !important; + font-size: 16px; + font-weight: 400; + line-height: 24px; +} + +.board-color-cleanlight#header ul li:hover, +.board-color-cleanlight#header-quick-access ul li:hover { + background: rgba(190, 190, 190, 1) !important; + border-radius: 8px; + color: rgba(10, 10, 20, 0.5) !important; +} + +.board-color-cleanlight #header-main-bar h1 { + font-size: 16px; + font-weight: 500; + line-height: 24px !important; + color: rgba(10, 10, 20, 1) !important; +} + +.board-color-cleanlight#header ul li.current, +.board-color-cleanlight#header-quick-access ul li.current { + color: rgba(10, 10, 20, 0.85) !important; +} + +.board-color-cleanlight .swimlane-header { + font-size: 16px; + font-weight: 500; + line-height: 24px; + color: rgba(10, 10, 20, 1); +} + +.board-color-cleanlight.board-wrapper { + background: #FFFFFF; +} + +.board-color-cleanlight .fa { + color: rgba(10, 10, 20, 1); +} + +.board-color-cleandark .fa { + color: #FFFFFF; +} + +/*fdsfdsfdsfdsfsdddddddddd */ + +.board-color-cleanlight .list, +.board-color-cleandark .list { + background: none; + border-left: none; +} + +.board-color-cleanlight .list .list-header, +.board-color-cleandark .list .list-header { + border-bottom: none; + display: flex; + justify-content: space-between; + align-items: center; + font-size: 16px; + background: none; +} + +.board-color-cleanlight .list .list-header div:has(.list-header-name), +.board-color-cleandark .list .list-header div:has(.list-header-name) { + display: contents; +} + +.board-color-cleanlight .list .list-header-name { + color: rgba(10, 10, 20, 1); +} + +.board-color-cleandark .list .list-header-name { + color: #FFFFFF; +} + +.board-color-cleanlight .list .list-header .list-header-menu, +.board-color-cleandark .list .list-header .list-header-menu { + display: flex; + gap: 8px; + align-items: center; +} + +.board-color-cleanlight .list .list-header .list-header-menu .js-open-list-menu , +.board-color-cleandark .list .list-header .list-header-menu .js-open-list-menu { + font-size: 16px !important; +} + +.board-color-cleanlight .list .list-header .list-header-menu a, +.board-color-cleandark .list .list-header .list-header-menu a { + margin: 0 !important; +} + +.board-color-cleanlight .list .list-header .list-header-menu .list-header-plus-top, +.board-color-cleandark .list .list-header .list-header-menu .list-header-plus-top { + color: #FFFFFF; + background: #FF6D00; + padding: 8px; + border-radius: 12px; + font-size: 16px !important; +} + +.board-color-cleanlight .list .list-header .list-header-menu .list-header-plus-top:hover, +.board-color-cleandark .list .list-header .list-header-menu .list-header-plus-top:hover { + background: #d25b02; +} + +.board-color-cleanlight .list .list-header .list-header-menu .js-collapse, +.board-color-cleandark .list .list-header .list-header-menu .js-collapse { + display: none; +} + +.board-color-cleanlight .list-header-add, +.board-color-cleandark .list-header-add { + border-radius: 12px; + margin-top: 18px; + padding: 8px; + margin-right: 8px; + display: flex; + align-items: center; + justify-content: center; + margin-left: 10px; +} + +.board-color-cleanlight .list-header-add:hover { + background: rgba(227, 227, 230, 1); + color: rgba(10, 10, 20, 1); + border-radius: 8px; + cursor: pointer; +} + +.board-color-cleandark .list-header-add:hover { + background: rgba(255, 255, 255, 0.1); + color: #FFFFFF; + border-radius: 8px; + cursor: pointer; +} + +.board-color-cleanlight .list-header-add a:hover i { + color: #FFFFFF !important; +} + +.board-color-cleandark .list-header-add { + background: #23232B !important; + color: #FFFFFF !important; +} + +.board-color-cleanlight .card-label, +.board-color-cleandark .card-label { + border-radius: 18px; + margin-top: 6px; + margin-right: 8px; + border: none; + padding: 4px 12px; +} + +.board-color-cleanlight .swimlane, +.board-color-cleandark .swimlane { + background: none; +} + +.board-color-cleanlight .swimlane-height-apply, +.board-color-cleandark .swimlane-height-apply { + border-radius: 12px !important; +} + +.board-color-cleandark .swimlane-height-apply { + background: #FFFFFF !important; + color: #0A0A14 !important; +} + +.board-color-cleanlight .swimlane-height-apply { + background: rgba(23, 23, 28, 1) !important; + color: rgba(255, 255, 255, 0.85) !important; +} + +.board-color-cleandark .swimlane-height-apply:hover { + background: rgba(255, 255, 255, 0.85) !important; +} + +.board-color-cleanlight .swimlane-height-apply:hover { + background: rgba(227, 227, 230, 1) !important; +} + +.board-color-cleanlight .swimlane .swimlane-header-wrap .swimlane-header, +.board-color-cleandark .swimlane .swimlane-header-wrap .swimlane-header, +.board-color-cleanlight .swimlane .swimlane-header-wrap .swimlane-header-menu .fa, +.board-color-cleandark .swimlane .swimlane-header-wrap .swimlane-header-menu .fa { + font-size: 16px !important; +} + +.board-color-cleanlight .swimlane .swimlane-header-wrap { + background-color: #F1F1F3; +} + +.board-color-cleandark .swimlane .swimlane-header-wrap { + background-color: #2E2E39; +} + +.board-color-cleanlight .swimlane .swimlane-header-wrap .swimlane-header-plus-icon, +.board-color-cleandark .swimlane .swimlane-header-wrap .swimlane-header-plus-icon { + margin-left: 14px; +} + +.board-color-cleanlight .swimlane .swimlane-header-wrap .list-composer, +.board-color-cleandark .swimlane .swimlane-header-wrap .list-composer { + display: flex; + gap: 12px; + margin-left: 20px; +} + +.board-color-cleanlight .swimlane .swimlane-header-wrap .swimlane-header .viewer p, +.board-color-cleandark .swimlane .swimlane-header-wrap .swimlane-header .viewer p { + margin-bottom: 0; +} + +.board-color-cleanlight .js-toggle-desktop-drag-handles, +.board-color-cleandark .js-toggle-desktop-drag-handles { + display: none; +} + +.board-color-cleanlight .sidebar { + background: rgba(248, 248, 249, 1) !important; + box-shadow: none; +} + +.board-color-cleanlight .sidebar hr { + background: rgba(23, 23, 28, 0.05); +} + +.board-color-cleanlight .sidebar .tab-item { + border-radius: 16px; + padding: 4px 12px 4px 12px; + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(10, 10, 20, 0.85); + background: rgba(234, 234, 237, 1); +} + +.board-color-cleanlight .sidebar .tab-item.active { + background: rgba(23, 23, 28, 1); + color: rgba(255, 255, 255, 1); + border: none; + padding: 4px 12px 4px 12px !important; +} + +.board-color-cleanlight .sidebar .tabs-content-container { + border: none; +} + +.board-color-cleanlight .card-details { + background: rgba(248, 248, 249, 1); + border-radius: 20px; + box-shadow: none; +} + +.board-color-cleanlight .card-details-item a { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(10, 10, 20, 0.5); +} + +.board-color-cleanlight .card-details-header, +.board-color-cleandark .card-details-header { + font-size: 24px !important; + font-weight: 600; + line-height: 28px; + border-bottom: none !important; + padding: 12px 20px !important; +} + +.board-color-cleanlight .card-details-header { + background: rgba(241, 241, 243, 1); + color: rgba(10, 10, 20, 1); +} + +.board-color-cleandark .card-details-header { + background: #2E2E39 !important; + color: rgba(255, 255, 255, 1); +} + +.board-color-cleanlight .card-details-header .card-details-title, +.board-color-cleandark .card-details-header .card-details-title { + font-size: 24px !important; +} + +.board-color-cleanlight .card-details .card-details-item-title, +.board-color-cleandark .card-details .card-details-item-title { + display: flex; + gap: 8px; + align-items: center; + + font-size: 16px; + font-weight: 500; + line-height: 24px; +} + +.board-color-cleanlight .card-details .card-details-item-title { + color: rgba(10, 10, 20, 1); +} + +.board-color-cleandark .card-details .card-details-item-title { + color: rgba(255, 255, 255, 1); +} + +.board-color-cleanlight .add-assignee { + box-shadow: none !important; +} + +.board-color-cleanlight .add-assignee:hover { + background: rgba(227, 227, 230, 1); + border-radius: 8px; +} + +.board-color-cleanlight .add-assignee:hover i { + color: #000000 !important; +} + +.board-color-cleanlight .add-checklist-top { + display: none !important; +} + +.board-color-cleanlight .add-checklist { + padding: 8px; + width: min-content !important; +} + +.board-color-cleanlight .add-checklist:hover { + background: rgba(227, 227, 230, 1) !important; + border-radius: 12px !important; +} + +.board-color-cleanlight .add-checklist:hover i { + color: #000000 !important; +} + +.board-color-cleanlight .card-time.card-label-green { + background: #009B64; + width: min-content; + color: #FFFFFF; + padding-left: 8px; + padding-right: 8px; + border-radius: 8px; + margin-left: 4px; +} + +.board-color-cleanlight .card-details hr { + background: rgba(23, 23, 28, 0.05); +} + +.board-color-cleanlight .card-details-canvas { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(10, 10, 20, 0.5); +} + +.board-color-cleanlight.pop-over { + border-radius: 12px; + border: none; + background: rgba(241, 241, 243, 1); +} + +.board-color-cleanlight.pop-over .header, +.board-color-cleandark.pop-over .header { + border-radius: 12px 12px 0 0; + border-bottom: none; + background: inherit; + + font-size: 16px; + font-weight: 500; + line-height: 24px; +} + +.board-color-cleanlight.pop-over .header { + color: rgba(10, 10, 20, 1); +} + + +.board-color-cleandark.pop-over .header { + color: rgba(255, 255, 255, 1);; +} + +.board-color-cleanlight.pop-over .pop-over-list, +.board-color-cleanlight.pop-over .content { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(10, 10, 20, 0.8); +} + +.board-color-cleanlight.pop-over .pop-over-list a:hover { + background: #393947 !important; +} + +.board-color-cleanlight .member { + box-shadow: none !important; +} + +.board-color-cleanlight .add-member:hover { + background: rgba(227, 227, 230, 1); + border-radius: 8px; +} + +.board-color-cleanlight .add-member:hover i { + color: #000000 !important; +} + +.board-color-cleanlight .add-label { + box-shadow: none !important; +} + +.board-color-cleanlight .add-label:hover { + background: rgba(227, 227, 230, 1); + border-radius: 8px; +} + +.board-color-cleanlight .add-label:hover i { + color: #000000 !important; +} + +.board-color-cleanlight.pop-over .content kbd { + background: rgba(180, 180, 180, 1); + border-radius: 8px; +} + +.board-color-cleanlight .full-name { + font-size: 16px; + font-weight: 500; + line-height: 24px; + + color: rgba(10, 10, 20, 0.85) !important; +} + +.board-color-cleanlight .username { + font-size: 16px; + font-weight: 400; + line-height: 24px; + + color: rgba(10, 10, 20, 0.5) !important; +} + +.board-color-cleanlight .attachment-item:hover { + background: rgba(227, 227, 230, 1); +} + +.board-color-cleanlight .checklist { + background: none; + color: rgba(10, 10, 20, 0.85); +} + +.board-color-cleanlight .checklist-item { + background: none; +} + +.board-color-cleanlight .checklist-item:hover { + background: rgba(227, 227, 230, 1) !important; +} + +.board-color-cleanlight .add-checklist-item { + width: min-content !important; + padding: 8px; +} + +.board-color-cleanlight .add-checklist-item:hover { + background: rgba(227, 227, 230, 1) !important; + border-radius: 12px !important; +} + +.board-color-cleanlight .add-checklist-item:hover i { + color: #000000 !important; +} + +.board-color-cleanlight .add-attachment { + background: rgba(248, 248, 249, 1) !important; + border-radius: 12px; + border-color: rgba(197, 197, 200, 1); +} + +.board-color-cleanlight .add-attachment:hover { + background: rgba(227, 227, 230, 1) !important; +} + +.board-color-cleanlight .add-attachment:hover i { + color: #000000 !important; +} + +.board-color-cleanlight .attachment-actions i, +.board-color-cleanlight .attachment-actions a { + font-size: 1em !important; +} + +.board-color-cleanlight .activity-desc { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(10, 10, 20, 0.5); +} + +.board-color-cleanlight .activity-desc .activity-member { + color: rgba(10, 10, 20, 0.85); +} + +.board-color-cleanlight .activity-checklist, +.board-color-cleanlight .activity-comment { + background: none !important; + color: rgba(10, 10, 20, 0.85); + border: 1px solid rgba(0, 155, 100, 1); + border-radius: 12px !important; +} + +.board-color-cleanlight button[type=submit].primary, +.board-color-cleanlight input[type=submit].primary { + font-size: 16px; + font-weight: 400; + line-height: 24px; + border-radius: 12px; + padding: 6px 12px 6px 12px; + background: rgba(23, 23, 28, 1); + color: rgba(255, 255, 255, 0.85); +} + +.board-color-cleanlight input.primary { + font-size: 16px; + font-weight: 400; + line-height: 24px; + border-radius: 12px; + padding: 6px 12px 6px 12px; + background: rgba(23, 23, 28, 1) !important; + color: rgba(255, 255, 255, 0.85) !important; +} + +.board-color-cleanlight input.primary:hover { + background: #444455 !important; +} + +.board-color-cleanlight textarea { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(10, 10, 20, 0.85); + background: rgba(234, 234, 237, 1); + border: none !important; + border-radius: 12px !important; +} + +.board-color-cleanlight textarea::placeholder { + color: rgba(10, 10, 20, 0.5) !important; +} + +.board-color-cleanlight textarea:focus, +.board-color-cleandark textarea:focus { + border: none !important; + box-shadow: none; +} + +.board-color-cleanlight input { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(10, 10, 20, 0.85) !important; + background: rgba(234, 234, 237, 1) !important; + border-radius: 12px !important; + border: none !important; +} + +.board-color-cleanlight input::placeholder { + color: rgba(10, 10, 20, 0.5) !important; +} + +.board-color-cleanlight input:focus, +.board-color-cleandark input:focus { + border: none !important; + box-shadow: none !important; +} + +.board-color-cleanlight select { + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(10, 10, 20, 0.85); + background: rgba(234, 234, 237, 1); + border-radius: 12px; + border: none; +} + +.board-color-cleanlight button.primary { + padding: 6px 12px 6px 12px; + border-radius: 12px; + border: none; + background: rgba(23, 23, 28, 1); + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(255, 255, 255, 0.85); +} + +.board-color-cleanlight button.primary:hover { + background: #444455; +} + +.board-color-cleanlight button.negate { + padding: 6px 12px 6px 12px; + border-radius: 12px; + border: none; + background: #cc003a; + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: #FFFFFF; +} + +.board-color-cleanlight button.negate:hover { + background: rgba(204, 0, 58, 0.77); +} + +.board-color-cleanlight .card-details .checklist-item { + display: flex; + align-items: center; + gap: 4px; +} + +.board-color-cleanlight .card-details .check-box.materialCheckBox { + border-radius: 4px; + border: none; + background: rgba(234, 234, 237, 1); + height: 24px; + width: 24px; +} + +.board-color-cleanlight .card-details .check-box.materialCheckBox.is-checked { + border-bottom: 2px solid #000000; + border-right: 2px solid #000000; + width: 11px; + height: 19px; + border-radius: 0; + background: none; +} + +.board-color-cleanlight .sidebar-list-item-description { + color: rgba(10, 10, 20, 0.85); +} + +.board-color-cleanlight .sidebar .sidebar-content h3, +.board-color-cleanlight .sidebar .sidebar-content h2, +.board-color-cleanlight .sidebar .sidebar-content h1 { + color: rgba(10, 10, 20, 0.85); +} + +.board-color-cleanlight #cards span { + color: rgba(10, 10, 20, 0.85); +} + +.board-color-cleanlight #cards .materialCheckBox { + border-radius: 4px; + border: none; + background: rgba(234, 234, 237, 1); + height: 18px; + width: 18px; +} + +.board-color-cleanlight #cards .materialCheckBox.is-checked { + border-bottom: 2px solid #000000; + border-right: 2px solid #000000; + width: 5px; + height: 13px; + border-radius: 0; + background: none; + margin-left: 3px; + margin-top: 3px; +} + +.board-color-cleanlight .allBoards { + white-space: nowrap; +} + +.board-color-cleanlight#header-quick-access, +.board-color-cleandark#header-quick-access { + padding: 10px 20px; + padding-top: 12px !important; + gap: 20px; +} + +.board-color-cleandark#header-quick-access { + background: #2E2E39 !important; +} + +.board-color-cleanlight#header-quick-access { + background: #F1F1F3 !important; + color: rgba(10, 10, 20, 0.85); +} + +.board-color-cleanlight#header-quick-access ul.header-quick-access-list li a .viewer, +.board-color-cleandark#header-quick-access ul.header-quick-access-list li a .viewer { + max-width: 400px; + text-overflow: ellipsis; + overflow: hidden; + display: inline-flex; + align-items: center; +} + +.board-color-cleanlight#header-quick-access ul.header-quick-access-list li a .viewer p, +.board-color-cleandark#header-quick-access ul.header-quick-access-list li a .viewer p { + margin-bottom: 0; + overflow: hidden; + text-overflow: ellipsis; +} + +.board-color-cleanlight#header-quick-access ul.header-quick-access-list li { + display: inline-flex; + align-items: center; + padding-bottom: 4px; + padding-top: 4px; + margin-right: 10px; +} + +.board-color-cleanlight#header-quick-access ul.header-quick-access-list { + display: flex; + align-items: center; +} + +.board-color-cleanlight #header-main-bar, +.board-color-cleanlight#header { + background: #F1F1F3 !important; + color: rgba(10, 10, 20, 0.85) !important; +} + +.board-color-cleandark #header-main-bar, +.board-color-cleandark#header { + background: #2E2E39 !important; + color: #FFFFFF; +} + +.board-color-cleanlight .list-body .open-minicard-composer, +.board-color-cleandark .list-body .open-minicard-composer { + display: none !important; +} + +.board-color-cleanlight .minicard, +.board-color-cleandark .minicard { + border-radius: 12px; + font-size: 16px; + font-weight: 400; + line-height: 24px; + padding: 12px; +} + +.board-color-cleanlight .minicard { + background: rgba(248, 248, 249, 1); + color: rgba(10, 10, 20, 0.85); +} + +.board-color-cleandark .minicard { + color: #FFFFFF; + background: #23232B; +} + +.board-color-cleanlight .minicard .minicard-details-menu, +.board-color-cleandark .minicard .minicard-details-menu { + font-size: 16px !important; +} + +.board-color-cleanlight .minicard .date, +.board-color-cleandark .minicard .date, +.board-color-cleanlight .minicard .end-date, +.board-color-cleandark .minicard .end-date { + font-size: 16px; + font-weight: 400; + line-height: 24px; + margin-bottom: 10px; +} + +.board-color-cleanlight .minicard .date a, +.board-color-cleandark .minicard .date a, +.board-color-cleanlight .minicard .end-date, +.board-color-cleandark .minicard .end-date, +.board-color-cleanlight .card-details .card-date, +.board-color-cleandark .card-details .card-date { + padding: 4px 8px 4px 8px; + font-size: 16px; + font-weight: 400; + line-height: 24px; + color: rgba(255, 255, 255, 1); +} + +.board-color-cleanlight .minicard .end-date, +.board-color-cleandark .minicard .end-date, +.board-color-cleanlight .minicard .due-date, +.board-color-cleandark .minicard .due-date, +.board-color-cleanlight .card-details .card-date, +.board-color-cleandark .card-details .card-date { + border-radius: 8px; +} + +.board-color-cleanlight .minicard .end-date, +.board-color-cleanlight .minicard .due-date, +.board-color-cleanlight .card-details .card-date { + background: rgba(227, 227, 230, 1); + color: rgba(10, 10, 20, 1) !important; +} + +.board-color-cleandark .minicard .end-date, +.board-color-cleandark .minicard .due-date, +.board-color-cleandark .card-details .card-date { + background: #444455; +} + +.board-color-cleandark .minicard .end-date:hover, +.board-color-cleandark .minicard .due-date:hover, +.board-color-cleandark .card-details .card-date:hover { + background: rgba(68, 68, 85, 0.73); +} + +.board-color-cleanlight .minicard .end-date:hover, +.board-color-cleanlight .minicard .due-date:hover, +.board-color-cleanlight .card-details .card-date:hover { + background: rgba(207, 207, 210, 1); +} + +.board-color-cleanlight .minicard .date .current, +.board-color-cleandark .minicard .date .current, +.board-color-cleanlight .minicard .current, +.board-color-cleandark .minicard .current, +.board-color-cleanlight .card-details .current, +.board-color-cleandark .card-details .current { + background: #009B64; + border-radius: 8px; + color: rgba(255, 255, 255, 1) !important; +} + +.board-color-cleandark .minicard .date .current:hover, +.board-color-cleanlight .minicard .date .current:hover, +.board-color-cleandark .minicard .current:hover, +.board-color-cleanlight .minicard .current:hover, +.board-color-cleandark .card-details .current:hover, +.board-color-cleanlight .card-details .current:hover { + background: rgba(0, 155, 100, 0.73); + color: rgba(255, 255, 255, 1) !important; +} + +.board-color-cleanlight .minicard .date .due, +.board-color-cleandark .minicard .date .due, +.board-color-cleanlight .minicard .due, +.board-color-cleandark .minicard .due, +.board-color-cleanlight .card-details .due, +.board-color-cleandark .card-details .due { + background: #CC003A; + border-radius: 8px; + color: rgba(255, 255, 255, 1) !important; +} + +.board-color-cleanlight .card-details .due:hover, +.board-color-cleanlight .minicard .date .due:hover, +.board-color-cleanlight .minicard .due:hover, +.board-color-cleandark .minicard .due:hover, +.board-color-cleandark .minicard .date .due:hover, +.board-color-cleandark .card-details .due:hover { + background: rgba(204, 0, 58, 0.73); + color: rgba(255, 255, 255, 1) !important; +} + +.board-color-cleanlight .minicard-assignees, +.board-color-cleandark .minicard-assignees { + border-bottom: none !important; +} + +.board-color-cleanlight .minicard-composer-textarea { + background: #f8f8f9 !important; +} + +.board-color-cleandark .minicard-composer-textarea { + background: #23232B !important; +} + +.board-color-cleanlight .minicard-composer:hover { + background: #f8f8f9 !important; +} + +.board-color-cleandark .minicard-composer:hover { + background: #23232B !important; +} + +.board-color-cleanlight .minicard .badges .badge.is-finished, +.board-color-cleandark .minicard .badges .badge.is-finished { + background: #009B64 !important; + border-radius: 8px; +} + +.board-color-cleanlight .minicard .badges .badge.is-finished .badge-icon { + color: #FFFFFF; +} + +.board-color-cleanlight .card-details-item-customfield:has(.checklist-item), +.board-color-cleandark .card-details-item-customfield:has(.checklist-item) { + display: flex !important; + align-items: center; + gap: 8px; +} + +.board-color-cleanlight .card-details-item-customfield:has(.checklist-item) div, +.board-color-cleandark .card-details-item-customfield:has(.checklist-item) div { + padding-right: 0 !important; +} + +.board-color-cleanlight .card-details .card-details-items .card-details-item.custom-fields, +.board-color-cleanlight .card-details .card-details-items .card-details-item.custom-fields { + margin-left: auto; + flex-grow: 0; + border-radius: 12px; +} + +.board-color-cleanlight .card-details-item-customfield:has(.checklist-item) h3, +.board-color-cleandark .card-details-item-customfield:has(.checklist-item) h3 { + width: min-content !important; + display: flex; + align-items: center; + gap: 8px; + margin: 0 !important; +} + +.board-color-cleanlight .new-description .fa, +.board-color-cleandark .new-description .fa { + display: none; +} + +.board-color-cleanlight .card-details-left .viewer p { + color: rgba(10, 10, 20, 0.85); +} + +.board-color-cleandark .card-details-left .viewer p { + color: #FFFFFF; +} + +.board-color-cleanlight .new-comment .fa, +.board-color-cleandark .new-comment .fa { + display: none; +} + +.board-color-cleanlight .pop-over-list li > a, +.board-color-cleandark .pop-over-list li > a { + font-weight: 500; +} + +.board-color-cleanlight .pop-over-list li > a i, +.board-color-cleandark .pop-over-list li > a i { + margin-right: 6px !important; +} + +.board-color-cleanlight .pop-over .quiet { + margin-left: 100px !important; +} + +.board-color-cleandark .minicard:hover:not(.minicard-composer), +.board-color-cleandark .is-selected .minicard, .draggable-hover-card .minicard { + background: #23232B; +} + +/* Transparent modern scrollbar - cleanlight*/ +.board-color-cleanlight .board-canvas { + scrollbar-color: #0a0a14d1 #e4e4e400; +} + + +/* Apply scrollbar to sidebar content*/ +.board-color-cleanlight .sidebar .sidebar-content { + scrollbar-color: #0a0a14d1 #e4e4e400; +} + +/* Remove margins in between columns/fix spacing */ + +.board-color-cleanlight .list { + border-left: none; + padding-bottom: 8px; +} + +.board-color-cleanlight .list-body { + margin-top: 8px; +} + +/* === END CleanDark/Light THEME === */ diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index a59b58c26..06cb0d549 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -12,8 +12,9 @@ template(name="boardHeaderBar") if currentBoard if currentUser with currentBoard - a.board-header-btn(class="{{#if currentUser.isBoardAdmin}}js-edit-board-title{{else}}is-disabled{{/if}}" title="{{_ 'edit'}}" value=title) - i.fa.fa-pencil-square-o + if currentUser.isBoardAdmin + a.board-header-btn(class="{{#if currentUser.isBoardAdmin}}js-edit-board-title{{else}}is-disabled{{/if}}" title="{{_ 'edit'}}" value=title) + i.fa.fa-pencil-square-o a.board-header-btn.js-star-board(class="{{#if isStarred}}is-active{{/if}}" title="{{#if isStarred}}{{_ 'click-to-unstar'}}{{else}}{{_ 'click-to-star'}}{{/if}} {{_ 'starred-boards-description'}}") diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index 7611e705a..01859ead5 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -1,42 +1,12 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; +import dragscroll from '@wekanteam/dragscroll'; /* const DOWNCLS = 'fa-sort-down'; const UPCLS = 'fa-sort-up'; */ const sortCardsBy = new ReactiveVar(''); -Template.boardMenuPopup.events({ - 'click .js-rename-board': Popup.open('boardChangeTitle'), - 'click .js-custom-fields'() { - Sidebar.setView('customFields'); - Popup.back(); - }, - 'click .js-open-archives'() { - Sidebar.setView('archives'); - Popup.back(); - }, - 'click .js-change-board-color': Popup.open('boardChangeColor'), - 'click .js-change-language': Popup.open('changeLanguage'), - 'click .js-archive-board ': Popup.afterConfirm('archiveBoard', function() { - const currentBoard = Utils.getCurrentBoard(); - currentBoard.archive(); - // XXX We should have some kind of notification on top of the page to - // confirm that the board was successfully archived. - FlowRouter.go('home'); - }), - 'click .js-delete-board': Popup.afterConfirm('deleteBoard', function() { - const currentBoard = Utils.getCurrentBoard(); - Popup.back(); - Boards.remove(currentBoard._id); - FlowRouter.go('home'); - }), - 'click .js-outgoing-webhooks': Popup.open('outgoingWebhooks'), - 'click .js-import-board': Popup.open('chooseBoardSource'), - 'click .js-subtask-settings': Popup.open('boardSubtaskSettings'), - 'click .js-card-settings': Popup.open('boardCardSettings'), - 'click .js-minicard-settings': Popup.open('boardMinicardSettings'), -}); Template.boardChangeTitlePopup.events({ submit(event, templateInstance) { diff --git a/client/components/boards/boardsList.js b/client/components/boards/boardsList.js index 23a9ce8b2..69a29b3c2 100644 --- a/client/components/boards/boardsList.js +++ b/client/components/boards/boardsList.js @@ -151,8 +151,8 @@ BlazeComponent.extendComponent({ } const currUser = ReactiveCache.getCurrentUser(); - let orgIdsUserBelongs = currUser !== undefined && currUser.teams !== 'undefined' ? currUser.orgIdsUserBelongs() : ''; - if (orgIdsUserBelongs && orgIdsUserBelongs != '') { + let orgIdsUserBelongs = currUser?.orgIdsUserBelongs() || ''; + if (orgIdsUserBelongs) { let orgsIds = orgIdsUserBelongs.split(','); // for(let i = 0; i < orgsIds.length; i++){ // query.$and[2].$or.push({'orgs.orgId': orgsIds[i]}); @@ -162,8 +162,8 @@ BlazeComponent.extendComponent({ query.$and[2].$or.push({ 'orgs.orgId': { $in: orgsIds } }); } - let teamIdsUserBelongs = currUser !== undefined && currUser.teams !== 'undefined' ? currUser.teamIdsUserBelongs() : ''; - if (teamIdsUserBelongs && teamIdsUserBelongs != '') { + let teamIdsUserBelongs = currUser?.teamIdsUserBelongs() || ''; + if (teamIdsUserBelongs) { let teamsIds = teamIdsUserBelongs.split(','); // for(let i = 0; i < teamsIds.length; i++){ // query.$or[2].$or.push({'teams.teamId': teamsIds[i]}); @@ -199,15 +199,12 @@ BlazeComponent.extendComponent({ }, boardMembers(boardId) { - let boardMembers = []; /* Bug Board icons random dance https://github.com/wekan/wekan/issues/4214 const lists = ReactiveCache.getBoard(boardId) - let members = lists.members - members.forEach(member => { - boardMembers.push(member.userId); - }); - */ + const boardMembers = lists?.members.map(member => member.userId); return boardMembers; + */ + return []; }, isStarred() { diff --git a/client/components/cards/attachments.jade b/client/components/cards/attachments.jade index fc597205a..5e1d41da1 100644 --- a/client/components/cards/attachments.jade +++ b/client/components/cards/attachments.jade @@ -117,8 +117,6 @@ template(name="attachmentActionsPopup") | {{_ 'remove-background-image'}} else | {{_ 'add-background-image'}} - p.attachment-storage - | {{versions.original.storage}} if $neq versions.original.storage "fs" a.js-move-storage-fs diff --git a/client/components/cards/attachments.js b/client/components/cards/attachments.js index 48b100cfe..391841602 100644 --- a/client/components/cards/attachments.js +++ b/client/components/cards/attachments.js @@ -39,7 +39,7 @@ Template.attachmentGallery.events({ 'click .js-rename': Popup.open('attachmentRename'), 'click .js-confirm-delete': Popup.afterConfirm('attachmentDelete', function() { Attachments.remove(this._id); - Popup.back(2); + Popup.back(); }), }); @@ -501,7 +501,7 @@ BlazeComponent.extendComponent({ if (name === DOMPurify.sanitize(name)) { Meteor.call('renameAttachment', this.data()._id, name); } - Popup.back(2); + Popup.back(); }, } ] diff --git a/client/components/cards/cardCustomFields.jade b/client/components/cards/cardCustomFields.jade index e8f69ab1b..cefeaac88 100644 --- a/client/components/cards/cardCustomFields.jade +++ b/client/components/cards/cardCustomFields.jade @@ -79,13 +79,14 @@ template(name="cardCustomField-currency") template(name="cardCustomField-date") if canModifyCard - a.js-edit-date(title="{{showTitle}} {{_ 'predicate-week'}} {{showWeek}}" class="{{classes}}") + a.js-edit-date(title="{{showTitle}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}") if value div.card-date time(datetime="{{showISODate}}") | {{showDate}} - b - | {{showWeek}} + if showWeekOfYear + b + | {{showWeek}} else | {{_ 'edit'}} else @@ -93,8 +94,9 @@ template(name="cardCustomField-date") div.card-date time(datetime="{{showISODate}}") | {{showDate}} - b - | {{showWeek}} + if showWeekOfYear + b + | {{showWeek}} template(name="cardCustomField-dropdown") if canModifyCard diff --git a/client/components/cards/cardCustomFields.js b/client/components/cards/cardCustomFields.js index 14d675683..23647ce53 100644 --- a/client/components/cards/cardCustomFields.js +++ b/client/components/cards/cardCustomFields.js @@ -148,6 +148,10 @@ CardCustomField.register('cardCustomField'); return this.date.get().week().toString(); } + showWeekOfYear() { + return ReactiveCache.getCurrentUser().isShowWeekOfYear(); + } + showDate() { // this will start working once mquandalle:moment // is updated to at least moment.js 2.10.5 diff --git a/client/components/cards/cardDate.jade b/client/components/cards/cardDate.jade index caaab219c..202b8f6f0 100644 --- a/client/components/cards/cardDate.jade +++ b/client/components/cards/cardDate.jade @@ -1,20 +1,23 @@ template(name="dateBadge") if canModifyCard - a.js-edit-date.card-date(title="{{showTitle}} {{_ 'predicate-week'}} {{showWeek}}" class="{{classes}}") + a.js-edit-date.card-date(title="{{showTitle}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}") time(datetime="{{showISODate}}") | {{showDate}} - b - | {{showWeek}} + if showWeekOfYear + b + | {{showWeek}} else - a.card-date(title="{{showTitle}} {{_ 'predicate-week'}} {{showWeek}}" class="{{classes}}") + a.card-date(title="{{showTitle}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}") time(datetime="{{showISODate}}") | {{showDate}} - b - | {{showWeek}} + if showWeekOfYear + b + | {{showWeek}} template(name="dateCustomField") - a(title="{{showTitle}} {{_ 'predicate-week'}} {{showWeek}}" class="{{classes}}") + a(title="{{showTitle}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}") time(datetime="{{showISODate}}") | {{showDate}} - b - | {{showWeek}} + if showWeekOfYear + b + | {{showWeek}} diff --git a/client/components/cards/cardDate.js b/client/components/cards/cardDate.js index 22cc91d78..5d255614d 100644 --- a/client/components/cards/cardDate.js +++ b/client/components/cards/cardDate.js @@ -11,7 +11,7 @@ import { DatePicker } from '/client/lib/datepicker'; } _storeDate(date) { - this.card.setReceived(date); + this.card.setReceived(moment(date).format('YYYY-MM-DD HH:mm')); } _deleteDate() { @@ -37,7 +37,7 @@ import { DatePicker } from '/client/lib/datepicker'; } _storeDate(date) { - this.card.setStart(date); + this.card.setStart(moment(date).format('YYYY-MM-DD HH:mm')); } _deleteDate() { @@ -60,7 +60,7 @@ import { DatePicker } from '/client/lib/datepicker'; } _storeDate(date) { - this.card.setDue(date); + this.card.setDue(moment(date).format('YYYY-MM-DD HH:mm')); } _deleteDate() { @@ -83,7 +83,7 @@ import { DatePicker } from '/client/lib/datepicker'; } _storeDate(date) { - this.card.setEnd(date); + this.card.setEnd(moment(date).format('YYYY-MM-DD HH:mm')); } _deleteDate() { @@ -110,6 +110,10 @@ const CardDate = BlazeComponent.extendComponent({ return this.date.get().week().toString(); }, + showWeekOfYear() { + return ReactiveCache.getCurrentUser().isShowWeekOfYear(); + }, + showDate() { // this will start working once mquandalle:moment // is updated to at least moment.js 2.10.5 @@ -283,6 +287,10 @@ class CardCustomFieldDate extends CardDate { return this.date.get().week().toString(); } + showWeekOfYear() { + return ReactiveCache.getCurrentUser().isShowWeekOfYear(); + } + showDate() { // this will start working once mquandalle:moment // is updated to at least moment.js 2.10.5 @@ -314,19 +322,19 @@ CardCustomFieldDate.register('cardCustomFieldDate'); (class extends CardStartDate { showDate() { - return this.date.get().format('L'); + return this.date.get().format('YYYY-MM-DD HH:mm'); } }.register('minicardStartDate')); (class extends CardDueDate { showDate() { - return this.date.get().format('L'); + return this.date.get().format('YYYY-MM-DD HH:mm'); } }.register('minicardDueDate')); (class extends CardEndDate { showDate() { - return this.date.get().format('L'); + return this.date.get().format('YYYY-MM-DD HH:mm'); } }.register('minicardEndDate')); diff --git a/client/components/cards/cardDetails.css b/client/components/cards/cardDetails.css index 286d6d883..c04dddffb 100644 --- a/client/components/cards/cardDetails.css +++ b/client/components/cards/cardDetails.css @@ -5,7 +5,7 @@ float: left; height: 30px; width: 30px; - margin: 0 4px 4px 0; + margin: .3vh; cursor: pointer; user-select: none; z-index: 1; @@ -272,7 +272,7 @@ box-sizing: border-box; top: 97px; left: 0px; - height: calc(100% - 20px); + height: calc(100% - 100px); width: calc(100% - 20px); float: left; } diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade index 9f4318f61..6ca69c754 100644 --- a/client/components/cards/cardDetails.jade +++ b/client/components/cards/cardDetails.jade @@ -5,7 +5,7 @@ template(name="cardDetails") +attachmentViewer - section.card-details.js-card-details(class='{{#if cardMaximized}}card-details-maximized{{/if}}' class='{{#if isPopup}}card-details-popup{{/if}}'): .card-details-canvas + section.card-details.js-card-details.nodragscroll(class='{{#if cardMaximized}}card-details-maximized{{/if}}' class='{{#if isPopup}}card-details-popup{{/if}}' class='{{#unless isVerticalScrollbars}}no-scrollbars{{/unless}}'): .card-details-canvas .card-details-header(class='{{#if colorClass}}card-details-{{colorClass}}{{/if}}') +inlinedForm(classNames="js-card-details-title") +editCardTitleForm @@ -525,11 +525,12 @@ template(name="cardDetails") a.fa.fa-times-thin.js-close-inlined-form else if currentBoard.allowsDescriptionText - a.js-open-inlined-form.right(title="{{_ 'edit'}}" value=title) + a.js-open-inlined-form(title="{{_ 'edit'}}" value=title) i.fa.fa-pencil-square-o - if getDescription - +viewer - = getDescription + a.js-open-inlined-form(title="{{_ 'edit'}}" value=title) + if getDescription + +viewer + = getDescription if (hasUnsavedValue 'cardDescription' _id) p.quiet | {{_ 'unsaved-description'}} @@ -548,7 +549,7 @@ template(name="cardDetails") .card-checklist-attachmentGallery.card-checklists if currentBoard.allowsChecklists hr - +checklists(cardId = _id) + +checklists(cardId = _id card = this) if currentBoard.allowsSubtasks hr +subtasks(cardId = _id) @@ -568,25 +569,34 @@ template(name="cardDetails") +attachmentGallery hr + unless currentUser.isNoComments + .comment-title + h3.card-details-item-title + i.fa.fa-comment-o + | {{_ 'comments'}} + + if currentBoard.allowsComments + if currentUser.isBoardMember + unless currentUser.isNoComments + +commentForm + +comments + hr + .card-details-right unless currentUser.isNoComments .activity-title h3.card-details-item-title i.fa.fa-history - | {{ _ 'activity'}} + | {{ _ 'activities'}} if currentUser.isBoardMember - .material-toggle-switch(title="{{_ 'hide-system-messages'}}") - //span.toggle-switch-title - if hiddenSystemMessages - input.toggle-switch(type="checkbox" id="toggleButton" checked="checked") + .material-toggle-switch(title="{{_ 'show-activities'}}") + if showActivities + input.toggle-switch(type="checkbox" id="toggleShowActivitiesCard" checked="checked") else - input.toggle-switch(type="checkbox" id="toggleButton") - label.toggle-label(for="toggleButton") - if currentBoard.allowsComments - if currentUser.isBoardMember - unless currentUser.isNoComments - +commentForm + input.toggle-switch(type="checkbox" id="toggleShowActivitiesCard") + label.toggle-label(for="toggleShowActivitiesCard") + unless currentUser.isNoComments if isLoaded.get if isLinkedCard diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index 0351ee94f..9d022b2cd 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -63,10 +63,6 @@ BlazeComponent.extendComponent({ return card.findWatcher(Meteor.userId()); }, - hiddenSystemMessages() { - return ReactiveCache.getCurrentUser().hasHiddenSystemMessages(); - }, - customFieldsGrid() { return ReactiveCache.getCurrentUser().hasCustomFieldsGrid(); }, @@ -118,6 +114,11 @@ BlazeComponent.extendComponent({ ); }, + isVerticalScrollbars() { + const user = ReactiveCache.getCurrentUser(); + return user && user.isVerticalScrollbars(); + }, + /** returns if the list id is the current list id * @param listId list id to check * @return is the list id the current list id ? @@ -377,8 +378,11 @@ BlazeComponent.extendComponent({ Session.set('cardDetailsIsDragging', false); Session.set('cardDetailsIsMouseDown', false); }, - 'click #toggleButton'() { - Meteor.call('toggleSystemMessages'); + 'click #toggleShowActivitiesCard'() { + this.data().toggleShowActivities(); + }, + 'click #toggleHideCheckedChecklistItems'() { + this.data().toggleHideCheckedChecklistItems(); }, 'click #toggleCustomFieldsGridButton'() { Meteor.call('toggleCustomFieldsGrid'); @@ -846,13 +850,15 @@ BlazeComponent.extendComponent({ 'click .js-palette-color'() { this.currentColor.set(this.currentData().color); }, - 'click .js-submit'() { + 'click .js-submit'(event) { + event.preventDefault(); this.currentCard.setColor(this.currentColor.get()); - Popup.close(); + Popup.back(); }, - 'click .js-remove-color'() { + 'click .js-remove-color'(event) { + event.preventDefault(); this.currentCard.setColor(null); - Popup.close(); + Popup.back(); }, }, ]; diff --git a/client/components/cards/checklists.css b/client/components/cards/checklists.css index 6d8a346f8..6b8c7e8f9 100644 --- a/client/components/cards/checklists.css +++ b/client/components/cards/checklists.css @@ -8,20 +8,6 @@ textarea.js-edit-checklist-item { resize: none; height: 34px; } -.card-details .text-show-at-minicard { - width: 350px; - text-align: left; -} -.minicard .text-show-at-minicard { - display: none; -} -.text-some-space { - width: 20px; -} -.text-hide-checked-items { - width: 400px; - text-align: left; -} .delete-text, .js-delete-checklist-item, .js-convert-checklist-item-to-card { @@ -40,8 +26,6 @@ textarea.js-edit-checklist-item { display: flex; justify-content: space-between; } - - .checklist-progress-bar-container { display: flex; flex-direction: row; @@ -61,6 +45,9 @@ textarea.js-edit-checklist-item { border-radius: 16px; height: 100%; } +.checklist-title { + padding: 10px; +} .checklist-title .checkbox { float: left; width: 30px; diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 41f55292b..e943e338f 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -9,10 +9,19 @@ template(name="checklists") else a.add-checklist-top.js-open-inlined-form(title="{{_ 'add-checklist'}}") i.fa.fa-plus + if currentUser.isBoardMember + .material-toggle-switch(title="{{_ 'hide-finished-checklist'}}") + //span.toggle-switch-title + if card.hideFinishedChecklistIfItemsAreHidden + input.toggle-switch(type="checkbox" id="toggleHideFinishedChecklist" checked="checked") + else + input.toggle-switch(type="checkbox" id="toggleHideFinishedChecklist") + label.toggle-label(for="toggleHideFinishedChecklist") .card-checklist-items each checklist in checklists - +checklistDetail(checklist=checklist) + if checklist.showChecklist card.hideFinishedChecklistIfItemsAreHidden + +checklistDetail(checklist = checklist card = card) if canModifyCard +inlinedForm(autoclose=false classNames="js-add-checklist" cardId = cardId) @@ -22,7 +31,7 @@ template(name="checklists") i.fa.fa-plus template(name="checklistDetail") - .js-checklist.checklist + .js-checklist.checklist.nodragscroll +inlinedForm(classNames="js-edit-checklist-title" checklist = checklist) +editChecklistItemForm(checklist = checklist) else @@ -47,7 +56,7 @@ template(name="checklistDetail") .checklist-progress-text {{finishedPercent}}% .checklist-progress-bar .checklist-progress(style="width:{{finishedPercent}}%") - +checklistItems(checklist = checklist) + +checklistItems(checklist = checklist card = card) template(name="checklistDeletePopup") p {{_ 'confirm-checklist-delete-popup'}} @@ -64,6 +73,12 @@ template(name="addChecklistItemForm") .material-toggle-switch(title="{{_ 'newlineBecomesNewChecklistItem'}}") input.toggle-switch(type="checkbox" id="toggleNewlineBecomesNewChecklistItem") label.toggle-label(for="toggleNewlineBecomesNewChecklistItem") + | {{_ 'newLineNewItem'}} + if $eq position 'top' + .material-toggle-switch(title="{{_ 'newlineBecomesNewChecklistItemOriginOrder'}}") + input.toggle-switch(type="checkbox" id="toggleNewlineBecomesNewChecklistItemOriginOrder") + label.toggle-label(for="toggleNewlineBecomesNewChecklistItemOriginOrder") + | {{_ 'originOrder'}} template(name="editChecklistItemForm") a.fa.fa-copy(title="{{_ 'copy-text-to-clipboard'}}") @@ -87,7 +102,7 @@ template(name="checklistItems") if checklist.items.length if canModifyCard +inlinedForm(autoclose=false classNames="js-add-checklist-item" checklist = checklist position="top") - +addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true) + +addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true position="top") else a.add-checklist-item.js-open-inlined-form(title="{{_ 'add-checklist-item'}}") i.fa.fa-plus @@ -96,7 +111,7 @@ template(name="checklistItems") +inlinedForm(classNames="js-edit-checklist-item" item = item checklist = checklist) +editChecklistItemForm(type = 'item' item = item checklist = checklist) else - +checklistItemDetail(item = item checklist = checklist) + +checklistItemDetail(item = item checklist = checklist card = card) if canModifyCard +inlinedForm(autoclose=false classNames="js-add-checklist-item" checklist = checklist) +addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true) @@ -105,7 +120,7 @@ template(name="checklistItems") i.fa.fa-plus template(name='checklistItemDetail') - .js-checklist-item.checklist-item(class="{{#if item.isFinished }}is-checked{{#if hideCheckedItems}} invisible{{/if}}{{/if}}" + .js-checklist-item.checklist-item(class="{{#if item.isFinished }}is-checked{{#if checklist.hideCheckedChecklistItems}} invisible{{/if}}{{/if}}{{#if checklist.hideAllChecklistItems}} is-checked invisible{{/if}}" role="checkbox" aria-checked="{{#if item.isFinished }}true{{else}}false{{/if}}" tabindex="0") if canModifyCard .check-box-container @@ -122,27 +137,6 @@ template(name='checklistItemDetail') = item.title template(name="checklistActionsPopup") - if currentUser.isBoardMember - span.text-show-at-minicard - | {{_ 'show-at-minicard'}} - .material-toggle-switch(title="{{_ 'show-checklist-at-minicard'}}") - if showAtMinicard - input.toggle-switch(type="checkbox" id="toggleShowChecklistAtMinicardButton" checked="checked") - else - input.toggle-switch(type="checkbox" id="toggleShowChecklistAtMinicardButton") - label.toggle-label(for="toggleShowChecklistAtMinicardButton") - hr - span.text-hide-checked-items - | {{_ 'hide-checked-items'}} - .material-toggle-switch(title="{{_ 'hide-checked-items'}}") - //span.toggle-switch-title - //.check-square-icon.i.fa.fa-check-square-o - if hideCheckedItems - input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton" checked="checked") - else - input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton") - label.toggle-label(for="toggleHideCheckedItemsButton") - hr ul.pop-over-list li a.js-delete-checklist.delete-checklist @@ -154,6 +148,24 @@ template(name="checklistActionsPopup") a.js-copy-checklist.copy-checklist i.fa.fa-copy | {{_ "copyChecklist"}} ... + a.js-hide-checked-checklist-items + i.fa.fa-eye-slash + | {{_ "hideCheckedChecklistItems"}} ... + .material-toggle-switch(title="{{_ 'hide-checked-items'}}") + if checklist.hideCheckedChecklistItems + input.toggle-switch(type="checkbox" id="toggleHideCheckedChecklistItems_{{checklist._id}}" checked="checked") + else + input.toggle-switch(type="checkbox" id="toggleHideCheckedChecklistItems_{{checklist._id}}") + label.toggle-label(for="toggleHideCheckedChecklistItems_{{checklist._id}}") + a.js-hide-all-checklist-items + i.fa.fa-ban + | {{_ "hideAllChecklistItems"}} ... + .material-toggle-switch(title="{{_ 'hideAllChecklistItems'}}") + if checklist.hideAllChecklistItems + input.toggle-switch(type="checkbox" id="toggleHideAllChecklistItems_{{checklist._id}}" checked="checked") + else + input.toggle-switch(type="checkbox" id="toggleHideAllChecklistItems_{{checklist._id}}") + label.toggle-label(for="toggleHideAllChecklistItems_{{checklist._id}}") template(name="copyChecklistPopup") +copyAndMoveChecklist diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index 20e94466a..6762eab02 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -119,6 +119,7 @@ BlazeComponent.extendComponent({ event.preventDefault(); const textarea = this.find('textarea.js-add-checklist-item'); const newlineBecomesNewChecklistItem = this.find('input#toggleNewlineBecomesNewChecklistItem'); + const newlineBecomesNewChecklistItemOriginOrder = this.find('input#toggleNewlineBecomesNewChecklistItemOriginOrder'); const title = textarea.value.trim(); const checklist = this.currentData().checklist; @@ -127,22 +128,28 @@ BlazeComponent.extendComponent({ if (newlineBecomesNewChecklistItem.checked) { checklistItems = title.split('\n').map(_value => _value.trim()); if (this.currentData().position === 'top') { - checklistItems = checklistItems.reverse(); + if (newlineBecomesNewChecklistItemOriginOrder.checked === false) { + checklistItems = checklistItems.reverse(); + } } } + let addIndex; + let sortIndex; + if (this.currentData().position === 'top') { + sortIndex = Utils.calculateIndexData(null, checklist.firstItem()).base; + addIndex = -1; + } else { + sortIndex = Utils.calculateIndexData(checklist.lastItem(), null).base; + addIndex = 1; + } for (let checklistItem of checklistItems) { - let sortIndex; - if (this.currentData().position === 'top') { - sortIndex = Utils.calculateIndexData(null, checklist.firstItem()).base; - } else { - sortIndex = Utils.calculateIndexData(checklist.lastItem(), null).base; - } ChecklistItems.insert({ title: checklistItem, checklistId: checklist._id, cardId: checklist.cardId, sort: sortIndex, }); + sortIndex += addIndex; } } // We keep the form opened, empty it. @@ -201,12 +208,8 @@ BlazeComponent.extendComponent({ }, events() { - const events = { - }; - return [ { - ...events, 'click .js-open-checklist-details-menu': Popup.open('checklistActions'), 'submit .js-add-checklist': this.addChecklist, 'submit .js-edit-checklist-title': this.editChecklist, @@ -217,6 +220,10 @@ BlazeComponent.extendComponent({ 'focus .js-add-checklist-item': this.focusChecklistItem, // add and delete checklist / checklist-item 'click .js-open-inlined-form': this.closeAllInlinedForms, + 'click #toggleHideFinishedChecklist'(event) { + event.preventDefault(); + this.data().card.toggleHideFinishedChecklist(); + }, keydown: this.pressKey, }, ]; @@ -271,16 +278,6 @@ Template.checklists.helpers({ const ret = card.checklists(); return ret; }, - showAtMinicard() { - const card = ReactiveCache.getCard(this.cardId); - const ret = card.checklists({'showAtMinicard':1}); - return ret; - }, - hideCheckedItems() { - const currentUser = ReactiveCache.getCurrentUser(); - if (currentUser) return currentUser.hasHideCheckedItems(); - return false; - }, }); BlazeComponent.extendComponent({ @@ -303,26 +300,9 @@ BlazeComponent.extendComponent({ }).register('addChecklistItemForm'); BlazeComponent.extendComponent({ - toggleItem() { - const checklist = this.currentData().checklist; - const item = this.currentData().item; - if (checklist && item && item._id) { - item.toggleItem(); - } - }, events() { return [ { - 'click .js-checklist-item .check-box-container': this.toggleItem, - 'click #toggleShowChecklistAtMinicardButton'() { - const checklist = this.checklist; - if (checklist && checklist._id) { - Meteor.call('toggleShowChecklistAtMinicard', checklist._id); - } - }, - 'click #toggleHideCheckedItemsButton'() { - Meteor.call('toggleHideCheckedItems'); - }, 'click .js-delete-checklist': Popup.afterConfirm('checklistDelete', function () { Popup.back(2); const checklist = this.checklist; @@ -332,6 +312,16 @@ BlazeComponent.extendComponent({ }), 'click .js-move-checklist': Popup.open('moveChecklist'), 'click .js-copy-checklist': Popup.open('copyChecklist'), + 'click .js-hide-checked-checklist-items'(event) { + event.preventDefault(); + this.data().checklist.toggleHideCheckedChecklistItems(); + Popup.back(); + }, + 'click .js-hide-all-checklist-items'(event) { + event.preventDefault(); + this.data().checklist.toggleHideAllChecklistItems(); + Popup.back(); + }, } ] } @@ -357,11 +347,6 @@ BlazeComponent.extendComponent({ }).register('editChecklistItemForm'); Template.checklistItemDetail.helpers({ - hideCheckedItems() { - const user = ReactiveCache.getCurrentUser(); - if (user) return user.hasHideCheckedItems(); - return false; - }, }); BlazeComponent.extendComponent({ diff --git a/client/components/cards/labels.jade b/client/components/cards/labels.jade index d67ba76aa..8d12dc488 100644 --- a/client/components/cards/labels.jade +++ b/client/components/cards/labels.jade @@ -37,5 +37,4 @@ template(name="cardLabelsPopup") = name if(isLabelSelected ../_id) i.card-label-selectable-icon.fa.fa-check - if currentUser.isBoardAdmin - a.quiet-button.full.js-add-label {{_ 'label-create'}} + a.quiet-button.full.js-add-label {{_ 'label-create'}} diff --git a/client/components/cards/minicard.css b/client/components/cards/minicard.css index 113420067..e4b3ca438 100644 --- a/client/components/cards/minicard.css +++ b/client/components/cards/minicard.css @@ -1,12 +1,3 @@ -.minicard .checklists-title, -.minicard .add-checklist, -.minicard .add-checklist-item, -.minicard .checklist-details-menu { - display: none; -} -.minicard .checklist-progress-bar-container { - width: 190px; /* TODO: Add adjustable width https://github.com/wekan/wekan/pull/4964 */ -} .minicard-wrapper { cursor: pointer; position: relative; @@ -138,14 +129,6 @@ max-width: 100%; margin-right: 4px; } -/* -.minicard .checklists-title, -.minicard .add-checklist, -.minicard .add-checklist-item, -.minicard .checklist-details-menu { - display: none; -} -*/ .minicard .handle { width: 20px; height: 20px; diff --git a/client/components/cards/minicard.jade b/client/components/cards/minicard.jade index b13ddc4b4..7630c85cd 100644 --- a/client/components/cards/minicard.jade +++ b/client/components/cards/minicard.jade @@ -1,5 +1,5 @@ template(name="minicard") - .minicard( + .minicard.nodragscroll( class="{{#if isLinkedCard}}linked-card{{/if}}" class="{{#if isLinkedBoard}}linked-board{{/if}}" class="{{#if colorClass}}minicard-{{colorClass}}{{/if}}") @@ -112,12 +112,6 @@ template(name="minicard") +viewer = trueValue - .card-checklist-attachmentGalleries - .card-checklist-attachmentGallery.card-checklists - if currentBoard.allowsChecklists - //hr - //+checklists(cardId=_id showAtMinicard=true) - if showAssignee if getAssignees .minicard-assignees.js-minicard-assignees diff --git a/client/components/cards/minicard.js b/client/components/cards/minicard.js index a2d355b5f..d9b5a3806 100644 --- a/client/components/cards/minicard.js +++ b/client/components/cards/minicard.js @@ -42,11 +42,7 @@ BlazeComponent.extendComponent({ const board = this.data().board(); let ret = false; if (board) { - ret = - board.allowsCreatorOnMinicard === null || - board.allowsCreatorOnMinicard === undefined || - board.allowsCreatorOnMinicard - ; + ret = board.allowsCreatorOnMinicard ?? false; } return ret; }, @@ -92,11 +88,6 @@ BlazeComponent.extendComponent({ events() { return [ { - 'click .minicard-checklists'() { - // Prevents clicking checklist at minicard from opening card details, - // while still allowing checking checlist items. - event.preventDefault(); - }, 'click .js-linked-link'() { if (this.data().isLinkedCard()) Utils.goCardId(this.data().linkedId); else if (this.data().isLinkedBoard()) diff --git a/client/components/lists/list.css b/client/components/lists/list.css index 4b26f0c05..b94a87f24 100644 --- a/client/components/lists/list.css +++ b/client/components/lists/list.css @@ -7,18 +7,16 @@ border-left: 1px solid #ccc; padding: 0; float: left; - min-width: 100px; /* TODO(mark-i-m): hardcoded? */ - /*max-width: 270px;*/ - /* Reverted incomplete change list width: */ - /* https://github.com/wekan/wekan/issues/4558 */ - /* Orinal width: 270px. Changes not saved yet: */ - /*resize: both; - List width and height resizeable */ - /* overflow: auto; - List width and height resizeable */ +} +[id^="swimlane-"] .list:first-child { + min-width: 20px; +} +.list.list-auto-width { + flex: 1; } .list:first-child { - min-width: 20px; - margin-left: 5px; border-left: none; + flex: none; } .card-details + .list { border-left: none; @@ -37,6 +35,9 @@ box-shadow: none; height: 100px; } +.list.list-collapsed { + flex: none; +} .list.list-composer .open-list-composer, .list .list-composer .open-list-composer { color: #8c8c8c; @@ -48,7 +49,7 @@ } .list-header-add { flex: 0 0 auto; - padding: 20px 12px 4px; + padding: 12px; position: relative; min-height: 20px; } @@ -81,6 +82,20 @@ overflow: hidden; text-overflow: ellipsis; word-wrap: break-word; +} +.list-rotated { + width: 10px; + height: 250px; + margin-top: -90px; + margin-left: -110px; + margin-right: 0; + transform: rotate(90deg); + position: relative; + text-overflow: ellipsis; + white-space: nowrap; +} +.list-header .list-rotated { + } .list-header .list-header-watch-icon { padding-left: 10px; @@ -99,6 +114,23 @@ color: #a6a6a6; margin-right: 15px; } +.list-header .list-header-collapse-right { + color: #a6a6a6; +} +.list-header .list-header-collapse-left { + color: #a6a6a6; + margin-right: 15px; +} +.list-header .list-header-uncollapse-left { + color: #a6a6a6; +} +.list-header .list-header-uncollapse-right { + color: #a6a6a6; +} +.list-header .list-header-collapse { + color: #a6a6a6; + margin-right: 15px; +} .list-header .highlight { color: #ce1414; } @@ -220,11 +252,11 @@ padding: 15px 19px; } .list-header { - padding: 0 12px 0px; + /*Updated padding values for mobile devices, this should fix text grouping issue*/ + padding: 20px 0px 20px 0px; border-bottom: 0px solid #e4e4e4; - height: 60px; + min-height: 30px; margin-top: 10px; - display: flex; align-items: center; } .list-header .list-header-left-icon { @@ -297,7 +329,6 @@ } .list-header-white { border-bottom: 6px solid #fff; - border: 1px solid #eee; } .list-header-green { border-bottom: 6px solid #3cb500; @@ -330,7 +361,7 @@ border-bottom: 6px solid #51e898; } .list-header-silver { - border-bottom: 6px solid unset; + border-bottom: 6px solid #e4e4e4; } .list-header-peachpuff { border-bottom: 6px solid #ffdab9; diff --git a/client/components/lists/list.jade b/client/components/lists/list.jade index 748c53538..e39efcad0 100644 --- a/client/components/lists/list.jade +++ b/client/components/lists/list.jade @@ -1,6 +1,7 @@ template(name='list') .list.js-list(id="js-list-{{_id}}" - style="width:{{listWidth}}px;") + style="{{#unless collapsed}}min-width:{{listWidth}}px;max-width:{{listConstraint}}px;{{/unless}}" + class="{{#if collapsed}}list-collapsed{{/if}} {{#if autoWidth}}list-auto-width{{/if}}") +listHeader +listBody diff --git a/client/components/lists/list.js b/client/components/lists/list.js index a451c6b5b..90c23fa52 100644 --- a/client/components/lists/list.js +++ b/client/components/lists/list.js @@ -196,10 +196,22 @@ BlazeComponent.extendComponent({ }, listWidth() { - const user = Meteor.user(); + const user = ReactiveCache.getCurrentUser(); const list = Template.currentData(); return user.getListWidth(list.boardId, list._id); }, + + listConstraint() { + const user = ReactiveCache.getCurrentUser(); + const list = Template.currentData(); + return user.getListConstraint(list.boardId, list._id); + }, + + autoWidth() { + const user = ReactiveCache.getCurrentUser(); + const list = Template.currentData(); + return user.isAutoWidth(list.boardId); + }, }).register('list'); Template.miniList.events({ diff --git a/client/components/lists/listBody.jade b/client/components/lists/listBody.jade index 3d319f1ca..662b5f187 100644 --- a/client/components/lists/listBody.jade +++ b/client/components/lists/listBody.jade @@ -1,37 +1,38 @@ template(name="listBody") - .list-body - .minicards.clearfix.js-minicards(class="{{#if reachedWipLimit}}js-list-full{{/if}}") - if cards.length - +inlinedForm(autoclose=false position="top") - +addCardForm(listId=_id position="top") - ul.sidebar-list - each customFieldsSum - li - +viewer - = name - if $eq customFieldsSum.type "number" + unless collapsed + .list-body(class="{{#unless isVerticalScrollbars}}no-scrollbars{{/unless}}") + .minicards.clearfix.js-minicards(class="{{#if reachedWipLimit}}js-list-full{{/if}}") + if cards.length + +inlinedForm(autoclose=false position="top") + +addCardForm(listId=_id position="top") + ul.sidebar-list + each customFieldsSum + li +viewer - = value - if $eq customFieldsSum.type "currency" - +viewer - = formattedCurrencyCustomFieldValue(value) - each (cardsWithLimit (idOrNull ../../_id)) - a.minicard-wrapper.js-minicard(href=originRelativeUrl - class="{{#if cardIsSelected}}is-selected{{/if}}" - class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}") - if MultiSelection.isActive - .materialCheckBox.multi-selection-checkbox.js-toggle-multi-selection( - class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}") - +minicard(this) - if (showSpinner (idOrNull ../../_id)) - +spinnerList + = name + if $eq customFieldsSum.type "number" + +viewer + = value + if $eq customFieldsSum.type "currency" + +viewer + = formattedCurrencyCustomFieldValue(value) + each (cardsWithLimit (idOrNull ../../_id)) + a.minicard-wrapper.js-minicard(href=originRelativeUrl + class="{{#if cardIsSelected}}is-selected{{/if}}" + class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}") + if MultiSelection.isActive + .materialCheckBox.multi-selection-checkbox.js-toggle-multi-selection( + class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}") + +minicard(this) + if (showSpinner (idOrNull ../../_id)) + +spinnerList - if canSeeAddCard - +inlinedForm(autoclose=false position="bottom") - +addCardForm(listId=_id position="bottom") - else - a.open-minicard-composer.js-card-composer.js-open-inlined-form(title="{{_ 'add-card-to-bottom-of-list'}}") - i.fa.fa-plus + if canSeeAddCard + +inlinedForm(autoclose=false position="bottom") + +addCardForm(listId=_id position="bottom") + else + a.open-minicard-composer.js-card-composer.js-open-inlined-form(title="{{_ 'add-card-to-bottom-of-list'}}") + i.fa.fa-plus template(name="spinnerList") .sk-spinner.sk-spinner-list( diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index f68599c83..05fabd4a2 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -231,6 +231,11 @@ BlazeComponent.extendComponent({ ); }, + isVerticalScrollbars() { + const user = ReactiveCache.getCurrentUser(); + return user && user.isVerticalScrollbars(); + }, + cardDetailsPopup(event) { if (!Popup.isOpen()) { Popup.open("cardDetails")(event); diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade index d11d4a529..075b6282d 100644 --- a/client/components/lists/listHeader.jade +++ b/client/components/lists/listHeader.jade @@ -1,5 +1,5 @@ template(name="listHeader") - .list-header.js-list-header( + .list-header.js-list-header.nodragscroll( class="{{#if limitToShowCardsCount}}list-header-card-count{{/if}}" class=colorClass) +inlinedForm @@ -8,19 +8,40 @@ template(name="listHeader") if isMiniScreen if currentList a.list-header-left-icon.fa.fa-angle-left.js-unselect-list - h2.list-header-name( - title="{{ moment modifiedAt 'LLL' }}" - class="{{#if currentUser.isBoardMember}}{{#unless currentUser.isCommentOnly}}{{#unless currentUser.isWorker}}js-open-inlined-form is-editable{{/unless}}{{/unless}}{{/if}}") - +viewer - = title - if wipLimit.enabled - | ( - span(class="{{#if exceededWipLimit}}highlight{{/if}}") {{cards.length}} - |/#{wipLimit.value}) - - if showCardsCountForList cards.length - span.cardCount {{cardsCount}} {{cardsCountForListIsOne cards.length}} - + else + if collapsed + a.js-collapse(title="{{_ 'uncollapse'}}") + i.fa.fa-arrow-left.list-header-uncollapse-left + i.fa.fa-arrow-right.list-header-uncollapse-right + if showCardsCountForList cards.length + br + span.cardCount {{cardsCount}} + if isMiniScreen + h2.list-header-name( + title="{{ moment modifiedAt 'LLL' }}" + class="{{#if currentUser.isBoardMember}}{{#unless currentUser.isCommentOnly}}{{#unless currentUser.isWorker}}js-open-inlined-form is-editable{{/unless}}{{/unless}}{{/if}}") + +viewer + = title + if wipLimit.enabled + | ( + span(class="{{#if exceededWipLimit}}highlight{{/if}}") {{cards.length}} + |/#{wipLimit.value}) + if showCardsCountForList cards.length + span.cardCount {{cardsCount}} {{cardsCountForListIsOne cards.length}} + else + div(class="{{#if collapsed}}list-rotated{{/if}}") + h2.list-header-name( + title="{{ moment modifiedAt 'LLL' }}" + class="{{#if currentUser.isBoardMember}}{{#unless currentUser.isCommentOnly}}{{#unless currentUser.isWorker}}js-open-inlined-form is-editable{{/unless}}{{/unless}}{{/if}}") + +viewer + = title + if wipLimit.enabled + | ( + span(class="{{#if exceededWipLimit}}highlight{{/if}}") {{cards.length}} + |/#{wipLimit.value}) + unless collapsed + if showCardsCountForList cards.length + span.cardCount {{cardsCount}} {{cardsCountForListIsOne cards.length}} if isMiniScreen if currentList if isWatching @@ -36,16 +57,20 @@ template(name="listHeader") else if currentUser.isBoardMember if isWatching i.list-header-watch-icon.fa.fa-eye - div.list-header-menu - unless currentUser.isCommentOnly - //if isBoardAdmin - // a.fa.js-list-star.list-header-plus-top(class="fa-star{{#unless starred}}-o{{/unless}}") - if canSeeAddCard - a.js-add-card.fa.fa-plus.list-header-plus-top(title="{{_ 'add-card-to-top-of-list'}}") - a.fa.fa-navicon.js-open-list-menu(title="{{_ 'listActionPopup-title'}}") - if currentUser.isBoardAdmin - if isTouchScreenOrShowDesktopDragHandles - a.list-header-handle.handle.fa.fa-arrows.js-list-handle + unless collapsed + div.list-header-menu + unless currentUser.isCommentOnly + //if isBoardAdmin + // a.fa.js-list-star.list-header-plus-top(class="fa-star{{#unless starred}}-o{{/unless}}") + if canSeeAddCard + a.js-add-card.fa.fa-plus.list-header-plus-top(title="{{_ 'add-card-to-top-of-list'}}") + a.js-collapse(title="{{_ 'collapse'}}") + i.fa.fa-arrow-right.list-header-collapse-right + i.fa.fa-arrow-left.list-header-collapse-left + a.fa.fa-navicon.js-open-list-menu(title="{{_ 'listActionPopup-title'}}") + if currentUser.isBoardAdmin + if isTouchScreenOrShowDesktopDragHandles + a.list-header-handle.handle.fa.fa-arrows.js-list-handle template(name="editListTitleForm") .list-composer @@ -166,8 +191,14 @@ template(name="setListWidthPopup") label {{_ 'set-list-width-value'}} p input.list-width-value(type="number" value="{{ listWidthValue }}" min="100") + input.list-constraint-value(type="number" value="{{ listConstraintValue }}" min="100") input.list-width-apply(type="submit" value="{{_ 'apply'}}") input.list-width-error + br + a.js-auto-width-board( + title="{{#if isAutoWidth}}{{_ 'click-to-disable-auto-width'}}{{else}}{{_ 'click-to-enable-auto-width'}}{{/if}}") + i.fa(class="fa-solid fa-{{#if isAutoWidth}}compress{{else}}expand{{/if}}") + span {{_ 'auto-list-width'}} template(name="listWidthErrorPopup") .list-width-invalid diff --git a/client/components/lists/listHeader.js b/client/components/lists/listHeader.js index 71381e17e..5a3e212d8 100644 --- a/client/components/lists/listHeader.js +++ b/client/components/lists/listHeader.js @@ -1,5 +1,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; +import dragscroll from '@wekanteam/dragscroll'; let listsColors; Meteor.startup(() => { @@ -31,6 +32,17 @@ BlazeComponent.extendComponent({ return !status; } }, + collapsed(check = undefined) { + const list = Template.currentData(); + const status = list.isCollapsed(); + if (check === undefined) { + // just check + return status; + } else { + list.collapse(!status); + return !status; + } + }, editTitle(event) { event.preventDefault(); const newTitle = this.childComponents('inlinedForm')[0] @@ -104,6 +116,10 @@ BlazeComponent.extendComponent({ event.preventDefault(); this.starred(!this.starred()); }, + 'click .js-collapse'(event) { + event.preventDefault(); + this.collapsed(!this.collapsed()); + }, 'click .js-open-list-menu': Popup.open('listAction'), 'click .js-add-card.list-header-plus-top'(event) { const listDom = $(event.target).parents( @@ -140,7 +156,7 @@ Template.listActionPopup.helpers({ isWatching() { return this.findWatcher(Meteor.userId()); - }, + } }); Template.listActionPopup.events({ @@ -332,14 +348,20 @@ BlazeComponent.extendComponent({ .val(), 10, ); + const constraint = parseInt( + Template.instance() + .$('.list-constraint-value') + .val(), + 10, + ); // FIXME(mark-i-m): where do we put constants? - if (width < 100 || !width) { + if (width < 100 || !width || constraint < 100 || !constraint) { Template.instance() .$('.list-width-error') .click(); } else { - Meteor.call('applyListWidth', board, list._id, width); + Meteor.call('applyListWidth', board, list._id, width, constraint); Popup.back(); } }, @@ -347,12 +369,28 @@ BlazeComponent.extendComponent({ listWidthValue() { const list = Template.currentData(); const board = list.boardId; - return Meteor.user().getListWidth(board, list._id); + return ReactiveCache.getCurrentUser().getListWidth(board, list._id); + }, + + listConstraintValue() { + const list = Template.currentData(); + const board = list.boardId; + return ReactiveCache.getCurrentUser().getListConstraint(board, list._id); + }, + + isAutoWidth() { + const boardId = Utils.getCurrentBoardId(); + const user = ReactiveCache.getCurrentUser(); + return user && user.isAutoWidth(boardId); }, events() { return [ { + 'click .js-auto-width-board'() { + dragscroll.reset(); + ReactiveCache.getCurrentUser().toggleAutoWidth(Utils.getCurrentBoardId()); + }, 'click .list-width-apply': this.applyListWidth, 'click .list-width-error': Popup.open('listWidthError'), }, diff --git a/client/components/main/accessibility.css b/client/components/main/accessibility.css new file mode 100644 index 000000000..1929848b9 --- /dev/null +++ b/client/components/main/accessibility.css @@ -0,0 +1,74 @@ +.my-cards-board-wrapper { + border-radius: 0 0 4px 4px; + min-width: 400px; + margin-bottom: 2rem; + margin-right: auto; + margin-left: auto; + border-width: 2px; + border-style: solid; + border-color: #a2a2a2; +} +.my-cards-board-title { + font-size: 1.4rem; + font-weight: bold; + padding: 0.5rem; + background-color: #808080; + color: #fff; +} +.my-cards-swimlane-title { + font-size: 1.1rem; + font-weight: bold; + padding: 0.5rem; + padding-bottom: 0.4rem; + margin-top: 0; + margin-bottom: 0.5rem; + text-align: center; +} +.swimlane-default-color { + background-color: #d3d3d3; +} +.my-cards-list-title { + font-weight: bold; + font-size: 1.1rem; + text-align: center; + margin-bottom: 0.7rem; +} +.my-cards-list-wrapper { + margin: 1rem; + border-radius: 5px; + display: inline-grid; + min-width: 250px; + max-width: 350px; +} +.my-cards-card-wrapper { + margin-top: 0; + margin-bottom: 10px; +} +.my-cards-dueat-list-wrapper { + max-width: 500px; + margin-right: auto; + margin-left: auto; +} +.my-cards-board-table thead { + border-bottom: 3px solid #4d4d4d; + background-color: transparent; +} +.my-cards-board-table th, +.my-cards-board-table td { + border: 0; +} +.my-cards-board-table tr { + border-bottom: 2px solid #a2a2a2; +} +.my-cards-card-title-table { + font-weight: bold; + padding-left: 2px; + max-width: 243px; +} +.my-cards-board-badge { + width: 36px; + height: 24px; + float: left; + border-radius: 5px; + margin-right: 5px; +} diff --git a/client/components/main/accessibility.jade b/client/components/main/accessibility.jade new file mode 100644 index 000000000..7c798d771 --- /dev/null +++ b/client/components/main/accessibility.jade @@ -0,0 +1,8 @@ +template(name="accessibilityHeaderBar") + if currentUser + h1 + | {{_ 'accessibility-title'}} + +template(name="accessibility") + if currentUser + | {{_ 'accessibility-content'}} diff --git a/client/components/main/accessibility.js b/client/components/main/accessibility.js new file mode 100644 index 000000000..38d8f6591 --- /dev/null +++ b/client/components/main/accessibility.js @@ -0,0 +1,11 @@ +import { ReactiveCache } from '/imports/reactiveCache'; +import { TAPi18n } from '/imports/i18n'; + +BlazeComponent.extendComponent({ + onCreated() { + this.error = new ReactiveVar(''); + this.loading = new ReactiveVar(false); + + Meteor.subscribe('setting'); + }, +}).register('accessibility'); diff --git a/client/components/main/editor.css b/client/components/main/editor.css index 2d658fb7d..ac832de59 100644 --- a/client/components/main/editor.css +++ b/client/components/main/editor.css @@ -2,15 +2,15 @@ .inlined-form a.fa.fa-brands.fa-markdown { float: right; position: absolute; - top: -20px; + top: -10px; right: 60px; } .new-comment a.fa.fa-copy, .inlined-form a.fa.fa-copy { float: right; - position: absolute; - top: -20px; - right: 6px; + position: relative; + top: -10px; + right: 5px; } .js-inlined-form.viewer.btn-sm { position: absolute; diff --git a/client/components/main/layouts.css b/client/components/main/layouts.css index 22ec3b609..2b8c65c06 100644 --- a/client/components/main/layouts.css +++ b/client/components/main/layouts.css @@ -446,6 +446,12 @@ a:not(.disabled).is-active i.fa { padding: 0; padding-top: 15px; } +.no-scrollbars { + scrollbar-width: none; +} +.no-scrollbars::-webkit-scrollbar { + display: none !important; +} @media screen and (max-width: 800px) { #content { margin: 1px 0px 0px 0px; diff --git a/client/components/settings/adminReports.jade b/client/components/settings/adminReports.jade index 5fc99f0b5..1d6e35b16 100644 --- a/client/components/settings/adminReports.jade +++ b/client/components/settings/adminReports.jade @@ -58,18 +58,20 @@ template(name="rulesReport") h1 {{_ 'rulesReportTitle'}} if resultsCount table - tr - th Rule Title - th Board Title - th actionType - th activityType + thead + tr + th Rule Title + th Board Title + th actionType + th activityType each rule in results - tr - td {{ rule.title }} - td {{ rule.boardTitle }} - td {{ rule.action.actionType }} - td {{ rule.trigger.activityType }} + tbody + tr + td {{ rule.title }} + td {{ rule.boardTitle }} + td {{ rule.action.actionType }} + td {{ rule.trigger.activityType }} else div {{_ 'no-results' }} @@ -77,22 +79,24 @@ template(name="filesReport") h1 {{_ 'filesReportTitle'}} if resultsCount table - tr - th Filename - th.right Size (kB) - th MIME Type - th Attachment ID - th Board ID - th Card ID + thead + tr + th Filename + th.right Size (kB) + th MIME Type + th Attachment ID + th Board ID + th Card ID each att in results - tr - td {{ att.name }} - td.right {{ fileSize att.size }} - td {{ att.type }} - td {{ att._id }} - td {{ att.meta.boardId }} - td {{ att.meta.cardId }} + tbody + tr + td {{ att.name }} + td.right {{ fileSize att.size }} + td {{ att.type }} + td {{ att._id }} + td {{ att.meta.boardId }} + td {{ att.meta.cardId }} else div {{_ 'no-results' }} @@ -100,22 +104,24 @@ template(name="cardsReport") h1 {{_ 'cardsReportTitle'}} if resultsCount table.table - tr - th Card Title - th Board - th Swimlane - th List - th Members - th Assignees + thead + tr + th Card Title + th Board + th Swimlane + th List + th Members + th Assignees each card in results - tr - td {{abbreviate card.title }} - td {{abbreviate card.board.title }} - td {{abbreviate card.swimlane.title }} - td {{abbreviate card.list.title }} - td {{userNames card.members }} - td {{userNames card.assignees }} + tbody + tr + td {{abbreviate card.title }} + td {{abbreviate card.board.title }} + td {{abbreviate card.swimlane.title }} + td {{abbreviate card.list.title }} + td {{userNames card.members }} + td {{userNames card.assignees }} else div {{_ 'no-results' }} @@ -123,22 +129,25 @@ template(name="boardsReport") h1 {{_ 'boardsReportTitle'}} if resultsCount table.table - tr - th Title - th Id - th Permission - th Archived? - th Members - th Organizations - th Teams - - each board in results + thead tr - td {{abbreviate board.title }} - td {{abbreviate board._id }} - td {{ board.permission }} - td - = yesOrNo(board.archived) - td {{userNames board.members }} + th Title + th Id + th Permission + th Archived? + th Members + th Organizations + th Teams + each board in results + tbody + tr + td {{abbreviate board.title }} + td {{abbreviate board._id }} + td {{ board.permission }} + td + = yesOrNo(board.archived) + td {{userNames board.members }} + td {{orgs board.orgs }} + td {{teams board.teams }} else div {{_ 'no-results' }} diff --git a/client/components/settings/adminReports.js b/client/components/settings/adminReports.js index ef364fb1b..23a438347 100644 --- a/client/components/settings/adminReports.js +++ b/client/components/settings/adminReports.js @@ -170,8 +170,27 @@ class AdminReport extends BlazeComponent { .join(", "); return ret; } + teams(memberTeams) { + const ret = (memberTeams || []) + .map(_memberTeam => { + const _ret = ReactiveCache.getTeam(_memberTeam.teamId)?.teamDisplayName || _memberTeam.teamId; + return _ret; + }) + .join(", "); + return ret; + } + orgs(orgs) { + const ret = (orgs || []) + .map(_orgs => { + const _ret = ReactiveCache.getOrg(_orgs.orgId)?.orgDisplayName || _orgs.orgId; + return _ret; + }) + .join(", "); + return ret; + } }.register('boardsReport')); + (class extends AdminReport { collection = Cards; diff --git a/client/components/settings/peopleBody.jade b/client/components/settings/peopleBody.jade index 2e4fe5021..5f56a6142 100644 --- a/client/components/settings/peopleBody.jade +++ b/client/components/settings/peopleBody.jade @@ -73,7 +73,7 @@ template(name="people") template(name="orgGeneral") table - tbody + thead tr th {{_ 'displayName'}} th {{_ 'description'}} @@ -84,12 +84,14 @@ template(name="orgGeneral") th {{_ 'active'}} th +newOrgRow + tbody + tr each org in orgList +orgRow(orgId=org._id) template(name="teamGeneral") table - tbody + thead tr th {{_ 'displayName'}} th {{_ 'description'}} @@ -99,6 +101,8 @@ template(name="teamGeneral") th {{_ 'active'}} th +newTeamRow + tbody + tr each team in teamList +teamRow(teamId=team._id) @@ -106,7 +110,7 @@ template(name="peopleGeneral") #divAddOrRemoveTeamContainer +modifyTeamsUsers table - tbody + thead tr th +selectAllUser @@ -124,6 +128,8 @@ template(name="peopleGeneral") th {{_ 'teams'}} th +newUserRow + tbody + tr each user in peopleList +peopleRow(userId=user._id) @@ -494,9 +500,9 @@ template(name="modifyTeamsUsers") | {{_ 'r-action'}} .form-group.flex input.wekan-form-control#addAction(type="radio" name="action" value="true" checked="checked") - span {{_ 'add'}} + label(for=addAction) {{_ 'add'}} input.wekan-form-control#deleteAction(type="radio" name="action" value="false") - span {{_ 'delete'}} + label(for=deleteAction) {{_ 'delete'}} div.buttonsContainer input.primary.wide#addTeamBtn(type="submit" value="{{_ 'save'}}") input.primary.wide#cancelBtn(type="submit" value="{{_ 'cancel'}}") diff --git a/client/components/settings/settingBody.css b/client/components/settings/settingBody.css index 11abe1d6d..83a1a309d 100644 --- a/client/components/settings/settingBody.css +++ b/client/components/settings/settingBody.css @@ -7,11 +7,13 @@ display: -moz-flex; display: -ms-flexbox; display: flex; + height: 100%; } .setting-content { color: #727479; background: #dedede; width: 100%; + height: 100%; position: absolute; } .setting-content .content-title { @@ -56,6 +58,8 @@ -moz-user-select: text; -ms-user-select: text; user-select: text; + max-height: 100%; + overflow: auto; } .setting-content .content-body .main-body ul li { padding: 0.5rem 0.5rem; @@ -68,26 +72,31 @@ padding: 0 0.5rem; } .setting-content .content-body .main-body ul li .admin-announcement, +.setting-content .content-body .main-body ul li .admin-accessibility, .setting-content .content-body .main-body ul li .invite-people, .setting-content .content-body .main-body ul li .layout { padding-left: 20px; } .setting-content .content-body .main-body ul li .admin-announcement li, +.setting-content .content-body .main-body ul li .admin-accessibility li, .setting-content .content-body .main-body ul li .invite-people li, .setting-content .content-body .main-body ul li .layout li { min-width: 500px; } .setting-content .content-body .main-body ul li .admin-announcement li ul.no-margin-bottom, +.setting-content .content-body .main-body ul li .admin-accessibility li ul.no-margin-bottom, .setting-content .content-body .main-body ul li .invite-people li ul.no-margin-bottom, .setting-content .content-body .main-body ul li .layout li ul.no-margin-bottom { margin-bottom: 0; } .setting-content .content-body .main-body ul li .admin-announcement li .bg-white a, +.setting-content .content-body .main-body ul li .admin-accessibility li .bg-white a, .setting-content .content-body .main-body ul li .invite-people li .bg-white a, .setting-content .content-body .main-body ul li .layout li .bg-white a { background: #f7f7f7; } .setting-content .content-body .main-body ul li .admin-announcement li .bg-white a.is-checked, +.setting-content .content-body .main-body ul li .admin-accessibility li .bg-white a.is-checked, .setting-content .content-body .main-body ul li .invite-people li .bg-white a.is-checked, .setting-content .content-body .main-body ul li .layout li .bg-white a.is-checked { background: #fff; diff --git a/client/components/settings/settingBody.jade b/client/components/settings/settingBody.jade index 2a8a282e2..3e6ec2af6 100644 --- a/client/components/settings/settingBody.jade +++ b/client/components/settings/settingBody.jade @@ -30,6 +30,10 @@ template(name="setting") a.js-setting-menu(data-id="announcement-setting") i.fa.fa-bullhorn | {{_ 'admin-announcement'}} + //li + // a.js-setting-menu(data-id="accessibility-setting") + // i.fa.fa-universal-access + // | {{_ 'accessibility'}} li a.js-setting-menu(data-id="layout-setting") i.fa.fa-object-group @@ -52,6 +56,8 @@ template(name="setting") +tableVisibilityModeSettings else if announcementSetting.get +announcementSettings + else if accessibilitySetting.get + +accessibilitySettings else if layoutSetting.get +layoutSettings else if webhookSetting.get @@ -137,34 +143,32 @@ template(name='tableVisibilityModeSettings') .title {{_ 'tableVisibilityMode-allowPrivateOnly'}} .form-group.flex input.wekan-form-control#accounts-allowPrivateOnly(type="radio" name="allowPrivateOnly" value="true" checked="{{#if allowPrivateOnly}}checked{{/if}}") - span {{_ 'yes'}} + label {{_ 'yes'}} input.wekan-form-control#accounts-allowPrivateOnly(type="radio" name="allowPrivateOnly" value="false" checked="{{#unless allowPrivateOnly}}checked{{/unless}}") - span {{_ 'no'}} + label {{_ 'no'}} button.js-tableVisibilityMode-save.primary {{_ 'save'}} template(name='accountSettings') ul#account-setting.setting-detail - li - button.js-all-hide-system-messages.primary {{_ 'hide-system-messages-of-all-users'}} li.accounts-form .title {{_ 'accounts-allowEmailChange'}} .form-group.flex input.wekan-form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="true" checked="{{#if allowEmailChange}}checked{{/if}}") - span {{_ 'yes'}} + label {{_ 'yes'}} input.wekan-form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="false" checked="{{#unless allowEmailChange}}checked{{/unless}}") - span {{_ 'no'}} + label {{_ 'no'}} .title {{_ 'accounts-allowUserNameChange'}} .form-group.flex input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="true" checked="{{#if allowUserNameChange}}checked{{/if}}") - span {{_ 'yes'}} + label {{_ 'yes'}} input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="false" checked="{{#unless allowUserNameChange}}checked{{/unless}}") - span {{_ 'no'}} + label {{_ 'no'}} .title {{_ 'accounts-allowUserDelete'}} .form-group.flex input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="true" checked="{{#if allowUserDelete}}checked{{/if}}") - span {{_ 'yes'}} + label {{_ 'yes'}} input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="false" checked="{{#unless allowUserDelete}}checked{{/unless}}") - span {{_ 'no'}} + label {{_ 'no'}} button.js-accounts-save.primary {{_ 'save'}} template(name='announcementSettings') @@ -183,8 +187,33 @@ template(name='announcementSettings') li button.js-announcement-save.primary {{_ 'save'}} +template(name='accessibilitySettings') + ul#accessibility-setting.setting-detail + li + a.flex.js-toggle-accessibility + .materialCheckBox(class="{{#if currentAccessibility.enabled}}is-checked{{/if}}") + + span {{_ 'admin-accessibility-active'}} + li + .title {{_ 'accessibility-title'}} + .form-group + input.wekan-form-control#accessibility-title(type="text", placeholder="" value="{{currentSetting.accessibilityTitle}}") + li + .accessibility-content(class="{{#if currentAccessibility.enabled}}{{else}}hide{{/if}}") + ul + li + .title {{_ 'admin-accessibility-title'}} + textarea#admin-accessibility.wekan-form-control= currentAccessibility.accessibilityTitle + li + .title {{_ 'admin-accessibility-content'}} + textarea#admin-accessibility.wekan-form-control= currentAccessibility.accessibilityContent + li + button.js-accessibility-save.primary {{_ 'save'}} + template(name='layoutSettings') ul#layout-setting.setting-detail + li + button.js-all-boards-hide-activities.primary {{_ 'hide-activities-of-all-boards'}} li.layout-form .title {{_ 'oidc-button-text'}} .form-group @@ -201,9 +230,9 @@ template(name='layoutSettings') .title {{_ 'display-authentication-method'}} .form-group.flex input.wekan-form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="true" checked="{{#if currentSetting.displayAuthenticationMethod}}checked{{/if}}") - span {{_ 'yes'}} + label {{_ 'yes'}} input.wekan-form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="false" checked="{{#unless currentSetting.displayAuthenticationMethod}}checked{{/unless}}") - span {{_ 'no'}} + label {{_ 'no'}} li.layout-form .title {{_ 'default-authentication-method'}} +selectAuthenticationMethod(authenticationMethod=currentSetting.defaultAuthenticationMethod) @@ -218,9 +247,9 @@ template(name='layoutSettings') .title {{_ 'hide-logo'}} .form-group.flex input.wekan-form-control#hide-logo(type="radio" name="hideLogo" value="true" checked="{{#if currentSetting.hideLogo}}checked{{/if}}") - span {{_ 'yes'}} + label {{_ 'yes'}} input.wekan-form-control#hide-logo(type="radio" name="hideLogo" value="false" checked="{{#unless currentSetting.hideLogo}}checked{{/unless}}") - span {{_ 'no'}} + label {{_ 'no'}} li.layout-form .title {{_ 'custom-login-logo-image-url'}} .form-group @@ -257,16 +286,16 @@ template(name='layoutSettings') .title {{_ 'hide-card-counter-list'}} .form-group.flex input.wekan-form-control#hide-card-counter-list(type="radio" name="hideCardCounterList" value="true" checked="{{#if currentSetting.hideCardCounterList}}checked{{/if}}") - span {{_ 'yes'}} + label {{_ 'yes'}} input.wekan-form-control#hide-card-counter-list(type="radio" name="hideCardCounterList" value="false" checked="{{#unless currentSetting.hideCardCounterList}}checked{{/unless}}") - span {{_ 'no'}} + label {{_ 'no'}} li.layout-form .title {{_ 'hide-board-member-list'}} .form-group.flex input.wekan-form-control#hide-board-member-list(type="radio" name="hideBoardMemberList" value="true" checked="{{#if currentSetting.hideBoardMemberList}}checked{{/if}}") - span {{_ 'yes'}} + label {{_ 'yes'}} input.wekan-form-control#hide-board-member-list(type="radio" name="hideBoardMemberList" value="false" checked="{{#unless currentSetting.hideBoardMemberList}}checked{{/unless}}") - span {{_ 'no'}} + label {{_ 'no'}} li button.js-save-layout.primary {{_ 'save'}} diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js index 8cb782933..be8322af3 100644 --- a/client/components/settings/settingBody.js +++ b/client/components/settings/settingBody.js @@ -89,6 +89,9 @@ BlazeComponent.extendComponent({ toggleHideBoardMemberList() { $('#hide-board-member-list').toggleClass('is-checked'); }, + toggleAccessibilityPageEnabled() { + $('#accessibility-page-enabled').toggleClass('is-checked'); + }, toggleDisplayAuthenticationMethod() { $('#display-authentication-method').toggleClass('is-checked'); }, @@ -239,7 +242,15 @@ BlazeComponent.extendComponent({ const displayAuthenticationMethod = $('input[name=displayAuthenticationMethod]:checked').val() === 'true'; const defaultAuthenticationMethod = $('#defaultAuthenticationMethod').val(); - +/* + const accessibilityPageEnabled = $('input[name=accessibilityPageEnabled]:checked').val() === 'true'; + const accessibilityTitle = $('#accessibility-title') + .val() + .trim(); + const accessibilityContent = $('#accessibility-content') + .val() + .trim(); +*/ const spinnerName = $('#spinnerName').val(); try { @@ -265,6 +276,11 @@ BlazeComponent.extendComponent({ legalNotice, }, }); +/* + accessibilityPageEnabled, + accessibilityTitle, + accessibilityContent, +*/ } catch (e) { return; } finally { @@ -301,6 +317,7 @@ BlazeComponent.extendComponent({ 'click a.js-toggle-hide-logo': this.toggleHideLogo, 'click a.js-toggle-hide-card-counter-list': this.toggleHideCardCounterList, 'click a.js-toggle-hide-board-member-list': this.toggleHideBoardMemberList, + 'click a.js-toggle-accessibility-page-enabled': this.toggleAccessibilityPageEnabled, 'click button.js-save-layout': this.saveLayout, 'click a.js-toggle-display-authentication-method': this .toggleDisplayAuthenticationMethod, @@ -336,12 +353,12 @@ BlazeComponent.extendComponent({ allowUserDelete() { return AccountSettings.findOne('accounts-allowUserDelete').booleanValue; }, - allHideSystemMessages() { - Meteor.call('setAllUsersHideSystemMessages', (err, ret) => { + allBoardsHideActivities() { + Meteor.call('setAllBoardsHideActivities', (err, ret) => { if (!err && ret) { if (ret === true) { const message = `${TAPi18n.__( - 'now-system-messages-of-all-users-are-hidden', + 'now-activities-of-all-boards-are-hidden', )}`; alert(message); } @@ -359,7 +376,7 @@ BlazeComponent.extendComponent({ 'click button.js-accounts-save': this.saveAccountsChange, }, { - 'click button.js-all-hide-system-messages': this.allHideSystemMessages, + 'click button.js-all-boards-hide-activities': this.allBoardsHideActivities, }, ]; }, @@ -376,12 +393,12 @@ BlazeComponent.extendComponent({ allowPrivateOnly() { return TableVisibilityModeSettings.findOne('tableVisibilityMode-allowPrivateOnly').booleanValue; }, - allHideSystemMessages() { - Meteor.call('setAllUsersHideSystemMessages', (err, ret) => { + allBoardsHideActivities() { + Meteor.call('setAllBoardsHideActivities', (err, ret) => { if (!err && ret) { if (ret === true) { const message = `${TAPi18n.__( - 'now-system-messages-of-all-users-are-hidden', + 'now-activities-of-all-boards-are-hidden', )}`; alert(message); } @@ -399,7 +416,7 @@ BlazeComponent.extendComponent({ 'click button.js-tableVisibilityMode-save': this.saveTableVisibilityChange, }, { - 'click button.js-all-hide-system-messages': this.allHideSystemMessages, + 'click button.js-all-boards-hide-activities': this.allBoardsHideActivities, }, ]; }, diff --git a/client/components/settings/translationBody.jade b/client/components/settings/translationBody.jade index 073207bde..46d41d011 100644 --- a/client/components/settings/translationBody.jade +++ b/client/components/settings/translationBody.jade @@ -34,13 +34,14 @@ template(name="translation") template(name="translationGeneral") table - tbody + thead tr th {{_ 'language'}} th {{_ 'text'}} th {{_ 'translation-text'}} th +newTranslationRow + tbody each translation in translationList +translationRow(translationId=translation._id) diff --git a/client/components/sidebar/sidebar.css b/client/components/sidebar/sidebar.css index 4d0488b95..7877be8e8 100644 --- a/client/components/sidebar/sidebar.css +++ b/client/components/sidebar/sidebar.css @@ -3,34 +3,31 @@ top: 0; bottom: 0; right: 0; + overflow-y: scroll; } -.sidebar .sidebar-shadow { - position: absolute; - top: 0; - bottom: 0; - right: 0; - left: 0; +.sidebar { background: #f7f7f7; box-shadow: -10px 0px 5px -10px #b3b3b3; - z-index: 10; } .sidebar-xmark { position: absolute; - right: 10px; - top: 5px; + right: 0px; + top: 0px; font-size: 25px; + padding: 10px; +} +.sidebar-xmark:hover { + background: rgba(0,0,0,0.15); +} +.sidebar-actions { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + padding: 10px 10px 0px 10px; } .sidebar .sidebar-content { - padding: 12px; - margin-bottom: 1.6em; - position: absolute; - top: 0; - bottom: 0; - right: 0; - left: 0; - overflow-x: hidden; - overflow-y: auto; - width: 90%; + padding: 0 12px; } .sidebar .sidebar-content .hide-btn { display: none; @@ -106,21 +103,23 @@ margin-right: 10px; } .sidebar .sidebar-shortcuts { - position: absolute; - margin-left: 40%; - padding: 0; top: 7px; - font-size: 0.8em; + font-size: 1em; line-height: 1.6em; color: #999; } +.sidebar .sidebar-shortcuts .sidebar-btn { + margin-left: 3px; + margin-right: 3px; +} .board-sidebar { - width: 548px; - right: -548px; + display: none; + width: 30vw; + z-index: 100; transition: top 0.1s, right 0.1s, width 0.1s; } .board-sidebar.is-open { - right: 0; + display: block; } .board-widget h4 { margin: 5px 0; diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index bef7b054f..3bfb44011 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -1,36 +1,61 @@ template(name="sidebar") - .board-sidebar.sidebar(class="{{#if isOpen}}is-open{{/if}}") + .board-sidebar.sidebar(class="{{#if isOpen}}is-open{{/if}} {{#unless isVerticalScrollbars}}no-scrollbars{{/unless}}") //a.sidebar-tongue.js-toggle-sidebar( // class="{{#if isTongueHidden}}is-hidden{{/if}}", // title="{{showTongueTitle}}") // i.fa.fa-navicon - .sidebar-shadow + .sidebar-actions + .sidebar-shortcuts + a.sidebar-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") + i.fa.fa-keyboard-o + span {{_ 'keyboard-shortcuts' }} + a.sidebar-btn.js-keyboard-shortcuts-toggle( + title="{{#if isKeyboardShortcuts}}{{_ 'keyboard-shortcuts-enabled'}}{{else}}{{_ 'keyboard-shortcuts-disabled'}}{{/if}}") + i.fa(class="fa-solid fa-{{#if isKeyboardShortcuts}}check-square-o{{else}}ban{{/if}}") a.sidebar-xmark.js-close-sidebar ✕ - .sidebar-content.js-board-sidebar-content - //a.hide-btn.js-hide-sidebar - // i.fa.fa-navicon - unless isDefaultView - h2 - a.fa.fa-chevron-left.js-back-home - = getViewTitle - if isOpen - +Template.dynamic(template=getViewTemplate) + .sidebar-content.js-board-sidebar-content + //a.hide-btn.js-hide-sidebar + // i.fa.fa-navicon + unless isDefaultView + h2 + a.fa.fa-chevron-left.js-back-home + = getViewTitle + if isOpen + +Template.dynamic(template=getViewTemplate) template(name='homeSidebar') hr +membersWidget hr +labelsWidget + hr ul#cards.label-text-hidden a.flex.js-toggle-minicard-label-text(title="{{_ 'hide-minicard-label-text'}}") span {{_ 'hide-minicard-label-text'}} b   .materialCheckBox(class="{{#if hiddenMinicardLabelText}}is-checked{{/if}}") + ul#cards.vertical-scrollbars-toggle + a.flex.js-vertical-scrollbars-toggle(title="{{_ 'enable-vertical-scrollbars'}}") + span {{_ 'enable-vertical-scrollbars'}} + b   + .materialCheckBox(class="{{#if isVerticalScrollbars}}is-checked{{/if}}") + ul#cards.show-week-of-year-toggle + a.flex.js-show-week-of-year-toggle(title="{{_ 'show-week-of-year'}}") + span {{_ 'show-week-of-year'}} + b   + .materialCheckBox(class="{{#if isShowWeekOfYear}}is-checked{{/if}}") hr unless currentUser.isNoComments - h3 + h3.activity-title i.fa.fa-comments-o | {{_ 'activities'}} + + .material-toggle-switch(title="{{_ 'show-activities'}}") + if showActivities + input.toggle-switch(type="checkbox" id="toggleShowActivitiesBoard" checked="checked") + else + input.toggle-switch(type="checkbox" id="toggleShowActivitiesBoard") + label.toggle-label(for="toggleShowActivitiesBoard") +activities(mode="board") template(name="membersWidget") @@ -40,11 +65,6 @@ template(name="membersWidget") a.board-header-btn.js-open-board-menu(title="{{_ 'boardMenuPopup-title'}}") i.board-header-btn-icon.fa.fa-cog | {{_ 'boardMenuPopup-title'}} - .board-widget.board-widget-members - .sidebar-shortcuts - a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") - i.fa.fa-keyboard-o - span {{_ 'keyboard-shortcuts' }} hr h3 i.fa.fa-users diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js index 254245654..28b7408fc 100644 --- a/client/components/sidebar/sidebar.js +++ b/client/components/sidebar/sidebar.js @@ -105,6 +105,16 @@ BlazeComponent.extendComponent({ else return `${TAPi18n.__('sidebar-open')}`; }, + isKeyboardShortcuts() { + const user = ReactiveCache.getCurrentUser(); + return user && user.isKeyboardShortcuts(); + }, + + isVerticalScrollbars() { + const user = ReactiveCache.getCurrentUser(); + return user && user.isVerticalScrollbars(); + }, + events() { return [ { @@ -126,6 +136,15 @@ BlazeComponent.extendComponent({ 'click .js-shortcuts'() { FlowRouter.go('shortcuts'); }, + 'click .js-keyboard-shortcuts-toggle'() { + ReactiveCache.getCurrentUser().toggleKeyboardShortcuts(); + }, + 'click .js-vertical-scrollbars-toggle'() { + ReactiveCache.getCurrentUser().toggleVerticalScrollbars(); + }, + 'click .js-show-week-of-year-toggle'() { + ReactiveCache.getCurrentUser().toggleShowWeekOfYear(); + }, 'click .js-close-sidebar'() { Sidebar.toggle() }, @@ -136,7 +155,7 @@ BlazeComponent.extendComponent({ Blaze.registerHelper('Sidebar', () => Sidebar); -Template.homeSidebar.helpers({ +BlazeComponent.extendComponent({ hiddenMinicardLabelText() { currentUser = ReactiveCache.getCurrentUser(); if (currentUser) { @@ -147,7 +166,28 @@ Template.homeSidebar.helpers({ return false; } }, -}); + isVerticalScrollbars() { + const user = ReactiveCache.getCurrentUser(); + return user && user.isVerticalScrollbars(); + }, + isShowWeekOfYear() { + const user = ReactiveCache.getCurrentUser(); + return user && user.isShowWeekOfYear(); + }, + showActivities() { + let ret = Utils.getCurrentBoard().showActivities ?? false; + return ret; + }, + events() { + return [ + { + 'click #toggleShowActivitiesBoard'() { + Utils.getCurrentBoard().toggleShowActivities(); + }, + }, + ]; + }, +}).register('homeSidebar'); Template.boardInfoOnMyBoardsPopup.helpers({ hideCardCounterList() { @@ -913,19 +953,11 @@ BlazeComponent.extendComponent({ }, allowsCreator() { - return ( - this.currentBoard.allowsCreator === null || - this.currentBoard.allowsCreator === undefined || - this.currentBoard.allowsCreator - ); + return this.currentBoard.allowsCreator ?? false; }, allowsCreatorOnMinicard() { - return ( - this.currentBoard.allowsCreatorOnMinicard === null || - this.currentBoard.allowsCreatorOnMinicard === undefined || - this.currentBoard.allowsCreatorOnMinicard - ); + return this.currentBoard.allowsCreatorOnMinicard ?? false; }, allowsMembers() { diff --git a/client/components/swimlanes/swimlaneHeader.jade b/client/components/swimlanes/swimlaneHeader.jade index edc6ad56a..d14686163 100644 --- a/client/components/swimlanes/swimlaneHeader.jade +++ b/client/components/swimlanes/swimlaneHeader.jade @@ -24,9 +24,17 @@ template(name="swimlaneFixedHeader") | {{isTitleDefault title}} .swimlane-header-menu unless currentUser.isCommentOnly - if currentUser.isBoardAdmin - a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon(title="{{_ 'add-swimlane'}}") + a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon(title="{{_ 'add-swimlane'}}") a.fa.fa-navicon.js-open-swimlane-menu(title="{{_ 'swimlaneActionPopup-title'}}") + //// TODO: Collapse Swimlane: make button working, etc. + //unless collapsed + // a.js-collapse-swimlane(title="{{_ 'collapse'}}") + // i.fa.fa-arrow-down.swimlane-header-collapse-down + // i.fa.fa-arrow-up.swimlane-header-collapse-up + //if collapsed + // a.js-collapse-swimlane(title="{{_ 'uncollapse'}}") + // i.fa.fa-arrow-up.swimlane-header-collapse-up + // i.fa.fa-arrow-down.swimlane-header-collapse-down unless isTouchScreen if isShowDesktopDragHandles a.swimlane-header-handle.handle.fa.fa-arrows.js-swimlane-header-handle diff --git a/client/components/swimlanes/swimlaneHeader.js b/client/components/swimlanes/swimlaneHeader.js index afc90846e..17988f454 100644 --- a/client/components/swimlanes/swimlaneHeader.js +++ b/client/components/swimlanes/swimlaneHeader.js @@ -18,10 +18,25 @@ BlazeComponent.extendComponent({ swimlane.rename(newTitle.trim()); } }, + collapsed(check = undefined) { + const swimlane = Template.currentData(); + const status = swimlane.isCollapsed(); + if (check === undefined) { + // just check + return status; + } else { + swimlane.collapse(!status); + return !status; + } + }, events() { return [ { + 'click .js-collapse-swimlane'(event) { + event.preventDefault(); + this.collapsed(!this.collapsed()); + }, 'click .js-open-swimlane-menu': Popup.open('swimlaneAction'), 'click .js-open-add-swimlane-menu': Popup.open('swimlaneAdd'), submit: this.editTitle, @@ -128,7 +143,7 @@ BlazeComponent.extendComponent({ Swimlanes.insert({ title, boardId: Session.get('currentBoard'), - sort: sortValue.base, + sort: sortValue.base || 0, type: swimlaneType, }); @@ -209,7 +224,7 @@ BlazeComponent.extendComponent({ swimlaneHeightValue() { const swimlane = this.currentData(); const board = swimlane.boardId; - return Meteor.user().getSwimlaneHeight(board, swimlane._id); + return ReactiveCache.getCurrentUser().getSwimlaneHeight(board, swimlane._id); }, events() { diff --git a/client/components/swimlanes/swimlanes.css b/client/components/swimlanes/swimlanes.css index 3270f801f..373de8ab3 100644 --- a/client/components/swimlanes/swimlanes.css +++ b/client/components/swimlanes/swimlanes.css @@ -1,43 +1,3 @@ -/* -// Minimize swimlanes start https://www.w3schools.com/howto/howto_js_accordion.asp - -.accordion - cursor: pointer - width: 30px - height: 20px - border: none - outline: none - font-size: 18px - transition: 0.4s - padding-top: 0px - margin-top: 0px - -.accordion:after - // Unicode triagle right: - content: '\25B6' - color: #777 - font-weight: bold - float: left - -.active:after - // Unicode triangle down: - content: '\25BC' - -.panel - width: 100% - max-height: 0 - overflow: hidden - transition: max-height 0.2s ease-out - margin: 0px - padding: 0px - -// Minimize swimlanes end https://www.w3schools.com/howto/howto_js_accordion.asp -*/ -@media screen and (min-width: 801px) { - .swimlane.ui-sortable { - width: max-content; - } -} [class=swimlane] { position: sticky; left: 0; @@ -46,7 +6,30 @@ background: #dedede; display: flex; flex-direction: row; - overflow: 0; + overflow: auto; + max-height: 100%; +} +.swimlane-header-menu .swimlane-header-collapse-down { + font-size: 50%; + color: #a6a6a6; + position: absolute; + top: 5px; + left: 100px; +} +.swimlane-header-menu .swimlane-header-collapse-up { + font-size: 50%; + color: #a6a6a6; + position: absolute; + bottom: 5px; + left: 100px; +} +.swimlane-header-menu .swimlane-header-uncollapse-up { + font-size: 50%; + color: #a6a6a6; +} +.swimlane-header-menu .swimlane-header-uncollapse-down { + font-size: 50%; + color: #a6a6a6; } .swimlane.placeholder { background-color: rgba(0,0,0,0.2); @@ -170,7 +153,7 @@ color: #4d4d4d !important; } .swimlane-silver { - background: unset !important; + background: #ccc !important; color: #4d4d4d !important; } .swimlane-peachpuff { diff --git a/client/components/swimlanes/swimlanes.jade b/client/components/swimlanes/swimlanes.jade index c44b3958a..0afe02dbe 100644 --- a/client/components/swimlanes/swimlanes.jade +++ b/client/components/swimlanes/swimlanes.jade @@ -1,8 +1,8 @@ template(name="swimlane") - .swimlane + .swimlane.nodragscroll +swimlaneHeader unless collapseSwimlane - .swimlane.js-lists.js-swimlane(id="swimlane-{{_id}}" + .swimlane.js-lists.js-swimlane.dragscroll(id="swimlane-{{_id}}" style="height:{{swimlaneHeight}};") if isMiniScreen if currentListIsInThisSwimlane _id @@ -24,7 +24,7 @@ template(name="swimlane") +cardDetails(currentCard) template(name="listsGroup") - .swimlane.list-group.js-lists + .swimlane.list-group.js-lists.dragscroll if isMiniScreen if currentList +list(currentList) @@ -46,8 +46,8 @@ template(name="listsGroup") template(name="addListForm") unless currentUser.isWorker - .list.list-composer.js-list-composer(class="{{#if isMiniScreen}}mini-list{{/if}}") - if currentUser.isBoardAdmin + unless currentUser.isCommentOnly + .list.list-composer.js-list-composer(class="{{#if isMiniScreen}}mini-list{{/if}}") .list-header-add +inlinedForm(autoclose=false) input.list-name-input.full-line(type="text" placeholder="{{_ 'add-list'}}" diff --git a/client/components/swimlanes/swimlanes.js b/client/components/swimlanes/swimlanes.js index fb190c157..09ff81db3 100644 --- a/client/components/swimlanes/swimlanes.js +++ b/client/components/swimlanes/swimlanes.js @@ -225,7 +225,7 @@ BlazeComponent.extendComponent({ }, swimlaneHeight() { - const user = Meteor.user(); + const user = ReactiveCache.getCurrentUser(); const swimlane = Template.currentData(); const height = user.getSwimlaneHeight(swimlane.boardId, swimlane._id); return height == -1 ? "auto" : (height + "px"); @@ -288,7 +288,7 @@ BlazeComponent.extendComponent({ Template.swimlane.helpers({ canSeeAddList() { - return Meteor.user().isBoardAdmin(); + return ReactiveCache.getCurrentUser().isBoardAdmin(); }, }); diff --git a/client/components/users/userAvatar.css b/client/components/users/userAvatar.css index a26ed10e4..b65a98bd9 100644 --- a/client/components/users/userAvatar.css +++ b/client/components/users/userAvatar.css @@ -5,6 +5,7 @@ float: left; height: 30px; width: 30px; + margin: .3vh; cursor: pointer; user-select: none; z-index: 1; diff --git a/client/components/users/userAvatar.jade b/client/components/users/userAvatar.jade index db123f282..e6c51ef5e 100644 --- a/client/components/users/userAvatar.jade +++ b/client/components/users/userAvatar.jade @@ -26,9 +26,9 @@ template(name="orgAvatar") template(name="boardOrgRow") tr if orgData.orgIsActive - td {{ orgData.orgDisplayName }} - else td {{ orgData.orgDisplayName }} + else + td {{ orgData.orgDisplayName }} td if currentUser.isBoardAdmin a.member.orgOrTeamMember.add-member.js-manage-board-removeOrg(title="{{_ 'remove-from-board'}}") @@ -39,9 +39,9 @@ template(name="boardOrgRow") template(name="boardTeamRow") tr if teamData.teamIsActive - td {{ teamData.teamDisplayName }} - else td {{ teamData.teamDisplayName }} + else + td {{ teamData.teamDisplayName }} td if currentUser.isBoardAdmin a.member.orgOrTeamMember.add-member.js-manage-board-removeTeam(title="{{_ 'remove-from-board'}}") diff --git a/client/components/users/userHeader.jade b/client/components/users/userHeader.jade index ae14b0dd9..14fa948d7 100644 --- a/client/components/users/userHeader.jade +++ b/client/components/users/userHeader.jade @@ -77,6 +77,10 @@ template(name="memberMenuPopup") a.js-change-language i.fa.fa-flag | {{_ 'changeLanguagePopup-title'}} + //li + // a.js-support + // i.fa.fa-question-circle + // | {{_ 'support'}} unless isSandstorm hr ul.pop-over-list @@ -139,6 +143,12 @@ template(name="editProfilePopup") div input#deleteButton.primary.wide(type="button" value="{{_ 'delete'}}") + +template(name="supportPopup") + ul.pop-over-list + li + | Support popup text will be editable later. + template(name="changePasswordPopup") +atForm(state='changePwd') @@ -153,12 +163,6 @@ template(name="changeLanguagePopup") template(name="changeSettingsPopup") ul.pop-over-list - //li - // a.js-toggle-system-messages - // i.fa.fa-comments-o - // | {{_ 'hide-system-messages'}} - // if hiddenSystemMessages - // i.fa.fa-check //li // a.js-toggle-desktop-drag-handles // i.fa.fa-arrows diff --git a/client/components/users/userHeader.js b/client/components/users/userHeader.js index 22fd808b4..117921277 100644 --- a/client/components/users/userHeader.js +++ b/client/components/users/userHeader.js @@ -77,6 +77,7 @@ Template.memberMenuPopup.events({ 'click .js-change-avatar': Popup.open('changeAvatar'), 'click .js-change-password': Popup.open('changePassword'), 'click .js-change-language': Popup.open('changeLanguage'), + 'click .js-support': Popup.open('support'), 'click .js-logout'(event) { event.preventDefault(); @@ -283,16 +284,6 @@ Template.changeLanguagePopup.events({ }); Template.changeSettingsPopup.helpers({ - hiddenSystemMessages() { - const currentUser = ReactiveCache.getCurrentUser(); - if (currentUser) { - return (currentUser.profile || {}).hasHiddenSystemMessages; - } else if (window.localStorage.getItem('hasHiddenSystemMessages')) { - return true; - } else { - return false; - } - }, rescueCardDescription() { const currentUser = ReactiveCache.getCurrentUser(); if (currentUser) { @@ -325,7 +316,7 @@ Template.changeSettingsPopup.helpers({ }); }, startDayOfWeek() { - currentUser = Meteor.user(); + currentUser = ReactiveCache.getCurrentUser(); if (currentUser) { return currentUser.getStartDayOfWeek(); } else { @@ -343,7 +334,7 @@ Template.changeSettingsPopup.events({ return ret; }, 'click .js-toggle-desktop-drag-handles'() { - currentUser = Meteor.user(); + const currentUser = ReactiveCache.getCurrentUser(); if (currentUser) { Meteor.call('toggleDesktopDragHandles'); } else if (window.localStorage.getItem('showDesktopDragHandles')) { @@ -352,16 +343,6 @@ Template.changeSettingsPopup.events({ window.localStorage.setItem('showDesktopDragHandles', 'true'); } }, - 'click .js-toggle-system-messages'() { - currentUser = Meteor.user(); - if (currentUser) { - Meteor.call('toggleSystemMessages'); - } else if (window.localStorage.getItem('hasHiddenSystemMessages')) { - window.localStorage.removeItem('hasHiddenSystemMessages'); - } else { - window.localStorage.setItem('hasHiddenSystemMessages', 'true'); - } - }, 'click .js-rescue-card-description'() { Meteor.call('toggleRescueCardDescription') }, @@ -375,7 +356,7 @@ Template.changeSettingsPopup.events({ templateInstance.$('#start-day-of-week').val(), 10, ); - const currentUser = Meteor.user(); + const currentUser = ReactiveCache.getCurrentUser(); if (isNaN(minLimit) || minLimit < -1) { minLimit = -1; } diff --git a/client/lib/datepicker.js b/client/lib/datepicker.js index 6fe612ec3..f298a752d 100644 --- a/client/lib/datepicker.js +++ b/client/lib/datepicker.js @@ -6,10 +6,11 @@ import moment from 'moment/min/moment-with-locales'; function adjustedTimeFormat() { return moment .localeData() - .longDateFormat('LT') - .replace(/HH/i, 'H'); + .longDateFormat('LT'); } +// .replace(/HH/i, 'H'); + export class DatePicker extends BlazeComponent { template() { return 'datepicker'; diff --git a/client/lib/escapeActions.js b/client/lib/escapeActions.js index 1bf32a7d9..986611326 100644 --- a/client/lib/escapeActions.js +++ b/client/lib/escapeActions.js @@ -123,6 +123,7 @@ EscapeActions = { // the shortcut sould work on textarea and inputs as well. Mousetrap.bindGlobal('esc', () => { EscapeActions.executeLowest(); + Sidebar.hide(); }); // On a left click on the document, we try to exectute one escape action (eg, diff --git a/client/lib/filter.js b/client/lib/filter.js index e74c95478..66ed01a36 100644 --- a/client/lib/filter.js +++ b/client/lib/filter.js @@ -237,7 +237,6 @@ class SetFilter { if (this._indexOfVal(val) === -1) { this._selectedElements.push(val); this._dep.changed(); - showFilterSidebar(); } } diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 79f90456c..f817e9aa3 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -3,6 +3,46 @@ import { ReactiveCache } from '/imports/reactiveCache'; // XXX There is no reason to define these shortcuts globally, they should be // attached to a template (most of them will go in the `board` template). +window.addEventListener('keydown', (e) => { + // Only handle event if coming from body + if (e.target !== document.body) return; + + // Only handle event if it's in another language + if (String.fromCharCode(e.which).toLowerCase() === e.key) return; + + // Trigger the corresponding action + Mousetrap.handleKey(String.fromCharCode(e.which).toLowerCase(), [], {type: "keypress"}); +}); + +// Overwrite the stopCallback to allow for more keyboard shortcut customizations +Mousetrap.stopCallback = (event, element) => { + // Are shortcuts enabled for the user? + if (ReactiveCache.getCurrentUser() && !ReactiveCache.getCurrentUser().isKeyboardShortcuts()) + return true; + + // Always handle escape + if (event.keyCode === 27) + return false; + + // Make sure there are no selected characters + if (window.getSelection().type === "Range") + return true; + + // Decide what the current element is + const currentElement = event.target || document.activeElement; + + // If the current element is editable, we don't want to trigger an event + if (currentElement.isContentEditable) + return true; + + // Make sure we are not in an input element + if (currentElement instanceof HTMLInputElement || currentElement instanceof HTMLSelectElement || currentElement instanceof HTMLTextAreaElement) + return true; + + // We can trigger events! + return false; +} + function getHoveredCardId() { const card = $('.js-minicard:hover').get(0); if (!card) return null; @@ -93,7 +133,7 @@ Mousetrap.bind(numbArray, (evt, key) => { const cardIds = MultiSelection.getSelectedCardIds(); for (const cardId of cardIds) { - card = ReactiveCache.getCard(cardId); + card = Cards.findOne(cardId); if(num <= board.labels.length) { card.removeLabel(labels[num-1]["_id"]); @@ -117,7 +157,7 @@ Mousetrap.bind(numArray, (evt, key) => { const cardIds = MultiSelection.getSelectedCardIds(); for (const cardId of cardIds) { - card = ReactiveCache.getCard(cardId); + card = Cards.findOne(cardId); if(num <= board.labels.length) { card.addLabel(labels[num-1]["_id"]); @@ -131,7 +171,7 @@ Mousetrap.bind(numArray, (evt, key) => { return; } if (ReactiveCache.getCurrentUser().isBoardMember()) { - const card = ReactiveCache.getCard(cardId); + const card = Cards.findOne(cardId); if(num <= board.labels.length) { card.toggleLabel(labels[num-1]["_id"]); @@ -139,6 +179,57 @@ Mousetrap.bind(numArray, (evt, key) => { } }); +Mousetrap.bind(_.range(1, 10).map(x => `ctrl+alt+${x}`), (evt, key) => { + // Make sure the current user is defined + if (!ReactiveCache.getCurrentUser()) + return; + + // Make sure the current user is a board member + if (!ReactiveCache.getCurrentUser().isBoardMember()) + return; + + const memberIndex = parseInt(key.split("+").pop()) - 1; + const currentBoard = Utils.getCurrentBoard(); + const validBoardMembers = currentBoard.memberUsers().filter(member => member.isBoardMember()); + + if (memberIndex >= validBoardMembers.length) + return; + + const memberId = validBoardMembers[memberIndex]._id; + + if (MultiSelection.isActive()) { + for (const cardId of MultiSelection.getSelectedCardIds()) + Cards.findOne(cardId).toggleAssignee(memberId); + } else { + const cardId = getSelectedCardId(); + + if (!cardId) + return; + + Cards.findOne(cardId).toggleAssignee(memberId); + } +}); + +Mousetrap.bind('m', evt => { + const cardId = getSelectedCardId(); + if (!cardId) { + return; + } + + const currentUserId = Meteor.userId(); + if (currentUserId === null) { + return; + } + + if (ReactiveCache.getCurrentUser().isBoardMember()) { + const card = Cards.findOne(cardId); + card.toggleAssignee(currentUserId); + // We should prevent scrolling in card when spacebar is clicked + // This should do it according to Mousetrap docs, but it doesn't + evt.preventDefault(); + } +}); + Mousetrap.bind('space', evt => { const cardId = getSelectedCardId(); if (!cardId) { @@ -151,7 +242,7 @@ Mousetrap.bind('space', evt => { } if (ReactiveCache.getCurrentUser().isBoardMember()) { - const card = ReactiveCache.getCard(cardId); + const card = Cards.findOne(cardId); card.toggleMember(currentUserId); // We should prevent scrolling in card when spacebar is clicked // This should do it according to Mousetrap docs, but it doesn't @@ -159,7 +250,7 @@ Mousetrap.bind('space', evt => { } }); -Mousetrap.bind('c', evt => { +const archiveCard = evt => { const cardId = getSelectedCardId(); if (!cardId) { return; @@ -171,8 +262,40 @@ Mousetrap.bind('c', evt => { } if (Utils.canModifyBoard()) { - const card = ReactiveCache.getCard(cardId); + const card = Cards.findOne(cardId); card.archive(); + // We should prevent scrolling in card when spacebar is clicked + // This should do it according to Mousetrap docs, but it doesn't + evt.preventDefault(); + } +}; + +// Archive card has multiple shortcuts +Mousetrap.bind('c', archiveCard); +Mousetrap.bind('-', archiveCard); + +// Same as above, this time for Persian keyboard. +// https://github.com/wekan/wekan/pull/5589#issuecomment-2516776519 +Mousetrap.bind('÷', archiveCard); + +Mousetrap.bind('n', evt => { + const cardId = getSelectedCardId(); + if (!cardId) { + return; + } + + const currentUserId = Meteor.userId(); + if (currentUserId === null) { + return; + } + + if (Utils.canModifyBoard()) { + // Find the current hovered card + const card = Cards.findOne(cardId); + + // Find the button and click it + $(`#js-list-${card.listId} .list-body .minicards .open-minicard-composer`).click(); + // We should prevent scrolling in card when spacebar is clicked // This should do it according to Mousetrap docs, but it doesn't evt.preventDefault(); @@ -193,6 +316,10 @@ Template.keyboardShortcuts.helpers({ keys: ['a'], action: 'shortcut-filter-my-assigned-cards', }, + { + keys: ['n'], + action: 'add-card-to-bottom-of-list', + }, { keys: ['f'], action: 'shortcut-toggle-filterbar', @@ -219,10 +346,14 @@ Template.keyboardShortcuts.helpers({ }, { keys: ['SPACE'], + action: 'shortcut-add-self', + }, + { + keys: ['m'], action: 'shortcut-assign-self', }, { - keys: ['c'], + keys: ['c', '÷', '-'], action: 'archive-card', }, { @@ -233,5 +364,9 @@ Template.keyboardShortcuts.helpers({ keys: ['shift + number keys 1-9'], action: 'remove-labels-multiselect' }, + { + keys: ['ctrl + alt + number keys 1-9'], + action: 'toggle-assignees' + }, ], }); diff --git a/client/lib/utils.js b/client/lib/utils.js index cfc313f62..15896e5c3 100644 --- a/client/lib/utils.js +++ b/client/lib/utils.js @@ -4,10 +4,11 @@ Utils = { setBackgroundImage(url) { const currentBoard = Utils.getCurrentBoard(); if (currentBoard.backgroundImageURL !== undefined) { - $(".board-wrapper,.board-wrapper .board-canvas").css({"background":"url(" + currentBoard.backgroundImageURL + ")","background-size":"cover"}); + $(".board-wrapper").css({"background":"url(" + currentBoard.backgroundImageURL + ")","background-size":"cover"}); $(".swimlane,.swimlane .list,.swimlane .list .list-body,.swimlane .list:first-child .list-body").css({"background-color":"transparent"}); - } else if (currentBoard.color !== undefined) { - currentBoard.setColor(currentBoard.color); + $(".minicard").css({"opacity": "0.9"}); + } else if (currentBoard["background-color"]) { + currentBoard.setColor(currentBoard["background-color"]); } }, /** returns the current board id diff --git a/config/const.js b/config/const.js index 21bac0ce4..60b602643 100644 --- a/config/const.js +++ b/config/const.js @@ -16,6 +16,8 @@ export const ALLOWED_BOARD_COLORS = [ 'modern', 'moderndark', 'exodark', + 'cleandark', + 'cleanlight', ]; export const ALLOWED_COLORS = [ 'white', diff --git a/config/router.js b/config/router.js index cdbf106c1..888393cfd 100644 --- a/config/router.js +++ b/config/router.js @@ -55,6 +55,30 @@ FlowRouter.route('/public', { }, }); +FlowRouter.route('/accessibility', { + name: 'accessibility', + triggersEnter: [AccountsTemplates.ensureSignedIn], + action() { + Session.set('currentBoard', null); + Session.set('currentList', null); + Session.set('currentCard', null); + Session.set('popupCardId', null); + Session.set('popupCardBoardId', null); + + Filter.reset(); + Session.set('sortBy', ''); + EscapeActions.executeAll(); + + Utils.manageCustomUI(); + Utils.manageMatomo(); + + BlazeLayout.render('defaultLayout', { + headerBar: 'accessibilityHeaderBar', + content: 'accessibility', + }); + }, +}); + FlowRouter.route('/b/:id/:slug', { name: 'board', action(params) { diff --git a/docker-compose.yml b/docker-compose.yml index 6b130b53f..f2e47e168 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,13 +10,13 @@ # NOTE: MongoDB has changed from 3.x to 4.x, in that case you need backup/restore with --noIndexRestore # see https://github.com/wekan/wekan/wiki/Backup # 1) Stop Wekan: -# docker-compose stop +# docker compose stop # 2) Remove old Wekan app (wekan-app only, not that wekan-db container that has all your data) # docker rm wekan-app # 3) Get newest docker-compose.yml from https://github.com/wekan/wekan to have correct image, # for example: "image: quay.io/wekan/wekan" or version tag "image: quay.io/wekan/wekan:v4.52" # 4) Start Wekan: -# docker-compose up -d +# docker compose up -d #---------------------------------------------------------------------------------- # ==== OPTIONAL: DEDICATED DOCKER USER ==== # 1) Optionally create a dedicated user for Wekan, for example: @@ -36,14 +36,14 @@ # ---------------------------------------------------------------------------------- # ==== USAGE OF THIS docker-compose.yml ==== # 1) For seeing does Wekan work, try this and check with your web browser: -# docker-compose up +# docker compose up # 2) Stop Wekan and start Wekan in background: -# docker-compose stop -# docker-compose up -d +# docker compose stop +# docker compose up -d # 3) See running Docker containers: # docker ps # 4) Stop Docker containers: -# docker-compose stop +# docker compose stop # ---------------------------------------------------------------------------------- # ===== INSIDE DOCKER CONTAINERS, AND BACKUP/RESTORE ==== # https://github.com/wekan/wekan/wiki/Backup @@ -140,7 +140,7 @@ services: - wekan-tier #------------------------------------------------------------------------------------- # ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ==== - # ==== and use commands: docker-compose up -d --build + # ==== and use commands: docker compose up -d --build #build: # context: . # dockerfile: Dockerfile @@ -442,11 +442,15 @@ services: # OAuth2 login style: popup or redirect. #- OAUTH2_LOGIN_STYLE=redirect #- OAUTH2_CLIENT_ID= - #- OAUTH2_SERVER_URL=/auth + #- OAUTH2_SERVER_URL= #- OAUTH2_AUTH_ENDPOINT=/realms//protocol/openid-connect/auth #- OAUTH2_USERINFO_ENDPOINT=/realms//protocol/openid-connect/userinfo #- OAUTH2_TOKEN_ENDPOINT=/realms//protocol/openid-connect/token #- OAUTH2_SECRET= + #- OAUTH2_ID_MAP=sub + #- OAUTH2_USERNAME_MAP=preferred_username + #- OAUTH2_EMAIL_MAP=email + #- OAUTH2_FULLNAME_MAP=name #----------------------------------------------------------------- # ==== OAUTH2 DOORKEEPER ==== # https://github.com/wekan/wekan/issues/1874 @@ -573,10 +577,14 @@ services: # If the sync of the users should be done in the background #- LDAP_BACKGROUND_SYNC=false # - # At which interval does the background task sync. + # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds # The format must be as specified in: # https://bunkat.github.io/later/parsers.html#text - #- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hour + #- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours + # At which interval does the background task sync in milliseconds. + # Leave this unset, so it uses default, and does not crash. + # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 + - LDAP_BACKGROUND_SYNC_INTERVAL='' # #- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false # @@ -585,7 +593,7 @@ services: # If using LDAPS: LDAP_ENCRYPTION=ssl #- LDAP_ENCRYPTION=false # - # The certification for the LDAPS server. Certificate needs to be included in this docker-compose.yml file. + # The certification for the LDAPS server. Certificate needs to be included in this docker compose.yml file. #- LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+G2FIdAgIC...-----END CERTIFICATE----- # # Reject Unauthorized Certificate diff --git a/docker-compose.yml-arm64 b/docker-compose.yml-arm64 index 85ea0f555..ab0ae56d9 100644 --- a/docker-compose.yml-arm64 +++ b/docker-compose.yml-arm64 @@ -575,10 +575,14 @@ services: # If the sync of the users should be done in the background #- LDAP_BACKGROUND_SYNC=false # - # At which interval does the background task sync. + # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds # The format must be as specified in: # https://bunkat.github.io/later/parsers.html#text - #- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hour + #- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours + # At which interval does the background task sync in milliseconds. + # Leave this unset, so it uses default, and does not crash. + # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 + - LDAP_BACKGROUND_SYNC_INTERVAL='' # #- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false # diff --git a/docs/wekan.wiki/New-card-with-Python3-and-REST-API.md b/docs/API/New-card-with-Python3-and-REST-API.md similarity index 100% rename from docs/wekan.wiki/New-card-with-Python3-and-REST-API.md rename to docs/API/New-card-with-Python3-and-REST-API.md diff --git a/docs/wekan.wiki/REST-API-Boards.md b/docs/API/REST-API-Boards.md similarity index 100% rename from docs/wekan.wiki/REST-API-Boards.md rename to docs/API/REST-API-Boards.md diff --git a/docs/wekan.wiki/REST-API-Cards.md b/docs/API/REST-API-Cards.md similarity index 100% rename from docs/wekan.wiki/REST-API-Cards.md rename to docs/API/REST-API-Cards.md diff --git a/docs/wekan.wiki/REST-API-Checklists.md b/docs/API/REST-API-Checklists.md similarity index 100% rename from docs/wekan.wiki/REST-API-Checklists.md rename to docs/API/REST-API-Checklists.md diff --git a/docs/wekan.wiki/REST-API-Code.md b/docs/API/REST-API-Code.md similarity index 100% rename from docs/wekan.wiki/REST-API-Code.md rename to docs/API/REST-API-Code.md diff --git a/docs/wekan.wiki/REST-API-Custom-Fields.md b/docs/API/REST-API-Custom-Fields.md similarity index 100% rename from docs/wekan.wiki/REST-API-Custom-Fields.md rename to docs/API/REST-API-Custom-Fields.md diff --git a/docs/wekan.wiki/REST-API-Integrations.md b/docs/API/REST-API-Integrations.md similarity index 100% rename from docs/wekan.wiki/REST-API-Integrations.md rename to docs/API/REST-API-Integrations.md diff --git a/docs/wekan.wiki/REST-API-Lists.md b/docs/API/REST-API-Lists.md similarity index 100% rename from docs/wekan.wiki/REST-API-Lists.md rename to docs/API/REST-API-Lists.md diff --git a/docs/wekan.wiki/REST-API-Role.md b/docs/API/REST-API-Role.md similarity index 100% rename from docs/wekan.wiki/REST-API-Role.md rename to docs/API/REST-API-Role.md diff --git a/docs/wekan.wiki/REST-API-Swimlanes.md b/docs/API/REST-API-Swimlanes.md similarity index 100% rename from docs/wekan.wiki/REST-API-Swimlanes.md rename to docs/API/REST-API-Swimlanes.md diff --git a/docs/wekan.wiki/REST-API-User.md b/docs/API/REST-API-User.md similarity index 100% rename from docs/wekan.wiki/REST-API-User.md rename to docs/API/REST-API-User.md diff --git a/docs/wekan.wiki/REST-API.md b/docs/API/REST-API.md similarity index 100% rename from docs/wekan.wiki/REST-API.md rename to docs/API/REST-API.md diff --git a/docs/wekan.wiki/Impersonate-user.md b/docs/Admin/Impersonate-user.md similarity index 100% rename from docs/wekan.wiki/Impersonate-user.md rename to docs/Admin/Impersonate-user.md diff --git a/docs/wekan.wiki/Backup.md b/docs/Backup/Backup.md similarity index 99% rename from docs/wekan.wiki/Backup.md rename to docs/Backup/Backup.md index b9f90c0b1..16c3024b7 100644 --- a/docs/wekan.wiki/Backup.md +++ b/docs/Backup/Backup.md @@ -35,6 +35,13 @@ docker exec wekan-db mongorestore --drop --dir=/data/dump docker start wekan-app ``` # Upgrade Docker Wekan version + +## Newest info + +https://github.com/wekan/wekan/discussions/5367 + +## Old info + Note: Do not run `docker-compose down` without verifying your docker-compose file, it does not delete the data by default but caution is advised. Refer to https://docs.docker.com/compose/reference/down/. ```bash docker-compose stop diff --git a/docs/wekan.wiki/Rclone.md b/docs/Backup/Rclone.md similarity index 100% rename from docs/wekan.wiki/Rclone.md rename to docs/Backup/Rclone.md diff --git a/docs/wekan.wiki/Repair-MongoDB.md b/docs/Backup/Repair-MongoDB.md similarity index 100% rename from docs/wekan.wiki/Repair-MongoDB.md rename to docs/Backup/Repair-MongoDB.md diff --git a/docs/wekan.wiki/Upgrade.md b/docs/Backup/Upgrade.md similarity index 100% rename from docs/wekan.wiki/Upgrade.md rename to docs/Backup/Upgrade.md diff --git a/docs/wekan.wiki/Browser-compatibility-matrix.md b/docs/Browsers/Browser-compatibility-matrix.md similarity index 61% rename from docs/wekan.wiki/Browser-compatibility-matrix.md rename to docs/Browsers/Browser-compatibility-matrix.md index b8461b245..ddfd499e1 100644 --- a/docs/wekan.wiki/Browser-compatibility-matrix.md +++ b/docs/Browsers/Browser-compatibility-matrix.md @@ -10,6 +10,7 @@ There edit Browser-compatibility-matrix.md and attach it with .txt extension or Browser | [PWA](PWA) | Mobile | Desktop | OS ------- | ----| ------ | ------- | ------- Safari | iOS Yes | iOS Newest | Newest | iOS, macOS +Iris | No | No | Newest | [Iris browser news](https://www.riscosopen.org/forum/forums/1/topics/19545), Download [RISC OS Direct](https://www.riscosdev.com/direct/) for Raspberry Pi etc. [Other versions of RISC OS for many ARM CPU devices](https://www.riscosopen.org/content/downloads) do not have Iris browser yet, but there could be some way to transfer Iris browser files from RISC OS Direct. ## Firefox based @@ -17,14 +18,14 @@ Any telemetry at any Firefox based browser can be additionally most locked down Browser | [PWA](PWA) | Mobile | Desktop | OS ------- | ----| ------ | ------- | ------- -[Mypal](https://releases.wekan.team/mypal/) | No | No | Newest | For 32bit ReactOS/WinXP/Win7/etc [issue](https://github.com/wekan/wekan/issues/3132), Other 32bit browsers probably not -Firefox | Android Yes | Android Newest | Newest | Win/Mac/Linux/RasPi -Morph Browser | No | Yes | Yes | [Ubuntu Touch](https://ubports.com) (based on Ubuntu 16.04) on PinePhone, OnePlus 3, [RasPi3](https://ci.ubports.com/job/rootfs/job/rootfs-rpi/) (not RasPi4 yet). Works best with bluetooth or USB mouse and keyboard. -[OpenStore App](https://open-store.io/app/wekan.wekanteam) | Yes | Yes | Yes | Based on [Wekan PWA](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license/s7SkzYviC2e963FkT), [Ubuntu Touch](https://ubports.com) app at [OpenStore](https://open-store.io/app/wekan.wekanteam) using Morph browser with Wekan demo & development server https://boards.wekan.team . Tested on [RasPi3](https://ci.ubports.com/job/rootfs/job/rootfs-rpi/). PWA URL is configured here https://github.com/wekan/wekan-openstore/blob/master/wekan.desktop#L3 -[Waterfox](https://www.waterfox.net) | No | No | Yes | Win/Mac/Linux, more private than Firefox, no tracking +[Mypal](https://github.com/reactosapps/apps/releases/download/0.01/mypal-27.9.4.win32.installer.exe) | No | No | Newest | For 32bit ReactOS/WinXP/Win7/etc [issue](https://github.com/wekan/wekan/issues/3132) +Firefox | No | Newest | Newest | iOS/Android/Win/Mac/Linux/BSD/RasPi. At iOS uses Safari engine, elsewhere Firefox engine. [Haiku](https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/143) not tested yet - [HN](https://news.ycombinator.com/item?id=41214762). +[Waterfox](https://www.waterfox.net) | No | No | Yes | Win/Mac/Linux, more private than Firefox, no tracking. [Repo](https://github.com/BrowserWorks/Waterfox) [Floorp](https://floorp.app) | No | No | Yes | [Win/Mac/Linux](https://github.com/Floorp-Projects/Floorp/releases), more private than Firefox, [Repo](https://github.com/Floorp-Projects/Floorp) [Mercury](https://thorium.rocks/mercury) | No | No | Yes | [Win/Linux](https://github.com/Alex313031/Mercury/releases), more private than Firefox, [Repo](https://github.com/Alex313031/Mercury) [SeaLion](https://github.com/wicknix/SeaLion) | No | No | Yes | [MacOS 10.7-14.1 x32,x64,ppc,ppc64/Linux x64](https://github.com/wicknix/SeaLion/releases), [Repo](https://github.com/wicknix/SeaLion) +[LibreWolf](https://librewolf.net) | No | No | Yes | [Win/Mac/Linux](https://librewolf.net/installation/), [Repos](https://codeberg.org/librewolf) +[Zen Browser](https://www.zen-browser.app/) | No | No | Yes | [Win/Mac/Linux](https://www.zen-browser.app/download), [Repos](https://github.com/zen-browser), [Review at YouTube](https://www.youtube.com/watch?v=tKM2N4TQHQY) ## Chromium based @@ -32,9 +33,12 @@ Browser | [PWA](PWA) | Mobile | Desktop | OS ------- | ----| ------ | ------- | ------- Chrome | Android Yes | Android Newest | Newest | Win/Mac/Linux Chromium | Android Yes | Android Newest | Newest | Win/Mac/Linux/RasPi +Brave | Android Yes | Android Newest | Newest | Win/Mac/Linux/RasPi Vivaldi | Android Yes | Android Newest | Newest | Win/Mac/Linux Opera | Android Yes | Android Newest | Newest | Win/Mac/Linux Credge, Chromium Edge | Android Yes | Android | Newest | Win/Mac/Linux/Mobile +Morph Browser | No | Yes | Yes | [Ubuntu Touch](https://ubports.com) based on Ubuntu 16.04 and 20.04 at all Ubuntu Touch devices, [RasPi3](https://ci.ubports.com/job/rootfs/job/rootfs-rpi/) (not RasPi4 yet). [Repo](https://gitlab.com/ubports/development/core/morph-browser) +[OpenStore App](https://open-store.io/app/wekan.wekanteam) | Yes | Yes | Yes | [Ubuntu Touch](https://ubports.com) app at [OpenStore](https://open-store.io/app/wekan.wekanteam) using Morph browser with Wekan demo & development server https://boards.wekan.team . App source code for Ubuntu 16.04 at https://github.com/wekan/wekan-openstore and Ubuntu 20.04 at https://github.com/wekan/wekan-openstore2 [Microsoft Store App](https://www.microsoft.com/fi-fi/p/wekan/9p2mrxvd087r#activetab=pivot:overviewtab) | Yes | Yes | Yes | At Microsoft Store of Windows 10/11 desktop, made with [PWABuilder](https://www.pwabuilder.com/). Based on [Wekan PWA](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license/s7SkzYviC2e963FkT), changed app from EdgeHTML to Credge based with Wekan demo & development server https://boards.wekan.team [Android Play Store App](https://play.google.com/store/apps/details?id=team.wekan.boards.twa) | Yes | Yes | Yes | Based on [Wekan PWA](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license/s7SkzYviC2e963FkT), made with [PWABuilder](https://www.pwabuilder.com/), uses Android Chrome browser with Wekan demo & development server https://boards.wekan.team [Thorium](https://thorium.rocks) | No | Yes | Yes | [Win/Win7/Mac/Linux/Android/RasPi](https://thorium.rocks), speed optimized @@ -52,6 +56,17 @@ Browser | [PWA](PWA) | Mobile | Desktop | OS ------- | ----| ------ | ------- | ------- Internet Explorer | No | No | No | No | No +## Servo based, not tested yet + +- Apache 2.0 or MIT license +- Repo: https://github.com/versotile-org/verso + +## Ladybird based, not yet compatible with WeKan + +- BSD-2-Clause license +- Website: https://ladybird.org +- Repo: https://github.com/LadybirdBrowser/ladybird + ## Other ways to create Mobile App with Meteor https://guide.meteor.com/cordova @@ -62,10 +77,10 @@ Benefits: ## Desktop app with Meteor -https://forums.meteor.com/t/desktop-electron-meteor-app-with-todesktop/60904 +- https://forums.meteor.com/t/desktop-electron-meteor-app-with-todesktop/60904 ## Optional Payments - If there is sometime a need to develop payment feature, that does not exist yet - https://forums.meteor.com/t/need-help-adding-in-app-purchases-to-a-meteor-app-specifically-adding-subscription-support-for-android-play-store/40510 -- https://www.npmjs.com/package/cordova-plugin-purchase \ No newline at end of file +- https://www.npmjs.com/package/cordova-plugin-purchase diff --git a/docs/wekan.wiki/PostgreSQL.md b/docs/Databases/PostgreSQL.md similarity index 100% rename from docs/wekan.wiki/PostgreSQL.md rename to docs/Databases/PostgreSQL.md diff --git a/docs/wekan.wiki/Calendar.md b/docs/Date/Calendar.md similarity index 100% rename from docs/wekan.wiki/Calendar.md rename to docs/Date/Calendar.md diff --git a/docs/wekan.wiki/Day-of-week-start.md b/docs/Date/Day-of-week-start.md similarity index 100% rename from docs/wekan.wiki/Day-of-week-start.md rename to docs/Date/Day-of-week-start.md diff --git a/docs/wekan.wiki/Due-Date.md b/docs/Date/Due-Date.md similarity index 100% rename from docs/wekan.wiki/Due-Date.md rename to docs/Date/Due-Date.md diff --git a/docs/wekan.wiki/Time-Tracking.md b/docs/Date/Time-Tracking.md similarity index 100% rename from docs/wekan.wiki/Time-Tracking.md rename to docs/Date/Time-Tracking.md diff --git a/docs/wekan.wiki/Timezone.md b/docs/Date/Timezone.md similarity index 100% rename from docs/wekan.wiki/Timezone.md rename to docs/Date/Timezone.md diff --git a/docs/wekan.wiki/Adding-new-Snap-settings-to-code.md b/docs/DeveloperDocs/Adding-new-Snap-settings-to-code.md similarity index 100% rename from docs/wekan.wiki/Adding-new-Snap-settings-to-code.md rename to docs/DeveloperDocs/Adding-new-Snap-settings-to-code.md diff --git a/docs/DeveloperDocs/AsyncAwait.md b/docs/DeveloperDocs/AsyncAwait.md new file mode 100644 index 000000000..e830c07b5 --- /dev/null +++ b/docs/DeveloperDocs/AsyncAwait.md @@ -0,0 +1,3 @@ +- https://www.sitepoint.com/javascript-async-await/ +- https://www.freecodecamp.org/news/javascript-async-await-tutorial-learn-callbacks-promises-async-await-by-making-icecream/ +- https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous \ No newline at end of file diff --git a/docs/DeveloperDocs/Build-from-source.md b/docs/DeveloperDocs/Build-from-source.md new file mode 100644 index 000000000..e1cab9b6a --- /dev/null +++ b/docs/DeveloperDocs/Build-from-source.md @@ -0,0 +1,204 @@ +## About markdown changes + +Wekan v4.29 changes markdown rendering from [marked](https://github.com/markedjs/marked) to [markdown-it](https://github.com/markdown-it/markdown-it). + +## About emoji + +With markdown-it, also [markdown-it-emoji](https://github.com/markdown-it/markdown-it-emoji) plugin has been added, supporting [full list of GitHub emojis](https://github.com/markdown-it/markdown-it-emoji/blob/master/lib/data/full.json). + +Example emoji code, that you can add for example to card name, card description etc: +``` +:rainbow: :thumbsup: :100: +``` +That shows emojis :rainbow: :thumbsup: :100: + +## About other markdown-it plugins + +For markdown-it, there are also other [syntax extensions](https://github.com/markdown-it/markdown-it#syntax-extensions) where some are listed at that markdown-it page, and [others at npmjs.com](https://www.npmjs.org/browse/keyword/markdown-it-plugin). + +For example, how to get some [mermaid plugin](https://www.npmjs.com/search?q=markdown-it-mermaid) working so that some syntax works for https://mermaid-js.github.io/mermaid/ ? + +## How you could add another plugin + +Using newest Ubuntu amd64: + +# Meteor 2 + +### 1. Install git and configure it +``` +sudo apt -y install git + +git config --global user.name "Yourfirstname Yourlastname" + +git config --global user.email email-address-you-use-at-github@example.com + +git config --global push.default simple + +nano .ssh/config +``` +There add your User (GitHub username) and IdentityFile (Your ssh private key. Not public key that has .pub). +For indentation, use one tab. +``` +Host * + IdentitiesOnly=yes + +Host github.com + Hostname github.com + User xet7 + IdentityFile ~/.ssh/id_xet7ed +``` +Save and Exit with Ctrl-o Enter Ctrl-x Enter + +If you do not have ssh key, create it: +``` +ssh-keygen +``` +And press Enter about 3 times, until you have private key at `~/.ssh/id_rsa` and public key at `~/.ssh/id_rsa.pub` + +Add public key `.pub` to your github account web interface. + +Add path to Meteor: +``` +nano .bashrc +``` +There at bottom add: +``` +export PATH=~/.meteor:$PATH +``` +Save and Exit with Ctrl-o Enter Ctrl-x Enter + +### 2. Create fork of `https://github.com/wekan/wekan` at GitHub web page + +``` +mkdir repos + +cd repos + +git clone git@github.com:YourGithubUsername/wekan.git + +cd wekan +``` +### 3. Select option 1 to install dependencies, and then Enter. +``` +./rebuild-wekan.sh + +1 + +./rebuild-wekan.sh + +2 + +./rebuild-wekan.sh + +3 +``` +That does: 1 install dependencies, 2 builds wekan, 3 starts wekan in development mode with command `meteor`, so it can detect if some file changes and try to rebuild automatically and reload webbroser. But, still sometimes, it may need stopping with Ctrl-c and full build with option 2. + +And then [register and login](Adding-users) at http://localhost:4000 + +### OPTIONAL, NOT NEEDED: 5. Add new plugin package +``` +meteor npm install markdown-it-something --save +``` + +Edit file `wekan/packages/markdown/src-integration.js` and add using that new package, using code example from that new plugin page, or similar like emoji plugin was added. + +### 7. Test + +Test does that new plugin syntax work, for example in card title, card description etc on other input fields. + +### 8. If it works, create pull request + +If normal markdown, emoji, and your new added plugin syntax all work, commit your changes: +``` +git add --all + +git commit -m "Added plugin markdown-it-something." + +git push +``` +And then at your GitHub for `https://github.com/YOUR-GITHUB-USERNAME/wekan` click `Create pull request`. + +# Meteor 3 + +At 2024-06-26, it looks like from https://nodejs.org/en that Node.js LTS version is 20.15.0 , so change to newest Node.js LTS, delete old Meteor: +``` +sudo n 20.15.0 + +sudo npm -g install npm + +cd + +rm -rf .meteor +``` +Check how to install newest Meteor from Meteor 3 PR at https://github.com/meteor/meteor/pull/13163 , for example: +``` +npx meteor@rc +``` +Check what branches there are: +``` +cd repos/wekan + +git branch -a +``` +Change to Meteor 3 branch: +``` +git checkout feature-meteor3 +``` +Build wekan: +``` +./rebuild-wekan.sh + +2 +``` +If there are errors, try to fix them. + +Or try to run wekan: +``` +./rebuild-wekan.sh + +3 +``` +# Updating + +There are usually updates both for npm packages and Meteor + +Updating npm packages: +``` +npm update +``` +Checking for vulnerable packages: +``` +npm audit +``` +Fixing vulnerable npm packages by updating to newer packages: +``` +npm audit fix +``` +If that did not help, use force: +``` +npm audit fix --force +``` +If that did not help, read links from that `npm audit` command did show, remove deprecated dependencies, update to other maintained dependencies. + +Updating to next Meteor release: +``` +meteor update +``` +Updating to specific Meteor release: +``` +meteor update --release METEOR@3.0-rc.4 +``` +Trying to update all Meteor packages: +``` +meteor update --release METEOR@3.0-rc.4 --all-packages +``` +Allowing incompatible updates, that may sometime work: +``` +meteor update --release METEOR@3.0-rc.4 --all-packages --allow-incompatible-update +``` +If you are changing Meteor and Node.js versions, you may need to reset Meteor: +``` +meteor reset +``` +Or alternatively, delete wekan repo (if you did not need any changes you made), and clone wekan repo again, and then build etc. diff --git a/docs/wekan.wiki/Debugging.md b/docs/DeveloperDocs/Debugging.md similarity index 100% rename from docs/wekan.wiki/Debugging.md rename to docs/DeveloperDocs/Debugging.md diff --git a/docs/wekan.wiki/Deep-Dive-Into-WeKan.md b/docs/DeveloperDocs/Deep-Dive-Into-WeKan.md similarity index 100% rename from docs/wekan.wiki/Deep-Dive-Into-WeKan.md rename to docs/DeveloperDocs/Deep-Dive-Into-WeKan.md diff --git a/docs/DeveloperDocs/Design-Principles.md b/docs/DeveloperDocs/Design-Principles.md new file mode 100644 index 000000000..cfca81bab --- /dev/null +++ b/docs/DeveloperDocs/Design-Principles.md @@ -0,0 +1,37 @@ +## WeKan Design Principles + +- 2024-08 Design discussion here: https://github.com/wekan/wekan/discussions/5507 +- Original WeKan Design: + - Uses WeKan style confirm popups `Popup.afterConfirm(` , translations etc. Please look at existing code to keep same style. + - Kanban, the good parts. Like was done when figuring out best design for Swimlanes https://github.com/wekan/wekan/issues/955 + - Intuitive, easy to figure out, prevent messing up something https://github.com/wekan/wekan/wiki/Monkey-Proof-Software + - Polished UI/UX + - Menu options are there where you would expect then to be. + - Try to fix anything unexpected. + - New features added there where it makes most sense. + - Not too many toggles and settings, because that is worse. For example, Discord settings has too many toggles and settings. Just select some default. + - FOSS with MIT license + - Swimlanes + - All the use cases of WeKan feature/fix contributors + - Cross-platform. Support many CPU/OS/Browsers for Desktop and Mobile. + - Support many browsers https://github.com/wekan/wekan/wiki/Browser-compatibility-matrix . Add support for more. + - PWA https://github.com/wekan/wekan/wiki/PWA + - On-Premise: + - Linux amd64/arm64/s390x + - https://wekan.github.io/install/ + - https://github.com/wekan/wekan/wiki/Raspberry-Pi + - Windows https://github.com/wekan/wekan/wiki/Offline + - Mac https://github.com/wekan/wekan/wiki/Mac +- Not like other software: + - But note that design of all software changes often, when they are in active development. +- Not bad parts of Trello: + - Not the exact design of Trello https://github.com/wekan/wekan/wiki/FAQ#why-does-wekan-look-so-different-now-compared-to--v09 + - Not so many duplicate menus and texts like Trello + - Not so much empty space +- Some good parts of Trello: + - Import from Trello + - Shortcuts https://github.com/wekan/wekan/issues/1878 + - IFTTT Rules like Trello Butler https://github.com/wekan/wekan/wiki/IFTTT + - Progress bar of checklist +- Some good parts of Jira: + - Multiple assignees \ No newline at end of file diff --git a/docs/wekan.wiki/Developer-Documentation.md b/docs/DeveloperDocs/Developer-Documentation.md similarity index 97% rename from docs/wekan.wiki/Developer-Documentation.md rename to docs/DeveloperDocs/Developer-Documentation.md index f846f0cf0..7393c06da 100644 --- a/docs/wekan.wiki/Developer-Documentation.md +++ b/docs/DeveloperDocs/Developer-Documentation.md @@ -6,6 +6,7 @@ Please read the meteor style guide before making any significant contribution. # Stories about how Wekan works, and developing Wekan +- [Login code](https://github.com/wekan/wekan/issues/5714) - https://www.mongodb.com/docs/drivers/node/v3.7/fundamentals/promises/ - [Do not use code formatters like Prettier and ESLint](https://github.com/wekan/wekan/pull/4633#issuecomment-1214214591) - [How realtime board updates work](https://github.com/wekan/wekan/issues/3788#issuecomment-834649553) @@ -46,7 +47,7 @@ When you run this, you see .jade template files where is search input box, and . - Look through old [pull requests](https://github.com/wekan/wekan/pulls) - Read Wekan source code, you can use some git history viewer GUI like gitk - Read [Meteor documentation](https://docs.meteor.com/) for [Meteor version](https://github.com/wekan/wekan/blob/main/.meteor/release) in use, other versions mentioned at [Dockerfile](https://github.com/wekan/wekan/blob/main/Dockerfile) -- Docker up-to-date way: You can clone wekan/wekan repo and update docker-compose.yml file ROOT_URL etc as documented at https://github.com/wekan/wekan-mongodb commented docker-compose.yml file, install docker, and build from source with docker with "docker-compose up -d --build" +- Docker up-to-date way: You can clone wekan/wekan repo and update docker-compose.yml file ROOT_URL etc as documented at https://github.com/wekan/wekan commented `docker-compose.yml` file, install docker, and build from source with docker with `docker compose up -d --build` - Docker not up-to-date way: [Docker environment for Wekan development](https://github.com/wekan/wekan-dev). ## Pull Request Workflow (Please read before submitting PR's) diff --git a/docs/wekan.wiki/Directory-Structure.md b/docs/DeveloperDocs/Directory-Structure.md similarity index 100% rename from docs/wekan.wiki/Directory-Structure.md rename to docs/DeveloperDocs/Directory-Structure.md diff --git a/docs/DeveloperDocs/Emoji.md b/docs/DeveloperDocs/Emoji.md new file mode 100644 index 000000000..e1cab9b6a --- /dev/null +++ b/docs/DeveloperDocs/Emoji.md @@ -0,0 +1,204 @@ +## About markdown changes + +Wekan v4.29 changes markdown rendering from [marked](https://github.com/markedjs/marked) to [markdown-it](https://github.com/markdown-it/markdown-it). + +## About emoji + +With markdown-it, also [markdown-it-emoji](https://github.com/markdown-it/markdown-it-emoji) plugin has been added, supporting [full list of GitHub emojis](https://github.com/markdown-it/markdown-it-emoji/blob/master/lib/data/full.json). + +Example emoji code, that you can add for example to card name, card description etc: +``` +:rainbow: :thumbsup: :100: +``` +That shows emojis :rainbow: :thumbsup: :100: + +## About other markdown-it plugins + +For markdown-it, there are also other [syntax extensions](https://github.com/markdown-it/markdown-it#syntax-extensions) where some are listed at that markdown-it page, and [others at npmjs.com](https://www.npmjs.org/browse/keyword/markdown-it-plugin). + +For example, how to get some [mermaid plugin](https://www.npmjs.com/search?q=markdown-it-mermaid) working so that some syntax works for https://mermaid-js.github.io/mermaid/ ? + +## How you could add another plugin + +Using newest Ubuntu amd64: + +# Meteor 2 + +### 1. Install git and configure it +``` +sudo apt -y install git + +git config --global user.name "Yourfirstname Yourlastname" + +git config --global user.email email-address-you-use-at-github@example.com + +git config --global push.default simple + +nano .ssh/config +``` +There add your User (GitHub username) and IdentityFile (Your ssh private key. Not public key that has .pub). +For indentation, use one tab. +``` +Host * + IdentitiesOnly=yes + +Host github.com + Hostname github.com + User xet7 + IdentityFile ~/.ssh/id_xet7ed +``` +Save and Exit with Ctrl-o Enter Ctrl-x Enter + +If you do not have ssh key, create it: +``` +ssh-keygen +``` +And press Enter about 3 times, until you have private key at `~/.ssh/id_rsa` and public key at `~/.ssh/id_rsa.pub` + +Add public key `.pub` to your github account web interface. + +Add path to Meteor: +``` +nano .bashrc +``` +There at bottom add: +``` +export PATH=~/.meteor:$PATH +``` +Save and Exit with Ctrl-o Enter Ctrl-x Enter + +### 2. Create fork of `https://github.com/wekan/wekan` at GitHub web page + +``` +mkdir repos + +cd repos + +git clone git@github.com:YourGithubUsername/wekan.git + +cd wekan +``` +### 3. Select option 1 to install dependencies, and then Enter. +``` +./rebuild-wekan.sh + +1 + +./rebuild-wekan.sh + +2 + +./rebuild-wekan.sh + +3 +``` +That does: 1 install dependencies, 2 builds wekan, 3 starts wekan in development mode with command `meteor`, so it can detect if some file changes and try to rebuild automatically and reload webbroser. But, still sometimes, it may need stopping with Ctrl-c and full build with option 2. + +And then [register and login](Adding-users) at http://localhost:4000 + +### OPTIONAL, NOT NEEDED: 5. Add new plugin package +``` +meteor npm install markdown-it-something --save +``` + +Edit file `wekan/packages/markdown/src-integration.js` and add using that new package, using code example from that new plugin page, or similar like emoji plugin was added. + +### 7. Test + +Test does that new plugin syntax work, for example in card title, card description etc on other input fields. + +### 8. If it works, create pull request + +If normal markdown, emoji, and your new added plugin syntax all work, commit your changes: +``` +git add --all + +git commit -m "Added plugin markdown-it-something." + +git push +``` +And then at your GitHub for `https://github.com/YOUR-GITHUB-USERNAME/wekan` click `Create pull request`. + +# Meteor 3 + +At 2024-06-26, it looks like from https://nodejs.org/en that Node.js LTS version is 20.15.0 , so change to newest Node.js LTS, delete old Meteor: +``` +sudo n 20.15.0 + +sudo npm -g install npm + +cd + +rm -rf .meteor +``` +Check how to install newest Meteor from Meteor 3 PR at https://github.com/meteor/meteor/pull/13163 , for example: +``` +npx meteor@rc +``` +Check what branches there are: +``` +cd repos/wekan + +git branch -a +``` +Change to Meteor 3 branch: +``` +git checkout feature-meteor3 +``` +Build wekan: +``` +./rebuild-wekan.sh + +2 +``` +If there are errors, try to fix them. + +Or try to run wekan: +``` +./rebuild-wekan.sh + +3 +``` +# Updating + +There are usually updates both for npm packages and Meteor + +Updating npm packages: +``` +npm update +``` +Checking for vulnerable packages: +``` +npm audit +``` +Fixing vulnerable npm packages by updating to newer packages: +``` +npm audit fix +``` +If that did not help, use force: +``` +npm audit fix --force +``` +If that did not help, read links from that `npm audit` command did show, remove deprecated dependencies, update to other maintained dependencies. + +Updating to next Meteor release: +``` +meteor update +``` +Updating to specific Meteor release: +``` +meteor update --release METEOR@3.0-rc.4 +``` +Trying to update all Meteor packages: +``` +meteor update --release METEOR@3.0-rc.4 --all-packages +``` +Allowing incompatible updates, that may sometime work: +``` +meteor update --release METEOR@3.0-rc.4 --all-packages --allow-incompatible-update +``` +If you are changing Meteor and Node.js versions, you may need to reset Meteor: +``` +meteor reset +``` +Or alternatively, delete wekan repo (if you did not need any changes you made), and clone wekan repo again, and then build etc. diff --git a/docs/wekan.wiki/Meteor-bundle.md b/docs/DeveloperDocs/Meteor-bundle.md similarity index 100% rename from docs/wekan.wiki/Meteor-bundle.md rename to docs/DeveloperDocs/Meteor-bundle.md diff --git a/docs/DeveloperDocs/Meteor.md b/docs/DeveloperDocs/Meteor.md new file mode 100644 index 000000000..7a77196c2 --- /dev/null +++ b/docs/DeveloperDocs/Meteor.md @@ -0,0 +1,113 @@ +## Learning Course: Your First Meteor 3.1 Application + +- https://www.youtube.com/watch?v=aFZzBb2oRi8&list=PLKKckIyt2nF863eP16mvVgWKR4JDyJoKy + +## Meteor 3 Example Code + +- https://github.com/fredmaiaarantes/simpletasks + - MIT License + - https://github.com/xet7/simpletasks +- https://github.com/henriquealbert/meteor-with-prisma + - MIT License + - https://github.com/xet7/meteor-with-prisma +- https://github.com/henriquealbert/meteor-pnpm + - MIT License + - https://github.com/xet7/meteor-pnpm + +## Building Multi Platform Mobile Apps + +- TWIM 058: Building Multi Platform Mobile Apps https://www.youtube.com/watch?v=ZTtXRJTUCIU +- https://www.youtube.com/watch?v=ZTtXRJTUCIU +- https://github.com/jamauro/pwa-kit +- https://wekan.team/app/ +- https://github.com/wekan/wekan/wiki/PWA +- Over 100 icons for different platforms https://github.com/wekan/wekan/blob/main/public/site.webmanifest + +## Tip to any programmers + +- Try to understand any error messages, and what to do to those errors + +## Videos about upgrading to Meteor 3 + +- Storyteller + - Upcoming: + - 2024-09-02: Meteor.js generators https://www.youtube.com/watch?v=Z6nY2wqPgSE + - 2024-09-09: Can we build static web pages with Meteor.js? https://www.youtube.com/watch?v=cr-Nm0YFb1w + - 2024-09-16: Revisiting Mantra application architecture for today's Meteor.js https://www.youtube.com/watch?v=YyzY7ySqBAg + - 2024-08-23: TWIM 052: Year of TWIM in review. Trying to of sometime have xet7 at TWIM show again. They recommended people to help xet7 when possible, xet7 is hitting some walls developing WeKan. https://www.youtube.com/watch?v=c5E3uZST4Vs + - 2024-08-20: + - Vazco interviewing Storyteller: How to approach building Open Source products? https://www.youtube.com/watch?v=j5BrTYcJDVc + - Meteor inteviewing Storyteller: Programmer, open source contributor, entrepreneur https://www.youtube.com/watch?v=dsp0_r8uJx8 + - Meteor Roles: + - 2024-07-33: Meteor Roles the full checkpoint https://www.youtube.com/watch?v=ow1i4UXdbbI + - 2024-08-12: Meteor Roles building up teams https://www.youtube.com/watch?v=ZAuSYKfV114 + - 2024-07-15: WeKan Upgrades https://www.youtube.com/watch?v=Zjb3m9JsAD0 + - 2024-07-08: Upgrading Meteor examples https://www.youtube.com/watch?v=jzWXxOe93t4 + - Upcoming and past: https://www.youtube.com/@storytellercz/streams +- React.js + - WeKan uses Blaze and Jade, not React. + - 2024-09-25: + - Meteor 3 React Compiler: https://x.com/FilipeNevola/status/1838911432282583432 + - 2024-08-02: + - https://www.youtube.com/watch?v=NnT7AbVMnj4 + - https://thenewstack.io/after-a-decade-of-react-is-frontend-a-post-react-world-now/ + - https://thenewstack.io/pivoting-from-react-to-native-dom-apis-a-real-world-example/ + - https://thenewstack.io/how-web-components-are-used-at-github-and-salesforce/ + - https://devclass.com/2024/07/22/react-community-splitting-into-full-stack-and-client-only-camps-suggests-survey/ + - https://news.ycombinator.com/item?id=41068685 + - 2024-07-10: Storyteller at React Wroclaw Meetup, talking about Meteor.js and React: https://www.youtube.com/watch?v=4dnM6bXZCz4&t=741s + - How A Small Team of Developers Created React at Facebook | React.js: The Documentary https://www.youtube.com/watch?v=8pDqJVdNa44 +https://www.youtube.com/watch?v=8pDqJVdNa44 +- Meteor Dispatches Podcast + - 46: 2024-07-12: Packages you need in every app https://www.youtube.com/watch?v=S2YkZfKN0DI + - 25: 2024-02-09: WeKan Security https://www.youtube.com/watch?v=zic-h8jG6F8 + - 16: 2023-12-08: WeKan interview https://www.youtube.com/watch?v=ke-mbnZM3zE + - Upcoming and past: https://www.youtube.com/@meteorjscommunity/streams + - Playlists: https://www.youtube.com/@meteorjscommunity/playlists + - Some recent also had info, how to make dependencies compatible with both Meteor 2 and Meteor 3 +- Add Eslint 3 and fix anything found + - https://www.youtube.com/watch?v=rFjNNNc_7-E + - https://github.com/quavedev/eslint-plugin + - https://github.com/quavedev/meteor-template/pull/8 + +## Upgrading to Meteor 3 + +- Meteor 3 migration guide: https://v3-migration-docs.meteor.com ( older pages at https://guide.meteor.com/3.0-migration or https://guide.meteor.com/prepare-meteor-3.0 ) +- Look at progress of migrated packages https://forums.meteor.com/t/looking-for-help-migrating-packages-to-meteor-3-0/60985 +- Migrate from Fibers (works only at Meteor 2 and Node.js 14) to Async/Await (works with Meteor 3 and Node.js 20) + - Helper tool https://forums.meteor.com/t/blaze-async-migration-helper-babel-plugin-tracker-async-enhance-for-the-client-side-released/60842 + - Info how Async/Await works, from Storyteller: https://github.com/wekan/wekan/wiki/AsyncAwait +- Forums posts about migrating: https://forums.meteor.com +- ( Older version upgrade to newest 2.14 https://guide.meteor.com/2.14-migration ) + +## Removing unused files + +From Meteor Discord chat from someone: + +> Nice tool that I found out about today. I was able to remove 58 unused files, functions, exports, types and dependencies 😄 +> +> https://knip.dev + +## Lint + +From Meteor Discord chat from someone: + +> We started using https://biomejs.dev to replace eslint and prettier on Galaxy 2, and it's been amazing. It's speedy, easy to configure, and has fewer packages to care about. +> +> Just sharing it here in case someone has never heard about it before + + +## Building WeKan + +- https://github.com/wekan/wekan/wiki/Emoji +- Docs: https://github.com/wekan/wekan/tree/main/docs + +## Similar technology + +- https://en.wikipedia.org/wiki/JavaScript_engine +- https://en.wikipedia.org/wiki/Single-page_application +- https://en.wikipedia.org/wiki/Web_framework +- https://en.wikipedia.org/wiki/Progressive_web_app +- https://en.wikipedia.org/wiki/Web_2.0 +- https://en.wikipedia.org/wiki/Meteor_(web_framework) +- https://en.wikipedia.org/wiki/Next.js diff --git a/docs/wekan.wiki/Monkey-Proof-Software.md b/docs/DeveloperDocs/Monkey-Proof-Software.md similarity index 100% rename from docs/wekan.wiki/Monkey-Proof-Software.md rename to docs/DeveloperDocs/Monkey-Proof-Software.md diff --git a/docs/wekan.wiki/Test-Edge.md b/docs/DeveloperDocs/Test-Edge.md similarity index 100% rename from docs/wekan.wiki/Test-Edge.md rename to docs/DeveloperDocs/Test-Edge.md diff --git a/docs/wekan.wiki/WeKan-Multiverse-Roadmap.md b/docs/DeveloperDocs/WeKan-Multiverse-Roadmap.md similarity index 93% rename from docs/wekan.wiki/WeKan-Multiverse-Roadmap.md rename to docs/DeveloperDocs/WeKan-Multiverse-Roadmap.md index ee774d38c..da4a15c13 100644 --- a/docs/wekan.wiki/WeKan-Multiverse-Roadmap.md +++ b/docs/DeveloperDocs/WeKan-Multiverse-Roadmap.md @@ -1,3 +1,19 @@ +## What is not Cross-Platform + +- Requires CPU to support AVX + - Bun Javascript Engine https://bun.sh + - MongoDB 5.x and newer https://github.com/turnkeylinux/tracker/issues/1724#issuecomment-2351544191 +- Does not work at s390x + - V programming language https://github.com/vlang/v/issues/18737 + - Bun Javascript Engine https://github.com/oven-sh/bun/issues/2632 + - Deno Javascript Engine https://github.com/denoland/deno/issues/20212#issuecomment-1756663943 + - Lazarus IDE https://www.lazarus-ide.org + - FreePascal programming language https://www.freepascal.org + - TigerBeetle database https://github.com/tigerbeetle/tigerbeetle/issues/2241 +- GUI requires porting to other OS + - BBC Basic https://www.bbcbasic.net/wiki/doku.php?id=converting_20programs_20from_20risc_20os_20to_20windows + - Tcl/Tk GUI does works at most OS + ## Prototype Strategy - Try building many prototypes, see what works @@ -265,8 +281,11 @@ https://github.com/wekan/php/blob/main/page/allboardschar.php ### FreePascal -- Repo https://github.com/wekan/hx/tree/main/prototypes/code/webserver/works/freepascal-router -- Router and some webpage +- Repo https://github.com/wekan/wami + - Some static pages +- Previous: + - Repo https://github.com/wekan/hx/tree/main/prototypes/code/webserver/works/freepascal-router + - Router and some webpage - Works at many retro and modern OS, but not at s390x that FreePascal does not support yet https://wiki.freepascal.org/ZSeries ### FreeDOS and Bash diff --git a/docs/wekan.wiki/Drag-Drop.md b/docs/DragDrop/Drag-Drop.md similarity index 88% rename from docs/wekan.wiki/Drag-Drop.md rename to docs/DragDrop/Drag-Drop.md index b0b65a8e7..4da4c6b5f 100644 --- a/docs/wekan.wiki/Drag-Drop.md +++ b/docs/DragDrop/Drag-Drop.md @@ -38,4 +38,9 @@ Reorder with drag drop: - Draggable objects - https://www.redblobgames.com/making-of/draggable/ - https://news.ycombinator.com/item?id=37703291 -- Fixed Drag at Ubuntu Touch Morph browser https://github.com/wekan/wekan/commit/af63259f091cb2ade84493a288ea37c53cd37321 \ No newline at end of file +- Fixed Drag at Ubuntu Touch Morph browser https://github.com/wekan/wekan/commit/af63259f091cb2ade84493a288ea37c53cd37321 + +## Touch UI ideas + +- https://blog.la-terminal.net/godot-on-ipad-summer-update/ +- https://news.ycombinator.com/item?id=41415077 \ No newline at end of file diff --git a/docs/wekan.wiki/Touch-Screen-support.md b/docs/DragDrop/Touch-Screen-support.md similarity index 100% rename from docs/wekan.wiki/Touch-Screen-support.md rename to docs/DragDrop/Touch-Screen-support.md diff --git a/docs/wekan.wiki/Troubleshooting-Mail.md b/docs/Email/Troubleshooting-Mail.md similarity index 99% rename from docs/wekan.wiki/Troubleshooting-Mail.md rename to docs/Email/Troubleshooting-Mail.md index 0aca3653a..27d1c0f61 100644 --- a/docs/wekan.wiki/Troubleshooting-Mail.md +++ b/docs/Email/Troubleshooting-Mail.md @@ -1,3 +1,5 @@ +[Azure Email Communication Service](https://github.com/wekan/wekan/issues/5453) + [Uberspace Email](https://github.com/wekan/wekan/issues/2009#issuecomment-1017630758) ## Newest Wekan @@ -139,6 +141,8 @@ sudo snap set wekan mail-from='Wekan Team Boards ' ``` ## Example: AWS SES +Related https://github.com/wekan/wekan/discussions/5518 + NOTE: At AWS SES settings, you don't need to convert special characters. 1) At AWS SES, add verified sender email address, verified domain, verified DKIM etc. diff --git a/docs/wekan.wiki/FAQ.md b/docs/FAQ/FAQ.md similarity index 90% rename from docs/wekan.wiki/FAQ.md rename to docs/FAQ/FAQ.md index 86f4d1d6e..ed8c0c111 100644 --- a/docs/wekan.wiki/FAQ.md +++ b/docs/FAQ/FAQ.md @@ -60,6 +60,34 @@ It's a very specific niche, with limited amount competitors, with all of this ap [Wekan Team](https://wekan.team) is Wekan Commercial Support company run by CEO [xet7](https://github.com/xet7), current maintainer of Wekan. xet7 does respond to feedback at GitHub issues very actively, because Wekan is community driven Open Source project. Because conflicting opinions can not be implemented, sometimes xet7 has to behave like a benevolent dictator. Every Wekan team member is free to choose what to contribute and when. We can not force anybody to implement anything. Wekan development speed increases when new Wekan contributors join and start to send PRs to existing and new issues. +## What is Bio of xet7 ? + +[Lauri Ojansivu](https://github.com/xet7) is CEO at [WeKan Team](https://wekan.team), +Cross-Platform FOSS maintainer, +Cloud Architect, Full-Stack Developer, SysAdmin and SysOp. +He has experience of [having added and removed over 4 million lines of code](https://github.com/wekan/wekan/blob/main/releases/count-lines-of-code-per-committer.sh) to +[Meteor Full-Stack Web Framework](https://www.meteor.com) +based [WeKan Open Source kanban](https://wekan.github.io), +that has been [translated to 70+ languages](https://explore.transifex.com/wekan/wekan/), +and is currently used at [most countries of the world](https://snapcraft.io/wekan). +At 2024-06-04, he is currently [4h most active GitHub committer at Finland](https://committers.top/finland). + +He holds a BBA as computer designer and system engineer +at Kemi-Tornio AMK, Finland. +He is credited as having built quality control system +with comparisons of groups and fitness test calculations, +company infra, migration from On-Premises to Cloud, +SLA support, IT support, [games](https://github.com/xet7/notegame), database apps, websites, +[winner of 2th place at EU NGI ONTOCHAIN Hackathon](https://wekan.github.io/donated/ontochain-certificate.png), +[winner of 20i FOSS Awards](https://wekan.github.io/donated/foss-awards-2022/20i_FOSS_Awards_Winners_Announced_(Press_Release).pdf), and [porting to 30+ CPU/OS](https://github.com/xet7/darkesthour). + +At MeteorJS Dispatches Video Podcast, he has been +interviewed [about WeKan](https://www.youtube.com/watch?v=ke-mbnZM3zE&t=1342s), +[Meteor Security](https://www.youtube.com/watch?v=zic-h8jG6F8), and other topics. +He teaches using computers at local nerd club. +At his free time, he is porting FOSS software to many CPU/OS, +and [translating them from English to Finnish](https://xet7.org). + ## How to convince my company management that Wekan "is less evil" than Trello? Yes, xet7 received this question in Email. diff --git a/docs/wekan.wiki/Hall-of-Shame.md b/docs/FAQ/Hall-of-Shame.md similarity index 100% rename from docs/wekan.wiki/Hall-of-Shame.md rename to docs/FAQ/Hall-of-Shame.md diff --git a/docs/wekan.wiki/IRC-FAQ.md b/docs/FAQ/IRC-FAQ.md similarity index 100% rename from docs/wekan.wiki/IRC-FAQ.md rename to docs/FAQ/IRC-FAQ.md diff --git a/docs/wekan.wiki/NOT-related-to-Wekan.md b/docs/FAQ/NOT-related-to-Wekan.md similarity index 100% rename from docs/wekan.wiki/NOT-related-to-Wekan.md rename to docs/FAQ/NOT-related-to-Wekan.md diff --git a/docs/wekan.wiki/Press.md b/docs/FAQ/Press.md similarity index 100% rename from docs/wekan.wiki/Press.md rename to docs/FAQ/Press.md diff --git a/docs/FAQ/Requirements.md b/docs/FAQ/Requirements.md new file mode 100644 index 000000000..c929bff5e --- /dev/null +++ b/docs/FAQ/Requirements.md @@ -0,0 +1 @@ +WeKan Requiremens are at https://wekan.github.io/install/ \ No newline at end of file diff --git a/docs/wekan.wiki/Roadmap.md b/docs/FAQ/Roadmap.md similarity index 100% rename from docs/wekan.wiki/Roadmap.md rename to docs/FAQ/Roadmap.md diff --git a/docs/wekan.wiki/Team.md b/docs/FAQ/Team.md similarity index 100% rename from docs/wekan.wiki/Team.md rename to docs/FAQ/Team.md diff --git a/docs/wekan.wiki/Adding-users.md b/docs/Features/Adding-users.md similarity index 100% rename from docs/wekan.wiki/Adding-users.md rename to docs/Features/Adding-users.md diff --git a/docs/wekan.wiki/Allow-private-boards-only.md b/docs/Features/Allow-private-boards-only.md similarity index 100% rename from docs/wekan.wiki/Allow-private-boards-only.md rename to docs/Features/Allow-private-boards-only.md diff --git a/docs/wekan.wiki/Archive-and-Delete.md b/docs/Features/Archive-and-Delete.md similarity index 100% rename from docs/wekan.wiki/Archive-and-Delete.md rename to docs/Features/Archive-and-Delete.md diff --git a/docs/wekan.wiki/Cover.md b/docs/Features/Cover.md similarity index 100% rename from docs/wekan.wiki/Cover.md rename to docs/Features/Cover.md diff --git a/docs/wekan.wiki/Custom-Fields.md b/docs/Features/Custom-Fields.md similarity index 100% rename from docs/wekan.wiki/Custom-Fields.md rename to docs/Features/Custom-Fields.md diff --git a/docs/wekan.wiki/Custom-Logo.md b/docs/Features/Custom-Logo.md similarity index 100% rename from docs/wekan.wiki/Custom-Logo.md rename to docs/Features/Custom-Logo.md diff --git a/docs/wekan.wiki/Features.md b/docs/Features/Features.md similarity index 100% rename from docs/wekan.wiki/Features.md rename to docs/Features/Features.md diff --git a/docs/wekan.wiki/IFTTT.md b/docs/Features/IFTTT.md similarity index 100% rename from docs/wekan.wiki/IFTTT.md rename to docs/Features/IFTTT.md diff --git a/docs/wekan.wiki/If-board-does-not-open-and-keeps-loading.md b/docs/Features/If-board-does-not-open-and-keeps-loading.md similarity index 100% rename from docs/wekan.wiki/If-board-does-not-open-and-keeps-loading.md rename to docs/Features/If-board-does-not-open-and-keeps-loading.md diff --git a/docs/wekan.wiki/LaTeX.md b/docs/Features/LaTeX.md similarity index 100% rename from docs/wekan.wiki/LaTeX.md rename to docs/Features/LaTeX.md diff --git a/docs/Features/Linked-Cards.md b/docs/Features/Linked-Cards.md new file mode 100644 index 000000000..36575a292 --- /dev/null +++ b/docs/Features/Linked-Cards.md @@ -0,0 +1,11 @@ +Linked Card feature was added at https://github.com/wekan/wekan/pull/1592 + +With Linked Card feature, it's possible to create new board as dashboard. At dashboard board, you add new card Link, and there link to some card at other board, so you see realtimes changes from all those cards at dashboard board. + +Search is for searching card, to be as linked card, I presume. + +There is also Linked Board, but I'm not sure is it useful. + +Related PRs at https://github.com/wekan/wekan/pulls?q=is%3Apr+is%3Aclosed+linked+card+ + +Related issue https://github.com/wekan/wekan/issues/5550 \ No newline at end of file diff --git a/docs/Features/Multiline.md b/docs/Features/Multiline.md new file mode 100644 index 000000000..d5aab1c15 --- /dev/null +++ b/docs/Features/Multiline.md @@ -0,0 +1,23 @@ +## Multiple lines to Checklist + +1. Click Add new Checklist +2. Click Add new Checklist Item +3. Toggle `One line of text = one checklist item` +4. Paste multiple lines of text +5. Click Save + +Multiple lines to Checklist + +## Card ☰ Menu / Copy Checklist Template to Many Cards + +Checklist Template to Many Cards 1 + +## Edit titles and descriptions of Many Cards +``` +[ {"title": "First card title", "description":"First card description"}, +{"title":"Second card title","description":"Second card description"}, +{"title":"Last card title","description":"Last card description"} ] +``` + +Checklist Template to Many Cards 2 + diff --git a/docs/wekan.wiki/Numbered-text.md b/docs/Features/Numbered-text.md similarity index 100% rename from docs/wekan.wiki/Numbered-text.md rename to docs/Features/Numbered-text.md diff --git a/docs/wekan.wiki/PWA.md b/docs/Features/PWA.md similarity index 100% rename from docs/wekan.wiki/PWA.md rename to docs/Features/PWA.md diff --git a/docs/wekan.wiki/Planning-Poker.md b/docs/Features/Planning-Poker.md similarity index 100% rename from docs/wekan.wiki/Planning-Poker.md rename to docs/Features/Planning-Poker.md diff --git a/docs/wekan.wiki/Python.md b/docs/Features/Python.md similarity index 91% rename from docs/wekan.wiki/Python.md rename to docs/Features/Python.md index 8d47858f8..64b62abe9 100644 --- a/docs/wekan.wiki/Python.md +++ b/docs/Features/Python.md @@ -1,5 +1,5 @@ Some Python etc code in WeKan, that is not yet added directly to WeKan: -- [LDAP sync script, that also correctly removes users](https://github.com/wekan/wekan/blob/main/ldap-sync/ldap-sync.py) +- [LDAP sync script, that also correctly removes users](https://github.com/wekan/wekan/blob/main/docs/Login/ldap-sync/ldap-sync.py) - [Email notifications to AWS SES](https://github.com/wekan/wekan/issues/3543#issuecomment-1199897164) - [Prometheus Exporter](https://github.com/wekan/wekan-prometheus-exporter) - [Burndown Chart](Burndown-and-Velocity-Chart) @@ -12,4 +12,4 @@ Some Python etc code in WeKan, that is not yet added directly to WeKan: - [Logstash and ElasticSearch](https://github.com/wekan/wekan-logstash) - iCal server in [Python](https://github.com/wekan/wekan-ical-server) and [PHP](https://github.com/wekan/wekan-ical-php) - [Sandstorm CSV related Python code](Wekan-Sandstorm-cards-to-CSV-using-Python) -- [Trello API test code](https://github.com/wekan/wekan/tree/main/trello) +- [Trello API test code](https://github.com/wekan/wekan/tree/main/docs/ImportExport/trello) diff --git a/docs/wekan.wiki/Subtasks.md b/docs/Features/Subtasks.md similarity index 100% rename from docs/wekan.wiki/Subtasks.md rename to docs/Features/Subtasks.md diff --git a/docs/wekan.wiki/Swimlanes.md b/docs/Features/Swimlanes.md similarity index 100% rename from docs/wekan.wiki/Swimlanes.md rename to docs/Features/Swimlanes.md diff --git a/docs/wekan.wiki/Templates.md b/docs/Features/Templates.md similarity index 100% rename from docs/wekan.wiki/Templates.md rename to docs/Features/Templates.md diff --git a/docs/wekan.wiki/Wait-Spinners.md b/docs/Features/Wait-Spinners.md similarity index 100% rename from docs/wekan.wiki/Wait-Spinners.md rename to docs/Features/Wait-Spinners.md diff --git a/docs/wekan.wiki/Wekan-Markdown.md b/docs/Features/Wekan-Markdown.md similarity index 100% rename from docs/wekan.wiki/Wekan-Markdown.md rename to docs/Features/Wekan-Markdown.md diff --git a/docs/wekan.wiki/Home.md b/docs/Home.md similarity index 100% rename from docs/wekan.wiki/Home.md rename to docs/Home.md diff --git a/docs/wekan.wiki/Asana.md b/docs/ImportExport/Asana.md similarity index 100% rename from docs/wekan.wiki/Asana.md rename to docs/ImportExport/Asana.md diff --git a/docs/wekan.wiki/CSV.md b/docs/ImportExport/CSV.md similarity index 100% rename from docs/wekan.wiki/CSV.md rename to docs/ImportExport/CSV.md diff --git a/docs/wekan.wiki/Delete-Board.md b/docs/ImportExport/Delete-Board.md similarity index 100% rename from docs/wekan.wiki/Delete-Board.md rename to docs/ImportExport/Delete-Board.md diff --git a/docs/wekan.wiki/Excel-and-VBA.md b/docs/ImportExport/Excel-and-VBA.md similarity index 100% rename from docs/wekan.wiki/Excel-and-VBA.md rename to docs/ImportExport/Excel-and-VBA.md diff --git a/docs/wekan.wiki/From-Previous-Export.md b/docs/ImportExport/From-Previous-Export.md similarity index 100% rename from docs/wekan.wiki/From-Previous-Export.md rename to docs/ImportExport/From-Previous-Export.md diff --git a/docs/wekan.wiki/Integrations.md b/docs/ImportExport/Integrations.md similarity index 100% rename from docs/wekan.wiki/Integrations.md rename to docs/ImportExport/Integrations.md diff --git a/docs/wekan.wiki/Jira.md b/docs/ImportExport/Jira.md similarity index 100% rename from docs/wekan.wiki/Jira.md rename to docs/ImportExport/Jira.md diff --git a/docs/wekan.wiki/Leo.md b/docs/ImportExport/Leo.md similarity index 100% rename from docs/wekan.wiki/Leo.md rename to docs/ImportExport/Leo.md diff --git a/docs/wekan.wiki/Migrating-from-old-Wekan-manually.md b/docs/ImportExport/Migrating-from-old-Wekan-manually.md similarity index 100% rename from docs/wekan.wiki/Migrating-from-old-Wekan-manually.md rename to docs/ImportExport/Migrating-from-old-Wekan-manually.md diff --git a/docs/wekan.wiki/Sync.md b/docs/ImportExport/Sync.md similarity index 100% rename from docs/wekan.wiki/Sync.md rename to docs/ImportExport/Sync.md diff --git a/docs/wekan.wiki/ZenKit.md b/docs/ImportExport/ZenKit.md similarity index 100% rename from docs/wekan.wiki/ZenKit.md rename to docs/ImportExport/ZenKit.md diff --git a/asana/CHANGELOG.md b/docs/ImportExport/asana/CHANGELOG.md similarity index 100% rename from asana/CHANGELOG.md rename to docs/ImportExport/asana/CHANGELOG.md diff --git a/asana/LICENSE b/docs/ImportExport/asana/LICENSE similarity index 100% rename from asana/LICENSE rename to docs/ImportExport/asana/LICENSE diff --git a/asana/export_boards.pl b/docs/ImportExport/asana/export_boards.pl similarity index 100% rename from asana/export_boards.pl rename to docs/ImportExport/asana/export_boards.pl diff --git a/asana/load_tasks.pl b/docs/ImportExport/asana/load_tasks.pl similarity index 100% rename from asana/load_tasks.pl rename to docs/ImportExport/asana/load_tasks.pl diff --git a/trello/CHANGELOG.md b/docs/ImportExport/trello/CHANGELOG.md similarity index 100% rename from trello/CHANGELOG.md rename to docs/ImportExport/trello/CHANGELOG.md diff --git a/trello/LICENSE b/docs/ImportExport/trello/LICENSE similarity index 100% rename from trello/LICENSE rename to docs/ImportExport/trello/LICENSE diff --git a/docs/wekan.wiki/Migrating-from-Trello.md b/docs/ImportExport/trello/Migrating-from-Trello.md similarity index 100% rename from docs/wekan.wiki/Migrating-from-Trello.md rename to docs/ImportExport/trello/Migrating-from-Trello.md diff --git a/docs/wekan.wiki/Wekan-vs-Trello-vs-Restyaboard.md b/docs/ImportExport/trello/Wekan-vs-Trello-vs-Restyaboard.md similarity index 100% rename from docs/wekan.wiki/Wekan-vs-Trello-vs-Restyaboard.md rename to docs/ImportExport/trello/Wekan-vs-Trello-vs-Restyaboard.md diff --git a/trello/api.py b/docs/ImportExport/trello/api.py similarity index 100% rename from trello/api.py rename to docs/ImportExport/trello/api.py diff --git a/trello/trello-project100.json b/docs/ImportExport/trello/trello-project100.json similarity index 100% rename from trello/trello-project100.json rename to docs/ImportExport/trello/trello-project100.json diff --git a/docs/wekan.wiki/ADFS.md b/docs/Login/ADFS.md similarity index 100% rename from docs/wekan.wiki/ADFS.md rename to docs/Login/ADFS.md diff --git a/docs/wekan.wiki/Accounts-Lockout.md b/docs/Login/Accounts-Lockout.md similarity index 100% rename from docs/wekan.wiki/Accounts-Lockout.md rename to docs/Login/Accounts-Lockout.md diff --git a/docs/wekan.wiki/B2C.md b/docs/Login/B2C.md similarity index 100% rename from docs/wekan.wiki/B2C.md rename to docs/Login/B2C.md diff --git a/docs/wekan.wiki/CAS.md b/docs/Login/CAS.md similarity index 100% rename from docs/wekan.wiki/CAS.md rename to docs/Login/CAS.md diff --git a/docs/Login/Disable-Password-Login.md b/docs/Login/Disable-Password-Login.md new file mode 100644 index 000000000..95a9df2dd --- /dev/null +++ b/docs/Login/Disable-Password-Login.md @@ -0,0 +1,32 @@ +## Description + +At login screen, do not show password login. Only show login button (OAuth2, LDAP, etc). + +## Snap + +``` +sudo snap set wekan password-login-enabled='false' +``` +https://github.com/wekan/wekan/blob/main/snap-src/bin/wekan-help#L614 + +## Docker +``` +- PASSWORD_LOGIN_ENABLED=false +``` +https://github.com/wekan/wekan/blob/main/docker-compose.yml#L693 + +## Windows On-Premise + +https://github.com/wekan/wekan/wiki/Offline +``` +SET PASSWORD_LOGIN_ENABLED=false +``` +https://github.com/wekan/wekan/blob/main/start-wekan.bat#L467 + +## Linux On-Premise + +https://github.com/wekan/wekan/wiki/Raspberry-Pi +``` +export PASSWORD_LOGIN_ENABLED=false +``` +https://github.com/wekan/wekan/blob/main/start-wekan.sh#L529 diff --git a/docs/wekan.wiki/Forgot-Password.md b/docs/Login/Forgot-Password.md similarity index 98% rename from docs/wekan.wiki/Forgot-Password.md rename to docs/Login/Forgot-Password.md index 61dbcfcb1..bca97811d 100644 --- a/docs/wekan.wiki/Forgot-Password.md +++ b/docs/Login/Forgot-Password.md @@ -48,7 +48,7 @@ db.users.find() ``` Set some user as admin: ``` -db.users.update({username:'admin-username-here'},{$set:{isAdmin:true}}) +db.users.updateOne({username:'admin-username-here'},{$set:{isAdmin:true}}) ``` Check are there any failed logins with wrong password, that brute force login prevention has denied login: ``` diff --git a/docs/wekan.wiki/Google-Cloud.md b/docs/Login/Google-Cloud.md similarity index 100% rename from docs/wekan.wiki/Google-Cloud.md rename to docs/Login/Google-Cloud.md diff --git a/docs/wekan.wiki/Google-login.md b/docs/Login/Google-login.md similarity index 100% rename from docs/wekan.wiki/Google-login.md rename to docs/Login/Google-login.md diff --git a/docs/wekan.wiki/Keycloak.md b/docs/Login/Keycloak.md similarity index 100% rename from docs/wekan.wiki/Keycloak.md rename to docs/Login/Keycloak.md diff --git a/docs/wekan.wiki/LDAP-AD-Simple-Auth.md b/docs/Login/LDAP-AD-Simple-Auth.md similarity index 100% rename from docs/wekan.wiki/LDAP-AD-Simple-Auth.md rename to docs/Login/LDAP-AD-Simple-Auth.md diff --git a/docs/wekan.wiki/LDAP.md b/docs/Login/LDAP.md similarity index 89% rename from docs/wekan.wiki/LDAP.md rename to docs/Login/LDAP.md index d2671fe89..33f885ea6 100644 --- a/docs/wekan.wiki/LDAP.md +++ b/docs/Login/LDAP.md @@ -1,6 +1,6 @@ ## LDAP info -- [LDAP sync script, that also correctly removes users](https://github.com/wekan/wekan/blob/main/ldap-sync/ldap-sync.py) +- [LDAP sync script, that also correctly removes users](https://github.com/wekan/wekan/blob/main/docs/Login/ldap-sync/ldap-sync.py) - [LDAP AD Simple Auth](LDAP-AD-Simple-Auth) 2021-07-24 and related [Search Filter Settings](https://github.com/wekan/wekan/issues/3908#issuecomment-887545168): ``` @@ -52,7 +52,15 @@ sudo snap set wekan ldap-authentication-userdn='CN=LDAP-User,OU=Service Accounts sudo snap set wekan ldap-authentication-password='' sudo snap set wekan ldap-log-enabled='true' sudo snap set wekan ldap-background-sync='true' -sudo snap set wekan ldap-background-sync-interval='every 1 minute' +# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds +# The format must be as specified in: +# https://bunkat.github.io/later/parsers.html#text +#sudo snap set wekan ldap-background-sync-interval='every 1 hours' +# At which interval does the background task sync in milliseconds. +# If not in use, Leave this unset, so it uses default, and does not crash. +# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 +#sudo snap set wekan ldap-background-sync-interval='' +sudo snap set wekan ldap-background-sync-interval='every 1 hours' sudo snap set wekan ldap-background-sync-keep-existant-users-updated='true' sudo snap set wekan ldap-background-sync-import-new-users='true' sudo snap set wekan ldap-encryption='false' @@ -100,7 +108,15 @@ snap set wekan ldap-basedn='dc=example,dc=com' snap set wekan ldap-background-sync='true' snap set wekan ldap-background-sync-keep-existant-users-updated='true' snap set wekan ldap-background-sync-import-new-users='true' -snap set wekan ldap-background-sync-interval='Every 1 minute' +# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds +# The format must be as specified in: +# https://bunkat.github.io/later/parsers.html#text +#sudo snap set wekan ldap-background-sync-interval='every 1 hours' +# At which interval does the background task sync in milliseconds. +# If not in use, Leave this unset, so it uses default, and does not crash. +# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 +#sudo snap set wekan ldap-background-sync-interval='' +snap set wekan ldap-background-sync-interval='every 1 hours' snap set wekan ldap-merge-existing-users='true' snap set wekan ldap-user-search-field='uid' snap set wekan ldap-user-search-filter='(&(objectclass=person))' @@ -121,7 +137,15 @@ sudo snap set wekan ldap-authentication-password='********' sudo snap set wekan ldap-authentication-userdn='cn=admin,dc=*******,dc=lan' sudo snap set wekan ldap-background-sync='true' sudo snap set wekan ldap-background-sync-import-new-users='true' -sudo snap set wekan ldap-background-sync-interval='Every 1 minute' +# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds +# The format must be as specified in: +# https://bunkat.github.io/later/parsers.html#text +#sudo snap set wekan ldap-background-sync-interval='every 1 hours' +# At which interval does the background task sync in milliseconds. +# If not in use, Leave this unset, so it uses default, and does not crash. +# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 +#sudo snap set wekan ldap-background-sync-interval='' +sudo snap set wekan ldap-background-sync-interval='every 1 hours' sudo snap set wekan ldap-basedn='dc=*****,dc=lan' sudo snap set wekan ldap-email-field='mail' sudo snap set wekan ldap-enable='true' @@ -316,10 +340,14 @@ services: # LDAP_BACKGROUND_SYNC : If the sync of the users should be done in the background # example : LDAP_BACKGROUND_SYNC=true - LDAP_BACKGROUND_SYNC=false - # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync - # example : LDAP_BACKGROUND_SYNC_INTERVAL='every 15 minutes' - # for more info: http://bunkat.github.io/later/parsers.html#text - - LDAP_BACKGROUND_SYNC_INTERVAL='every 1 hour' + # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds + # The format must be as specified in: + # https://bunkat.github.io/later/parsers.html#text + #- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours + # At which interval does the background task sync in milliseconds. + # Leave this unset, so it uses default, and does not crash. + # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 + - LDAP_BACKGROUND_SYNC_INTERVAL='' # LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED : # example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true - LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false diff --git a/docs/wekan.wiki/Let's-Encrypt-and-Google-Auth.md b/docs/Login/Let's-Encrypt-and-Google-Auth.md similarity index 100% rename from docs/wekan.wiki/Let's-Encrypt-and-Google-Auth.md rename to docs/Login/Let's-Encrypt-and-Google-Auth.md diff --git a/docs/Login/Multitenancy.md b/docs/Login/Multitenancy.md new file mode 100644 index 000000000..e6ba9f08e --- /dev/null +++ b/docs/Login/Multitenancy.md @@ -0,0 +1,12 @@ +Q: ​​Is Multi-tenancy like ability to configure multiple ROOT_URL for same Meteor app? Or having relative URLs? + +A: Yes + +https://www.youtube.com/watch?v=917v1a01-Ko + +https://github.com/Meteor-Community-Packages/meteor-partitioner + +Related: + +- https://www.enterpriseready.io +- https://github.com/clinical-meteor/hipaa-audit-log diff --git a/docs/wekan.wiki/Nextcloud.md b/docs/Login/Nextcloud.md similarity index 100% rename from docs/wekan.wiki/Nextcloud.md rename to docs/Login/Nextcloud.md diff --git a/docs/wekan.wiki/OAuth2.md b/docs/Login/OAuth2.md similarity index 98% rename from docs/wekan.wiki/OAuth2.md rename to docs/Login/OAuth2.md index 67e6da607..c62df3efd 100644 --- a/docs/wekan.wiki/OAuth2.md +++ b/docs/Login/OAuth2.md @@ -1,3 +1,4 @@ +- [More RocketChat fixes here](https://github.com/wekan/wekan/wiki/RocketChat) - [OAuth2 small bug](https://github.com/wekan/wekan/issues/1874) - currently OAuth2 works mostly # OAuth2 providers @@ -41,6 +42,7 @@ The redirect URL is described in the wekan wiki: https://wekan.example.com/_oaut ## Rocket.Chat providing OAuth2 login to Wekan +- [More RocketChat fixes here](https://github.com/wekan/wekan/wiki/RocketChat) - [RocketChat Skip Install Registration Wizard Fix](https://github.com/RocketChat/Rocket.Chat/issues/31163#issuecomment-1848364117) > So for someone using snap, it means creating a file `/var/snap/rocketchat-server/common/override-setup-wizard.env ` (the name of the file itself could be anything as long as it has an .env extension) and setting its content to `OVERWRITE_SETTING_Show_Setup_Wizard=completed` diff --git a/docs/wekan.wiki/Oracle-Identity-Cloud.md b/docs/Login/Oracle-Identity-Cloud.md similarity index 100% rename from docs/wekan.wiki/Oracle-Identity-Cloud.md rename to docs/Login/Oracle-Identity-Cloud.md diff --git a/docs/wekan.wiki/Oracle-OIM.md b/docs/Login/Oracle-OIM.md similarity index 100% rename from docs/wekan.wiki/Oracle-OIM.md rename to docs/Login/Oracle-OIM.md diff --git a/docs/wekan.wiki/Password-Hashing.md b/docs/Login/Password-Hashing.md similarity index 100% rename from docs/wekan.wiki/Password-Hashing.md rename to docs/Login/Password-Hashing.md diff --git a/docs/Login/SAML.md b/docs/Login/SAML.md new file mode 100644 index 000000000..7b4c60a8c --- /dev/null +++ b/docs/Login/SAML.md @@ -0,0 +1,67 @@ +Related Meteor SAML code, not in WeKan yet: + +- New: https://forums.meteor.com/t/meteor-and-saml/61561 +- Old link: https://forums.meteor.com/t/what-are-you-working-on/59187 + +Sandstorm has SAML login, and old WeKan that will be updated someday: + +- https://github.com/wekan/wekan/wiki/Sandstorm + +How SAML works: + +- https://ssoready.com +- https://github.com/ssoready/ssoready +- https://news.ycombinator.com/item?id=41110850 +- https://ssoready.com/blog/from-the-founders/an-unpopular-perspective-on-the-sso-tax/ +- https://news.ycombinator.com/item?id=41303844/blog/engineering/a-gentle-intro-to-saml/ +- https://news.ycombinator.com/item?id=41036982 +- https://www.sheshbabu.com/posts/visual-explanation-of-saml-authentication/ +- https://news.ycombinator.com/item?id=41057814 +- https://github.com/ssoready/ssoready +- https://news.ycombinator.com/item?id=41110850 +- https://ssoready.com/blog/from-the-founders/an-unpopular-perspective-on-the-sso-tax/ +- https://news.ycombinator.com/item?id=41303844 + +Ruby on Rails OmniAuth, that has Shibboleth and SAML: + +- https://github.com/omniauth/omniauth/wiki/List-of-Strategies +- https://github.com/omniauth/omniauth +- Recent SAML issue https://news.ycombinator.com/item?id=41586031 + +The SSO Wall of Shame: + +- https://sso.tax + +[SAML Issue](https://github.com/wekan/wekan/issues/708) + +[SAML settings commit](https://github.com/wekan/wekan/commit/214c86cc22f4c721a79ec0a4a4f3bbd90d673f93) + +Currently has code from https://github.com/steffow/meteor-accounts-saml/ copied to `wekan/packages/meteor-accounts-saml` + +Does not yet have [fixes from RocketChat SAML](https://github.com/RocketChat/Rocket.Chat/tree/develop/app/meteor-accounts-saml) + +Please add pull requests if it does not work. + +Wekan clientside code is at `wekan/client/components/main/layouts.*` + +Wekan serverside code is at: +- `wekan/server/authentication.js` at bottom +- `wekan/packages/meteor-accounts-saml/*` + +## Gitea + +- https://github.com/crewjam/saml +- https://github.com/go-gitea/gitea/pull/29403 +- https://docs.gitea.com/enterprise/features/saml-auth + +## Laravel + +- https://github.com/24Slides/laravel-saml2 + +## ruby-saml/omniauth/RoR: Sign in as anyone: Bypassing SAML SSO authentication with parser differentials + +- https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials/ +- https://news.ycombinator.com/item?id=43349634 +- https://github.com/github/securitylab + + diff --git a/docs/wekan.wiki/Zitadel.md b/docs/Login/Zitadel.md similarity index 100% rename from docs/wekan.wiki/Zitadel.md rename to docs/Login/Zitadel.md diff --git a/docs/wekan.wiki/autologin.md b/docs/Login/autologin.md similarity index 100% rename from docs/wekan.wiki/autologin.md rename to docs/Login/autologin.md diff --git a/ldap-sync/ldap-sync.py b/docs/Login/ldap-sync/ldap-sync.py similarity index 100% rename from ldap-sync/ldap-sync.py rename to docs/Login/ldap-sync/ldap-sync.py diff --git a/docs/wekan.wiki/Android.md b/docs/Platforms/FOSS/Android.md similarity index 100% rename from docs/wekan.wiki/Android.md rename to docs/Platforms/FOSS/Android.md diff --git a/docs/wekan.wiki/Cloud-Foundry.md b/docs/Platforms/FOSS/Cloud-Foundry.md similarity index 100% rename from docs/wekan.wiki/Cloud-Foundry.md rename to docs/Platforms/FOSS/Cloud-Foundry.md diff --git a/docs/Platforms/FOSS/Cloud/CloudFlare.md b/docs/Platforms/FOSS/Cloud/CloudFlare.md new file mode 100644 index 000000000..76f523fc5 --- /dev/null +++ b/docs/Platforms/FOSS/Cloud/CloudFlare.md @@ -0,0 +1,5 @@ +CNAME to CNAME does not work well. Last one should be A IPv4 (and AAAA IPv6). + +To get Let's Encrypt SSL/TLS cert for custom subdomain, for example with Caddy, you subdomain should have grey cloud icon. Not orange cloud icon CloudFlare proxy. Also turn off any SSL/TLS of CloudFlare. This is so that Let's Encrypt verifying servers can see hosting server actual IP address and validate cert. + +If needing wildcard SSL/TLS cert, for example for Sandstorm, create CloudFlare Origin Certificate, add it to Caddy or Nginx certs .pem file (private key above, other key below, at same textfile). Set CloudFlare SSL/TLS as Strict for using Origin Certificate. Set DNS to orange cloud icon proxy. Add DNS records for example.com , *.example.com , www.example.com . \ No newline at end of file diff --git a/docs/wekan.wiki/Debian.md b/docs/Platforms/FOSS/Debian.md similarity index 100% rename from docs/wekan.wiki/Debian.md rename to docs/Platforms/FOSS/Debian.md diff --git a/docs/wekan.wiki/Docker.md b/docs/Platforms/FOSS/Docker/Docker.md similarity index 75% rename from docs/wekan.wiki/Docker.md rename to docs/Platforms/FOSS/Docker/Docker.md index f66873817..2cbf68987 100644 --- a/docs/wekan.wiki/Docker.md +++ b/docs/Platforms/FOSS/Docker/Docker.md @@ -1,3 +1,47 @@ +## Building custom Docker image + +This is only for developers. For normal users, do not add these options, just start with `docker compose up -d` + +This only builds `wekan-app` Docker image, where is Node.js 14.x and all Javascript code. This does not build `wekan-db` MongoDB image, that usually does not require modifications. + +Alpine Linux does not work properly with current Meteor 2 based WeKan. Ubuntu works, and has newest security fixes. + +Only amd64 currently works. Currently used Node.js 14.x segfaults at arm64 and s390x. Only Node.js 14.x is compatible with current version of Meteor 2 based WeKan. Trying to upgrade is in progress https://github.com/wekan/wekan/issues/5475 + +Dockerfile is at https://raw.githubusercontent.com/wekan/wekan/main/Dockerfile + +For building custom image, and then running it, uncomment these lines, +that are currently here, but line numbers could change, if that docker-compose.yml +is later modified: + +https://github.com/wekan/wekan/blob/main/docker-compose.yml#L144-L146 + +After your above modifications, text should look like this: + +``` + #------------------------------------------------------------------------------------- + # ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ==== + # ==== and use commands: docker compose up -d --build + build: + context: . + dockerfile: Dockerfile + #------------------------------------------------------------------------------------- +``` + +Then modify ROOT_URL, etc settings as needed, see https://github.com/wekan/wekan/wiki/Settings + +Start WeKan with custom built Dockerfile with this command: +``` +docker compose up -d --build +``` +If you like to only build Dockerfile: +``` +docker build . +``` +You can also push your image to some Docker registry, like here it's done for WeKan: + +https://github.com/wekan/wekan/blob/main/releases/docker-push-wekan.sh + ## Docker Containers - [GitHub](https://github.com/wekan/wekan/pkgs/container/wekan) @@ -12,7 +56,7 @@ export ROOT_URL=http://SERVER-IP-ADDRESS-HERE ``` Then start WeKan with: ``` -docker-compose up -d +docker compose up -d ``` SSL/TLS info at https://github.com/wekan/wekan/wiki/Settings @@ -35,7 +79,7 @@ There is much more settings at well-documented [docker-compose.yml](https://raw. If you don't need to build Wekan, use prebuilt container with docker-compose.yml from https://github.com/wekan/wekan like this: ``` -docker-compose up -d +docker compose up -d ``` If you like to build from source, clone Wekan repo: @@ -46,7 +90,7 @@ Then edit docker-compose.yml with [these lines uncommented](https://github.com/w ``` #------------------------------------------------------------------------------------- # ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ==== - # ==== and use commands: docker-compose up -d --build + # ==== and use commands: docker compose up -d --build build: context: . dockerfile: Dockerfile @@ -62,7 +106,7 @@ Then edit docker-compose.yml with [these lines uncommented](https://github.com/w ``` Then you can build Wekan with ``` -docker-compose up -d --build +docker compose up -d --build ``` ## Example for latest Wekan, port 2000 to Docker Wekan internal port 8080 @@ -112,7 +156,7 @@ docker rm wekan-app ``` Then edit docker-compose.yml to have higher wekan-app image version tag, like `image: wekanteam/wekan:v4.12`. Then: ``` -docker-compose up -d +docker compose up -d ``` ### Images Quay: `image: quay.io/wekan/wekan:v4.07` @@ -206,25 +250,25 @@ docker run -d --restart=always --name wekan --link "wekan-db:db" -e "MONGO_URL=m - No build step and pull from [quay](https://quay.io/repository/wekan/wekan?tab=tags) ``` -sudo docker-compose up -d --nobuild +sudo docker compose up -d --nobuild ``` - Build default ``` -sudo docker-compose up -d --build +sudo docker compose up -d --build ``` - Build with newer Node version: ``` echo 'NODE_VERSION=v8.11.1' >> .env && \ -sudo docker-compose up -d --build +sudo docker compose up -d --build ``` - Build custom image off a release candidate or beta for meteor ``` echo 'METEOR_EDGE=1.5-beta.17' >> .env && \ echo 'USE_EDGE=true' >> .env && \ -sudo docker-compose up -d --build +sudo docker compose up -d --build ``` ## Docker env for Wekan dev diff --git a/docs/wekan.wiki/Export-Docker-Mongo-Data.md b/docs/Platforms/FOSS/Docker/Export-Docker-Mongo-Data.md similarity index 100% rename from docs/wekan.wiki/Export-Docker-Mongo-Data.md rename to docs/Platforms/FOSS/Docker/Export-Docker-Mongo-Data.md diff --git a/docs/wekan.wiki/Install-Wekan-Docker-for-testing.md b/docs/Platforms/FOSS/Docker/Install-Wekan-Docker-for-testing.md similarity index 100% rename from docs/wekan.wiki/Install-Wekan-Docker-for-testing.md rename to docs/Platforms/FOSS/Docker/Install-Wekan-Docker-for-testing.md diff --git a/docs/wekan.wiki/Install-Wekan-Docker-in-production.md b/docs/Platforms/FOSS/Docker/Install-Wekan-Docker-in-production.md similarity index 100% rename from docs/wekan.wiki/Install-Wekan-Docker-in-production.md rename to docs/Platforms/FOSS/Docker/Install-Wekan-Docker-in-production.md diff --git a/docs/wekan.wiki/Install-Wekan-Docker-on-SUSE-Linux-Enterprise-Server-12-SP1.md b/docs/Platforms/FOSS/Docker/Install-Wekan-Docker-on-SUSE-Linux-Enterprise-Server-12-SP1.md similarity index 100% rename from docs/wekan.wiki/Install-Wekan-Docker-on-SUSE-Linux-Enterprise-Server-12-SP1.md rename to docs/Platforms/FOSS/Docker/Install-Wekan-Docker-on-SUSE-Linux-Enterprise-Server-12-SP1.md diff --git a/docs/wekan.wiki/Move-Docker-containers-to-other-computer.md b/docs/Platforms/FOSS/Docker/Move-Docker-containers-to-other-computer.md similarity index 100% rename from docs/wekan.wiki/Move-Docker-containers-to-other-computer.md rename to docs/Platforms/FOSS/Docker/Move-Docker-containers-to-other-computer.md diff --git a/docs/wekan.wiki/Rancher---Rancher-Active-Proxy---Wekan-MongoDB-Docker.md b/docs/Platforms/FOSS/Docker/Rancher---Rancher-Active-Proxy---Wekan-MongoDB-Docker.md similarity index 100% rename from docs/wekan.wiki/Rancher---Rancher-Active-Proxy---Wekan-MongoDB-Docker.md rename to docs/Platforms/FOSS/Docker/Rancher---Rancher-Active-Proxy---Wekan-MongoDB-Docker.md diff --git a/docs/wekan.wiki/Repair-Docker.md b/docs/Platforms/FOSS/Docker/Repair-Docker.md similarity index 100% rename from docs/wekan.wiki/Repair-Docker.md rename to docs/Platforms/FOSS/Docker/Repair-Docker.md diff --git a/docs/wekan.wiki/FreeBSD.md b/docs/Platforms/FOSS/FreeBSD.md similarity index 100% rename from docs/wekan.wiki/FreeBSD.md rename to docs/Platforms/FOSS/FreeBSD.md diff --git a/docs/wekan.wiki/Friend.md b/docs/Platforms/FOSS/Friend.md similarity index 100% rename from docs/wekan.wiki/Friend.md rename to docs/Platforms/FOSS/Friend.md diff --git a/docs/wekan.wiki/Helm.md b/docs/Platforms/FOSS/Helm.md similarity index 100% rename from docs/wekan.wiki/Helm.md rename to docs/Platforms/FOSS/Helm.md diff --git a/helm.md b/docs/Platforms/FOSS/Helm2.md similarity index 100% rename from helm.md rename to docs/Platforms/FOSS/Helm2.md diff --git a/docs/wekan.wiki/OpenShift.md b/docs/Platforms/FOSS/OpenShift/OpenShift.md similarity index 100% rename from docs/wekan.wiki/OpenShift.md rename to docs/Platforms/FOSS/OpenShift/OpenShift.md diff --git a/openshift/README.md b/docs/Platforms/FOSS/OpenShift/README.md similarity index 100% rename from openshift/README.md rename to docs/Platforms/FOSS/OpenShift/README.md diff --git a/openshift/wekan.yml b/docs/Platforms/FOSS/OpenShift/wekan.yml similarity index 100% rename from openshift/wekan.yml rename to docs/Platforms/FOSS/OpenShift/wekan.yml diff --git a/docs/wekan.wiki/OpenSuse.md b/docs/Platforms/FOSS/OpenSuse.md similarity index 100% rename from docs/wekan.wiki/OpenSuse.md rename to docs/Platforms/FOSS/OpenSuse.md diff --git a/docs/wekan.wiki/Platforms.md b/docs/Platforms/FOSS/Platforms.md similarity index 100% rename from docs/wekan.wiki/Platforms.md rename to docs/Platforms/FOSS/Platforms.md diff --git a/docs/wekan.wiki/Export-from-Wekan-Sandstorm-grain-.zip-file.md b/docs/Platforms/FOSS/Sandstorm/Export-from-Wekan-Sandstorm-grain-.zip-file.md similarity index 100% rename from docs/wekan.wiki/Export-from-Wekan-Sandstorm-grain-.zip-file.md rename to docs/Platforms/FOSS/Sandstorm/Export-from-Wekan-Sandstorm-grain-.zip-file.md diff --git a/docs/wekan.wiki/Sandstorm.md b/docs/Platforms/FOSS/Sandstorm/Sandstorm.md similarity index 53% rename from docs/wekan.wiki/Sandstorm.md rename to docs/Platforms/FOSS/Sandstorm/Sandstorm.md index efeed0273..16da6ef70 100644 --- a/docs/wekan.wiki/Sandstorm.md +++ b/docs/Platforms/FOSS/Sandstorm/Sandstorm.md @@ -1,6 +1,104 @@ +- At some cases [Hardened kernel may prevent creating new Wekan boards at Sandstorm](https://github.com/wekan/wekan/issues/1398) + +# Sandstorm at Debian and Ubuntu + +### Sandstorm CloudFlare DNS settings + +Sandstorm works when configured to full domain, with CloudFlare SSL/TLS, with Caddy. +Not subdomain, not sub-url, and not with Let's Encrypt that AFAIK does not support wildcard SSL/TLS. + +Source: https://github.com/sandstorm-io/sandstorm/issues/3714#issuecomment-2366866243 + +For me, it works at CloudFlare DNS using TLS Strict checking and DNS setting clicking to orange cloud icon to make TLS proxy with Origin certificate, that is at /etc/caddy/certs/example.com.pem with above private key and below cert. + +DNS records: +``` +* A example.com ip-address +@ A example.com ip-address +``` +Caddyfile, proxy to KVM VM that is running Debian and Sandstorm: +``` +# Full domain where Sandstorm login is. Not subdomain. Not sub-url. +*.example.com example.com { + tls { + load /etc/caddy/certs + alpn http/1.1 + } + # If KVM VM, it's IP address: + #reverse_proxy 123.123.123.123:80 + # Localhost port 81, when not in KVM VM + reverse_proxy 127.0.0.1:81 +} + +blog.somecompany.com { + tls { + load /etc/caddy/certs + alpn http/1.1 + } + # Blog hosted at Sandstorm WordPress + reverse_proxy 127.0.0.1:81 +} + +othercompany.com { + tls { + load /etc/caddy/certs + alpn http/1.1 + } + # Website hosted at Sandstorm Hacker CMS + reverse_proxy 127.0.0.1:81 +} +``` +If having Sandstorm inside of KVM VM: https://github.com/wekan/wekan/blob/main/docs/Platforms/FOSS/Snap/Many-Snaps-on-LXC.md + +At /opt/sandstorm/sandstorm.conf is domain where Sandstorm login is, http port etc. +``` +SERVER_USER=sandstorm +PORT=81 +MONGO_PORT=6081 +BIND_IP=127.0.0.1 +BASE_URL=https://example.com +WILDCARD_HOST=*.example.com +UPDATE_CHANNEL=dev +ALLOW_DEV_ACCOUNTS=false +SMTP_LISTEN_PORT=25 +#SANDCATS_BASE_DOMAIN=sandcats.io +#HTTPS_PORT=443 +``` +Some related info at: + +https://github.com/wekan/wekan/wiki/Caddy-Webserver-Config + +I also had to wait that Origin certificate becomes active. + +But this worked for me only at CloudFlare. It did not work at FreeDNS of Namecheap. + +Also, I still need to write script to fix IP address if Dynamic DNS IP address changes, using CloudFlare API, because my cable modem does not have DDNS option for CloudFlare. + +Now that there is also a way to run Sandstorm at Ubuntu, it would be possible for me to move Sandstorm from KVM VM to run directly at host, without VM, and proxy from Caddy to localhost port of Sandstorm. + +https://groups.google.com/g/sandstorm-dev/c/4JFhr7B7QZU?pli=1 + +### Debian amd64 + +Installing Sandstorm works normally + +### Ubuntu 24.04 amd64 + +At startup was a lot of errors and saw "Permission denied; name = /proc/self/setgroups" + +I found this (run as root): +``` +echo "kernel.apparmor_restrict_unprivileged_userns = 0" >/etc/sysctl.d/99-userns.conf +sysctl --system +``` +And I ran it and restarted the Sandstorm service, everything seemed to work fine. +I hope this might be useful to someone. + +Source: https://groups.google.com/g/sandstorm-dev/c/4JFhr7B7QZU + ## Sandstorm Website -[Sandstorm Website](https://sandstorm.io) +[Sandstorm Website](https://sandstorm.org) If you have any grains at Sandstorm's **Oasis montly paid service**, please move those to self-hosted, because [only **Oasis grain hosting** part is shutting down](https://sandstorm.io/news/2019-09-15-shutting-down-oasis) - [HN](https://news.ycombinator.com/item?id=20979428). This does not affect any other parts like self-hosting at sandcats.io, App Market, updates, etc. diff --git a/docs/wekan.wiki/Wekan-Sandstorm-cards-to-CSV-using-Python.md b/docs/Platforms/FOSS/Sandstorm/Wekan-Sandstorm-cards-to-CSV-using-Python.md similarity index 100% rename from docs/wekan.wiki/Wekan-Sandstorm-cards-to-CSV-using-Python.md rename to docs/Platforms/FOSS/Sandstorm/Wekan-Sandstorm-cards-to-CSV-using-Python.md diff --git a/docs/wekan.wiki/Wekan-vs-Sandstorm.md b/docs/Platforms/FOSS/Sandstorm/Wekan-vs-Sandstorm.md similarity index 100% rename from docs/wekan.wiki/Wekan-vs-Sandstorm.md rename to docs/Platforms/FOSS/Sandstorm/Wekan-vs-Sandstorm.md diff --git a/docs/wekan.wiki/SmartOS.md b/docs/Platforms/FOSS/SmartOS.md similarity index 100% rename from docs/wekan.wiki/SmartOS.md rename to docs/Platforms/FOSS/SmartOS.md diff --git a/docs/wekan-snap.wiki/Automatic-update-schedule.md b/docs/Platforms/FOSS/Snap/Automatic-update-schedule.md similarity index 100% rename from docs/wekan-snap.wiki/Automatic-update-schedule.md rename to docs/Platforms/FOSS/Snap/Automatic-update-schedule.md diff --git a/docs/wekan-snap.wiki/Backup-and-restore.md b/docs/Platforms/FOSS/Snap/Backup-and-restore.md similarity index 100% rename from docs/wekan-snap.wiki/Backup-and-restore.md rename to docs/Platforms/FOSS/Snap/Backup-and-restore.md diff --git a/docs/wekan-snap.wiki/Candidate-WeKan-Snap-Manual-Upgrade.md b/docs/Platforms/FOSS/Snap/Candidate-WeKan-Snap-Manual-Upgrade.md similarity index 98% rename from docs/wekan-snap.wiki/Candidate-WeKan-Snap-Manual-Upgrade.md rename to docs/Platforms/FOSS/Snap/Candidate-WeKan-Snap-Manual-Upgrade.md index 60df16379..d87d2d89a 100644 --- a/docs/wekan-snap.wiki/Candidate-WeKan-Snap-Manual-Upgrade.md +++ b/docs/Platforms/FOSS/Snap/Candidate-WeKan-Snap-Manual-Upgrade.md @@ -40,7 +40,7 @@ ssh wekanserver ``` #### 5. Save snap settings and set it as executeable ``` -sudo snap get wekan > snap-settings.sh +sudo snap get wekan | awk '{if(NR>1) print "sudo snap set wekan " $1 "=" "\"" $2 "\""}' > snap-settings.sh chmod +x snap-settings.sh ``` @@ -273,4 +273,4 @@ If you have problems, add comment to issue https://github.com/wekan/wekan/issues - This is discontinued, Gantt features will be later added to WeKan MIT version. - Gantt version files are instead at `/var/snap/wekan-gantt-gpl/` -- Gantt snap name is wekan-gantt-gpl \ No newline at end of file +- Gantt snap name is wekan-gantt-gpl diff --git a/docs/wekan-snap.wiki/CentOS-7.md b/docs/Platforms/FOSS/Snap/CentOS-7.md similarity index 100% rename from docs/wekan-snap.wiki/CentOS-7.md rename to docs/Platforms/FOSS/Snap/CentOS-7.md diff --git a/docs/wekan-snap.wiki/CentOS8.md b/docs/Platforms/FOSS/Snap/CentOS8.md similarity index 100% rename from docs/wekan-snap.wiki/CentOS8.md rename to docs/Platforms/FOSS/Snap/CentOS8.md diff --git a/docs/wekan-snap.wiki/Home.md b/docs/Platforms/FOSS/Snap/Home.md similarity index 51% rename from docs/wekan-snap.wiki/Home.md rename to docs/Platforms/FOSS/Snap/Home.md index 574140bcd..864862504 100644 --- a/docs/wekan-snap.wiki/Home.md +++ b/docs/Platforms/FOSS/Snap/Home.md @@ -1,4 +1,16 @@ -Welcome to the wekan-snap documentation wiki! +## Installing newest Snap WeKan + +Newest Stable Snap is at Snap Candidate channel: + +https://github.com/wekan/wekan/discussions/5385 + +Later, when xet7 gets database migrations working, newest version will be added to Snap Stable channel too. + + +*** + +OLD INFO: + ## Wekan snap at web diff --git a/docs/wekan-snap.wiki/Install-snap-with-Ansible.md b/docs/Platforms/FOSS/Snap/Install-snap-with-Ansible.md similarity index 100% rename from docs/wekan-snap.wiki/Install-snap-with-Ansible.md rename to docs/Platforms/FOSS/Snap/Install-snap-with-Ansible.md diff --git a/docs/wekan-snap.wiki/Install.md b/docs/Platforms/FOSS/Snap/Install.md similarity index 95% rename from docs/wekan-snap.wiki/Install.md rename to docs/Platforms/FOSS/Snap/Install.md index 12a7e6997..fe1bcb982 100644 --- a/docs/wekan-snap.wiki/Install.md +++ b/docs/Platforms/FOSS/Snap/Install.md @@ -1,3 +1,15 @@ +## Installing newest Snap WeKan + +Newest Stable Snap is at Snap Candidate channel: + +https://github.com/wekan/wekan/discussions/5385 + +Later, when xet7 gets database migrations working, newest version will be added to Snap Stable channel too. + +*** + +OLD INFO: + Snap for Linux, install to your own server or laptop. Automatic Updates. Only Standalone Wekan. If on Snap Stable automatic update breaks something, [report Wekan for Snap bugs and feature requests here](https://github.com/wekan/wekan-snap/issues), so it can be fixed on some automatic update. If security is critical, keep behind firewall, without any ports open to Internet. @@ -66,6 +78,13 @@ systemctl restart snap.wekan.wekan ``` ### 5) Install all Snap updates automatically between 02:00AM and 04:00AM + +#### NEW: + +Use `refresh.timer`, see https://github.com/wekan/wekan/issues/5402 + +#### OLD: + ``` snap set core refresh.schedule=02:00-04:00 ``` diff --git a/docs/wekan-snap.wiki/Limit-snap-to-root-user-only.md b/docs/Platforms/FOSS/Snap/Limit-snap-to-root-user-only.md similarity index 100% rename from docs/wekan-snap.wiki/Limit-snap-to-root-user-only.md rename to docs/Platforms/FOSS/Snap/Limit-snap-to-root-user-only.md diff --git a/docs/wekan-snap.wiki/Making-releases-from-source.md b/docs/Platforms/FOSS/Snap/Making-releases-from-source.md similarity index 100% rename from docs/wekan-snap.wiki/Making-releases-from-source.md rename to docs/Platforms/FOSS/Snap/Making-releases-from-source.md diff --git a/docs/wekan-snap.wiki/Making-releases.md b/docs/Platforms/FOSS/Snap/Making-releases.md similarity index 100% rename from docs/wekan-snap.wiki/Making-releases.md rename to docs/Platforms/FOSS/Snap/Making-releases.md diff --git a/docs/wekan-snap.wiki/Many-Snaps-on-LXC.md b/docs/Platforms/FOSS/Snap/Many-Snaps-on-LXC.md similarity index 98% rename from docs/wekan-snap.wiki/Many-Snaps-on-LXC.md rename to docs/Platforms/FOSS/Snap/Many-Snaps-on-LXC.md index cb8cac0ca..6814d3471 100644 --- a/docs/wekan-snap.wiki/Many-Snaps-on-LXC.md +++ b/docs/Platforms/FOSS/Snap/Many-Snaps-on-LXC.md @@ -329,6 +329,16 @@ files.company.com { # OLD WAY: Many Snaps on LXC +## Fix: System does not fully support snapd + +To server and LXC/LXD containers, install these packages: + +``` +sudo apt install libsquashfuse0 squashfuse fuse +``` + +Source: https://forum.snapcraft.io/t/system-does-not-fully-support-snapd/14767/11 + ## LXD init CIDR IPv4 CIDR: 10.1.1.1/24 @@ -463,4 +473,4 @@ Result: ``` lxc stop mycontainer lxc delete mycontainer -``` \ No newline at end of file +``` diff --git a/docs/wekan-snap.wiki/Old-Making-releases.md b/docs/Platforms/FOSS/Snap/Old-Making-releases.md similarity index 100% rename from docs/wekan-snap.wiki/Old-Making-releases.md rename to docs/Platforms/FOSS/Snap/Old-Making-releases.md diff --git a/docs/wekan-snap.wiki/OpenSuse.md b/docs/Platforms/FOSS/Snap/OpenSuse.md similarity index 100% rename from docs/wekan-snap.wiki/OpenSuse.md rename to docs/Platforms/FOSS/Snap/OpenSuse.md diff --git a/docs/wekan-snap.wiki/Sharing-MongoDB.md b/docs/Platforms/FOSS/Snap/Sharing-MongoDB.md similarity index 100% rename from docs/wekan-snap.wiki/Sharing-MongoDB.md rename to docs/Platforms/FOSS/Snap/Sharing-MongoDB.md diff --git a/docs/wekan.wiki/Snap.md b/docs/Platforms/FOSS/Snap/Snap.md similarity index 100% rename from docs/wekan.wiki/Snap.md rename to docs/Platforms/FOSS/Snap/Snap.md diff --git a/docs/wekan-snap.wiki/Supported-settings-keys.md b/docs/Platforms/FOSS/Snap/Supported-settings-keys.md similarity index 100% rename from docs/wekan-snap.wiki/Supported-settings-keys.md rename to docs/Platforms/FOSS/Snap/Supported-settings-keys.md diff --git a/docs/wekan-snap.wiki/Testing-new-WeKan-Snap-versions.md b/docs/Platforms/FOSS/Snap/Testing-new-WeKan-Snap-versions.md similarity index 100% rename from docs/wekan-snap.wiki/Testing-new-WeKan-Snap-versions.md rename to docs/Platforms/FOSS/Snap/Testing-new-WeKan-Snap-versions.md diff --git a/docs/wekan-snap.wiki/Troubleshooting.md b/docs/Platforms/FOSS/Snap/Troubleshooting.md similarity index 100% rename from docs/wekan-snap.wiki/Troubleshooting.md rename to docs/Platforms/FOSS/Snap/Troubleshooting.md diff --git a/docs/wekan-snap.wiki/Uninstall.md b/docs/Platforms/FOSS/Snap/Uninstall.md similarity index 100% rename from docs/wekan-snap.wiki/Uninstall.md rename to docs/Platforms/FOSS/Snap/Uninstall.md diff --git a/docs/wekan-snap.wiki/Update-all-snap-packages.md b/docs/Platforms/FOSS/Snap/Update-all-snap-packages.md similarity index 100% rename from docs/wekan-snap.wiki/Update-all-snap-packages.md rename to docs/Platforms/FOSS/Snap/Update-all-snap-packages.md diff --git a/docs/wekan.wiki/Install-and-Update.md b/docs/Platforms/FOSS/Source/Install-and-Update.md similarity index 100% rename from docs/wekan.wiki/Install-and-Update.md rename to docs/Platforms/FOSS/Source/Install-and-Update.md diff --git a/docs/wekan.wiki/Install-from-source-without-root.md b/docs/Platforms/FOSS/Source/Install-from-source-without-root.md similarity index 100% rename from docs/wekan.wiki/Install-from-source-without-root.md rename to docs/Platforms/FOSS/Source/Install-from-source-without-root.md diff --git a/docs/wekan.wiki/Install-source-without-sudo-on-Linux.md b/docs/Platforms/FOSS/Source/Install-source-without-sudo-on-Linux.md similarity index 100% rename from docs/wekan.wiki/Install-source-without-sudo-on-Linux.md rename to docs/Platforms/FOSS/Source/Install-source-without-sudo-on-Linux.md diff --git a/docs/wekan.wiki/Raspberry-Pi.md b/docs/Platforms/FOSS/Source/Raspberry-Pi.md similarity index 100% rename from docs/wekan.wiki/Raspberry-Pi.md rename to docs/Platforms/FOSS/Source/Raspberry-Pi.md diff --git a/docs/wekan.wiki/Source.md b/docs/Platforms/FOSS/Source/Source.md similarity index 100% rename from docs/wekan.wiki/Source.md rename to docs/Platforms/FOSS/Source/Source.md diff --git a/docs/wekan.wiki/UCS.md b/docs/Platforms/FOSS/UCS.md similarity index 100% rename from docs/wekan.wiki/UCS.md rename to docs/Platforms/FOSS/UCS.md diff --git a/docs/wekan.wiki/Ubuntu-Core.md b/docs/Platforms/FOSS/Ubuntu-Core.md similarity index 100% rename from docs/wekan.wiki/Ubuntu-Core.md rename to docs/Platforms/FOSS/Ubuntu-Core.md diff --git a/docs/wekan.wiki/Vagrant.md b/docs/Platforms/FOSS/Vagrant.md similarity index 100% rename from docs/wekan.wiki/Vagrant.md rename to docs/Platforms/FOSS/Vagrant.md diff --git a/docs/wekan.wiki/ppc.md b/docs/Platforms/FOSS/ppc.md similarity index 100% rename from docs/wekan.wiki/ppc.md rename to docs/Platforms/FOSS/ppc.md diff --git a/docs/wekan.wiki/s390x.md b/docs/Platforms/FOSS/s390x.md similarity index 97% rename from docs/wekan.wiki/s390x.md rename to docs/Platforms/FOSS/s390x.md index bab1345e7..4041afbab 100644 --- a/docs/wekan.wiki/s390x.md +++ b/docs/Platforms/FOSS/s390x.md @@ -10,6 +10,9 @@ - https://arstechnica.com/information-technology/2023/07/the-ibm-mainframe-how-it-runs-and-why-it-survives/ - https://sdl-hercules-390.github.io/html/ - Big-endian s390x https://community.ibm.com/community/user/ibmz-and-linuxone/blogs/javier-perez1/2021/01/19/endianness-guidance-for-open-source-projects +- The Future of Big Iron: An Interview with IBM’s Christian Jacobi + - https://morethanmoore.substack.com/p/the-future-of-big-iron-telum-ii-and + - https://news.ycombinator.com/item?id=41846592 *** diff --git a/torodb-postgresql/CHANGELOG.md b/docs/Platforms/FOSS/torodb-postgresql/CHANGELOG.md similarity index 100% rename from torodb-postgresql/CHANGELOG.md rename to docs/Platforms/FOSS/torodb-postgresql/CHANGELOG.md diff --git a/torodb-postgresql/LICENSE b/docs/Platforms/FOSS/torodb-postgresql/LICENSE similarity index 100% rename from torodb-postgresql/LICENSE rename to docs/Platforms/FOSS/torodb-postgresql/LICENSE diff --git a/torodb-postgresql/README.md b/docs/Platforms/FOSS/torodb-postgresql/README.md similarity index 100% rename from torodb-postgresql/README.md rename to docs/Platforms/FOSS/torodb-postgresql/README.md diff --git a/torodb-postgresql/docker-compose.yml b/docs/Platforms/FOSS/torodb-postgresql/docker-compose.yml similarity index 98% rename from torodb-postgresql/docker-compose.yml rename to docs/Platforms/FOSS/torodb-postgresql/docker-compose.yml index fed2910d9..c47b831d1 100644 --- a/torodb-postgresql/docker-compose.yml +++ b/docs/Platforms/FOSS/torodb-postgresql/docker-compose.yml @@ -520,6 +520,15 @@ services: # https://bunkat.github.io/later/parsers.html#text #- LDAP_BACKGROUND_SYNC_INTERVAL='every 1 hour' # + # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds + # The format must be as specified in: + # https://bunkat.github.io/later/parsers.html#text + #- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours + # At which interval does the background task sync in milliseconds. + # Leave this unset, so it uses default, and does not crash. + # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 + - LDAP_BACKGROUND_SYNC_INTERVAL='' + # # LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED : # example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true #- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false diff --git a/docs/wekan.wiki/virtual-appliance.md b/docs/Platforms/FOSS/virtual-appliance.md similarity index 100% rename from docs/wekan.wiki/virtual-appliance.md rename to docs/Platforms/FOSS/virtual-appliance.md diff --git a/docs/wekan.wiki/Chromebook.md b/docs/Platforms/Propietary/Chromebook.md similarity index 100% rename from docs/wekan.wiki/Chromebook.md rename to docs/Platforms/Propietary/Chromebook.md diff --git a/docs/wekan.wiki/AWS.md b/docs/Platforms/Propietary/Cloud/AWS.md similarity index 100% rename from docs/wekan.wiki/AWS.md rename to docs/Platforms/Propietary/Cloud/AWS.md diff --git a/docs/wekan.wiki/Azure.md b/docs/Platforms/Propietary/Cloud/Azure.md similarity index 98% rename from docs/wekan.wiki/Azure.md rename to docs/Platforms/Propietary/Cloud/Azure.md index 68e9325e8..15a9de760 100644 --- a/docs/wekan.wiki/Azure.md +++ b/docs/Platforms/Propietary/Cloud/Azure.md @@ -4,10 +4,12 @@ *Make sure you are running at least **v2.21*** -### Snap install info, tested 2021-07-16 +### Redirect URL [About AZURE-NEW-APP-CLIENT-ID and AZURE-NEW-APP-SECRET](https://community.microfocus.com/t5/Identity-Manager-Tips/Creating-the-application-Client-ID-and-Client-Secret-from/ta-p/1776619). The redirect URL is your Wekan root-url+_oauth/oidc like this: https://boards.example.com/_oauth/oidc +Wekan logo + AZURE_DIRECTORY_ID = TENANT-NAME-FOR-YOUR-ORGANIZATION ### If Azure Active Directory login does not work diff --git a/docs/wekan.wiki/Cloudron.md b/docs/Platforms/Propietary/Cloud/Cloudron.md similarity index 100% rename from docs/wekan.wiki/Cloudron.md rename to docs/Platforms/Propietary/Cloud/Cloudron.md diff --git a/docs/wekan.wiki/Dome.md b/docs/Platforms/Propietary/Cloud/Dome.md similarity index 100% rename from docs/wekan.wiki/Dome.md rename to docs/Platforms/Propietary/Cloud/Dome.md diff --git a/docs/wekan.wiki/Heroku.md b/docs/Platforms/Propietary/Cloud/Heroku.md similarity index 100% rename from docs/wekan.wiki/Heroku.md rename to docs/Platforms/Propietary/Cloud/Heroku.md diff --git a/docs/wekan.wiki/Metal.md b/docs/Platforms/Propietary/Cloud/Metal.md similarity index 100% rename from docs/wekan.wiki/Metal.md rename to docs/Platforms/Propietary/Cloud/Metal.md diff --git a/docs/wekan.wiki/OVH.md b/docs/Platforms/Propietary/Cloud/OVH.md similarity index 100% rename from docs/wekan.wiki/OVH.md rename to docs/Platforms/Propietary/Cloud/OVH.md diff --git a/docs/wekan.wiki/OpenVZ.md b/docs/Platforms/Propietary/Cloud/OpenVZ.md similarity index 100% rename from docs/wekan.wiki/OpenVZ.md rename to docs/Platforms/Propietary/Cloud/OpenVZ.md diff --git a/docs/wekan.wiki/PikaPods.md b/docs/Platforms/Propietary/Cloud/PikaPods.md similarity index 100% rename from docs/wekan.wiki/PikaPods.md rename to docs/Platforms/Propietary/Cloud/PikaPods.md diff --git a/docs/Platforms/Propietary/Cloud/RepoCloud.md b/docs/Platforms/Propietary/Cloud/RepoCloud.md new file mode 100644 index 000000000..fc07e6349 --- /dev/null +++ b/docs/Platforms/Propietary/Cloud/RepoCloud.md @@ -0,0 +1,3 @@ +https://repocloud.io + +[![Deploy on RepoCloud](RepoCloud.svg)](https://repocloud.io/details/?app_id=34) diff --git a/docs/Platforms/Propietary/Cloud/RepoCloud.svg b/docs/Platforms/Propietary/Cloud/RepoCloud.svg new file mode 100644 index 000000000..d1d128c4d --- /dev/null +++ b/docs/Platforms/Propietary/Cloud/RepoCloud.svg @@ -0,0 +1,11 @@ + + New Project + + + + + + + \ No newline at end of file diff --git a/docs/wekan.wiki/Scalingo.md b/docs/Platforms/Propietary/Cloud/Scalingo.md similarity index 100% rename from docs/wekan.wiki/Scalingo.md rename to docs/Platforms/Propietary/Cloud/Scalingo.md diff --git a/docs/wekan.wiki/Install-latest-Wekan-release-on-Uberspace.md b/docs/Platforms/Propietary/Cloud/Uberspace.md similarity index 90% rename from docs/wekan.wiki/Install-latest-Wekan-release-on-Uberspace.md rename to docs/Platforms/Propietary/Cloud/Uberspace.md index 15a4a0c46..4bb27e41a 100644 --- a/docs/wekan.wiki/Install-latest-Wekan-release-on-Uberspace.md +++ b/docs/Platforms/Propietary/Cloud/Uberspace.md @@ -12,31 +12,31 @@ **Purpose**: Install latest Wekan release on [Uberspace](https://uberspace.de/) 6 and run as [daemontools](https://cr.yp.to/daemontools/faq/create.html) service in local userspace. -This script installs Wekan on a fresh Uberspace 6. It setup Node 4, MongoDB, a Port, installs Wekan and starts it as a service. It's tested with Wekan versions 0.32 and 0.63. +This script installs Wekan on a fresh Uberspace 6. It setup Node 4, MongoDB, a Port, installs Wekan and starts it as a service. It's tested with Wekan versions 0.32 and 0.63. You have two Options to use it. # Option 1: -You can run the commands of the following script step-by-step in the shell. +You can run the commands of the following script step-by-step in the shell. At first step set the SMTP-Password variable. Replace the `$1` with the password in that way `SMTP_PASS="smtp_password"` and continue line-by-line. # Option 2: Or you can run it automatically. * Save it as script in file `install_wekan.sh` -* Make it executable `chmod +x install_wekan.sh` -* And run it. Pass the SMTP-Password as command line parameter `./install_wekan.sh smtp_password`. +* Make it executable `chmod +x install_wekan.sh` +* And run it. Pass the SMTP-Password as command line parameter `./install_wekan.sh smtp_password`. ## ./install_wekan.sh ``` #!/bin/sh -## +## ## Usage: ./install_wekan.sh SMTP-password ## ## Draft ## Install Wekan (v0.63) on Uberspace 6 by Noodle / Chris -## -## Sources: +## +## Sources: ## https://github.com/wekan/wekan/wiki/Install-and-Update#manual-installation-steps ## https://wiki.uberspace.de/database:mongodb ## https://wiki.uberspace.de/development:nodejs @@ -71,8 +71,8 @@ test -d ~/service || uberspace-setup-svscan TEMPMDB="$(uberspace-setup-mongodb)" MONGO_USER="${USER}_mongoadmin" -MONGO_PORT="$(echo ${TEMPMDB} | egrep -o 'm#:\s[0-9]{5}\sUs' | cut -d' ' -f 2)" -MONGO_PASS="$(echo ${TEMPMDB} | egrep -o 'rd:\s.+\sTo\sconn' | cut -d' ' -f 2)" +MONGO_PORT="$(echo ${TEMPMDB} | grep -E -o 'm#:\s[0-9]{5}\sUs' | cut -d' ' -f 2)" +MONGO_PASS="$(echo ${TEMPMDB} | grep -E -o 'rd:\s.+\sTo\sconn' | cut -d' ' -f 2)" echo -e "MONGO_USER: ${MONGO_USER} \nMONGO_PORT: ${MONGO_PORT} \nMONGO_PASS: ${MONGO_PASS}" @@ -81,7 +81,7 @@ echo -e "MONGO_USER: ${MONGO_USER} \nMONGO_PORT: ${MONGO_PORT} \nMONGO_PASS: ${M ### Setup Websocket Port ### ############################ -export FREE_PORT="$(uberspace-add-port --protocol tcp --firewall | egrep -o '[0-9]{5}')" +export FREE_PORT="$(uberspace-add-port --protocol tcp --firewall | grep -E -o '[0-9]{5}')" echo "FREE_PORT: ${FREE_PORT}" @@ -162,14 +162,14 @@ More about [daemontools](https://cr.yp.to/daemontools/faq/create.html). # Uninstall Wekan To remove Wekan from your uberspace you have to do the following steps. -* Stop and remove the service. +* Stop and remove the service. `uberspace-remove-service -s wekan` -* Remove the complete data. +* Remove the complete data. ``` mongo admin --port $MONGO_PORT -u $MONGO_USER -p $MONGO_PASS use wekan db.dropDatabase() exit ``` -* Remove the installation. -`rm -Rf ~/wekan/ ~/etc/wekan-*` \ No newline at end of file +* Remove the installation. +`rm -Rf ~/wekan/ ~/etc/wekan-*` diff --git a/docs/wekan.wiki/Vultr.md b/docs/Platforms/Propietary/Cloud/Vultr.md similarity index 100% rename from docs/wekan.wiki/Vultr.md rename to docs/Platforms/Propietary/Cloud/Vultr.md diff --git a/docs/wekan.wiki/Mac.md b/docs/Platforms/Propietary/Mac.md similarity index 100% rename from docs/wekan.wiki/Mac.md rename to docs/Platforms/Propietary/Mac.md diff --git a/docs/wekan.wiki/Qnap-NAS.md b/docs/Platforms/Propietary/Qnap-NAS.md similarity index 100% rename from docs/wekan.wiki/Qnap-NAS.md rename to docs/Platforms/Propietary/Qnap-NAS.md diff --git a/docs/wekan.wiki/Install-Wekan-from-source-on-Windows.md b/docs/Platforms/Propietary/Windows/Install-Wekan-from-source-on-Windows.md similarity index 97% rename from docs/wekan.wiki/Install-Wekan-from-source-on-Windows.md rename to docs/Platforms/Propietary/Windows/Install-Wekan-from-source-on-Windows.md index a3f44b8b8..03e147446 100644 --- a/docs/wekan.wiki/Install-Wekan-from-source-on-Windows.md +++ b/docs/Platforms/Propietary/Windows/Install-Wekan-from-source-on-Windows.md @@ -1,14 +1,17 @@ +# Newest Windows info here + +https://github.com/wekan/wekan/wiki/Offline + +## OLD INFO BELOW, DOES NOT WORK + Also see: [Excel and VBA](Excel-and-VBA) - -# THIS WORKS a) Lowest resource usage: [Windows Subsystem for Linux, build from source](https://github.com/wekan/wekan/issues/2066#issuecomment-468328001) b) Docker for Windows, [prebuilt without --build option, or build from source](https://github.com/wekan/wekan-dev/issues/12#issuecomment-468657290) *** -# OLD INFO BELOW, DOES NOT WORK ### Source install required dependencies diff --git a/docs/wekan.wiki/Install-Windows.md b/docs/Platforms/Propietary/Windows/Install-Windows.md similarity index 100% rename from docs/wekan.wiki/Install-Windows.md rename to docs/Platforms/Propietary/Windows/Install-Windows.md diff --git a/docs/wekan.wiki/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md similarity index 90% rename from docs/wekan.wiki/Offline.md rename to docs/Platforms/Propietary/Windows/Offline.md index afcb921d8..41808d969 100644 --- a/docs/wekan.wiki/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -2,50 +2,32 @@ Also see: [Windows](Windows) [Other CPU/OS On-Premise WeKan install](https://github.com/wekan/wekan/wiki/Raspberry-Pi) -## Newest Docker WeKan Offline - -This works now. - -At Internet connected computer, download: - -1. Docker for Windows -2. docker-compose.yml from https://github.com/wekan/wekan -3. `docker-compose up -d` at Internet connected computer -4. Save wekan-app and wekan-db containers to files https://docs.docker.com/engine/reference/commandline/save/ - -At Offline Windows computer: - -1. Install Docker for Windows -2. Load `wekan-app` container from file https://docs.docker.com/engine/reference/commandline/load/ -3. Check what is ID of `wekan-app` container with `docker images` -4. Change at `docker-compose.yml` wekan-app contaier `image:gc....` to `image:ID` where ID from step 3 above -5. Do steps 2-4 also for `wekan-db` container -6. `docker-compose up -d` - ## Wekan Windows 64bit version On-Premise -This does not work yet. +INFO ABOUT SETTINGS: https://github.com/wekan/wekan/issues/5591#issuecomment-2503681293 + +This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.18-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.18/wekan-7.18-amd64-windows.zip) +1. [wekan-7.84-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.84/wekan-7.84-amd64-windows.zip) -2. [node-v14.21.4-win-x64.exe](https://github.com/wekan/node-v14-esm/releases/download/v14.21.4/node-v14.21.4-win-x64.exe) +2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) -3. [mongodb-windows-x86_64-6.0.11-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.11-signed.msi) +3. [mongodb-windows-x86_64-6.0.20-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.20-signed.msi) 4. [start-wekan.bat](https://raw.githubusercontent.com/wekan/wekan/main/start-wekan.bat) 5. Copy files from steps 1-4 with USB stick or DVD to offline Windows computer -6. Double click `mongodb-windows-x86_64-6.0.11-signed.msi` . In installer, uncheck downloading MongoDB compass. +6. Double click `mongodb-windows-x86_64-6.0.20-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.18-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.84-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) |_ start-wekan.bat (downloaded file) - |_ node-v14.21.4-win-x64.exe (downloaded file) + |_ node.exe (downloaded file) |_ main.js (extracted file) ``` 8. Edit `start-wekan.bat` with Notepad. There add [Windows computer IP address](https://support.microsoft.com/en-us/windows/find-your-ip-address-in-windows-f21a9bbc-c582-55cd-35e0-73431160a1b9) , like this, then Wekan will be at http://IP-ADDRESS-HERE/sign-in , for example http://192.168.0.100/sign-in but your different IP address. Add there wekan server computer IP address, not localhost. `node.exe main.js` is at bottom of `start-wekan.bat`, change there longer filename: @@ -54,7 +36,7 @@ SET ROOT_URL=http://IP-ADDRESS-HERE SET PORT=80 -node-v14.21.4-win-x64.exe main.js +node.exe main.js ``` If there is already some webserver at port 80, change to other port: ``` @@ -75,6 +57,25 @@ RELATED INFO: - Windows 2022 server example https://github.com/wekan/wekan/issues/5084 - Other settings example https://github.com/wekan/wekan/issues/4932 +## Docker WeKan Offline + + +At Internet connected computer, download: + +1. Docker for Windows +2. docker-compose.yml from https://github.com/wekan/wekan +3. `docker-compose up -d` at Internet connected computer +4. Save wekan-app and wekan-db containers to files https://docs.docker.com/engine/reference/commandline/save/ + +At Offline Windows computer: + +1. Install Docker for Windows +2. Load `wekan-app` container from file https://docs.docker.com/engine/reference/commandline/load/ +3. Check what is ID of `wekan-app` container with `docker images` +4. Change at `docker-compose.yml` wekan-app contaier `image:gc....` to `image:ID` where ID from step 3 above +5. Do steps 2-4 also for `wekan-db` container +6. `docker-compose up -d` + ## WeKan Updates 1. Updating only WeKan. Not updating Node.js and MongoDB. @@ -177,4 +178,4 @@ sudo snap set wekan port='80' ``` 12. Then at local network Wekan is at: -http://192.168.0.100 \ No newline at end of file +http://192.168.0.100 diff --git a/docs/wekan.wiki/WSL.md b/docs/Platforms/Propietary/Windows/WSL.md similarity index 100% rename from docs/wekan.wiki/WSL.md rename to docs/Platforms/Propietary/Windows/WSL.md diff --git a/docs/wekan.wiki/Windows.md b/docs/Platforms/Propietary/Windows/Windows.md similarity index 100% rename from docs/wekan.wiki/Windows.md rename to docs/Platforms/Propietary/Windows/Windows.md diff --git a/docs/Secure-Boot.md b/docs/Secure-Boot.md new file mode 100644 index 000000000..1c1e7b97d --- /dev/null +++ b/docs/Secure-Boot.md @@ -0,0 +1 @@ +https://arstechnica.com/security/2024/07/secure-boot-is-completely-compromised-on-200-models-from-5-big-device-makers/ \ No newline at end of file diff --git a/docs/wekan.wiki/Security-Disclosure.md b/docs/Security-Disclosure.md similarity index 100% rename from docs/wekan.wiki/Security-Disclosure.md rename to docs/Security-Disclosure.md diff --git a/docs/wekan.wiki/Burndown-and-Velocity-Chart.md b/docs/Stats/Burndown-and-Velocity-Chart.md similarity index 100% rename from docs/wekan.wiki/Burndown-and-Velocity-Chart.md rename to docs/Stats/Burndown-and-Velocity-Chart.md diff --git a/docs/wekan.wiki/Gantt.md b/docs/Stats/Gantt.md similarity index 100% rename from docs/wekan.wiki/Gantt.md rename to docs/Stats/Gantt.md diff --git a/docs/wekan.wiki/Logs.md b/docs/Stats/Logs.md similarity index 100% rename from docs/wekan.wiki/Logs.md rename to docs/Stats/Logs.md diff --git a/docs/wekan.wiki/Mermaid-Diagram.md b/docs/Stats/Mermaid-Diagram.md similarity index 100% rename from docs/wekan.wiki/Mermaid-Diagram.md rename to docs/Stats/Mermaid-Diagram.md diff --git a/docs/wekan.wiki/Metrics.md b/docs/Stats/Metrics.md similarity index 100% rename from docs/wekan.wiki/Metrics.md rename to docs/Stats/Metrics.md diff --git a/docs/wekan.wiki/Converting-Meteor-Stylus-to-CSS.md b/docs/Theme/Converting-Meteor-Stylus-to-CSS.md similarity index 100% rename from docs/wekan.wiki/Converting-Meteor-Stylus-to-CSS.md rename to docs/Theme/Converting-Meteor-Stylus-to-CSS.md diff --git a/docs/wekan.wiki/Custom-CSS-themes.md b/docs/Theme/Custom-CSS-themes.md similarity index 99% rename from docs/wekan.wiki/Custom-CSS-themes.md rename to docs/Theme/Custom-CSS-themes.md index 6ccbbde02..1b69eedc0 100644 --- a/docs/wekan.wiki/Custom-CSS-themes.md +++ b/docs/Theme/Custom-CSS-themes.md @@ -128,7 +128,7 @@ Other: .card-details .card-details-header { background-color:#ccc; } /* sidebar */ -.sidebar-tongue, .sidebar-shadow { background-color:#666 !important; } +.sidebar-tongue, .sidebar { background-color:#666 !important; } .sidebar-content h3, .sidebar-content .activity-desc { color:rgba(255,255,255,.7) !important; } ``` diff --git a/docs/wekan.wiki/Dark-Mode.md b/docs/Theme/Dark-Mode.md similarity index 100% rename from docs/wekan.wiki/Dark-Mode.md rename to docs/Theme/Dark-Mode.md diff --git a/docs/Translations/Change-Language.md b/docs/Translations/Change-Language.md new file mode 100644 index 000000000..14b99f592 --- /dev/null +++ b/docs/Translations/Change-Language.md @@ -0,0 +1,32 @@ +## Change language for all users + +Using MongoDB Shell with WeKan Snap Candidate, to change English date format to `DD/MM/YY`. + +MongoDB Shell Download: https://www.mongodb.com/try/download/shell + +language.sh: +``` +mongosh --quiet \ +--host 127.0.0.1 \ +--port 27019 \ +--eval 'use wekan' \ +--eval 'db.users.updateMany({}, { $set: {"profile.language": "en-GB" }});' +``` +Set script as executeable: +``` +chmod +x language.sh +``` +Running script, when 5 new users of total 20 users did not have language set correctly yet: +``` +$ ./language.sh +{ + acknowledged: true, + insertedId: null, + matchedCount: 20, + modifiedCount: 5, + upsertedCount: 0 +} +``` +## Language browser settings + +https://github.com/wekan/wekan/issues/4518#issuecomment-1133763518 \ No newline at end of file diff --git a/docs/wekan.wiki/Customize-Translations.md b/docs/Translations/Customize-Translations.md similarity index 100% rename from docs/wekan.wiki/Customize-Translations.md rename to docs/Translations/Customize-Translations.md diff --git a/docs/wekan.wiki/Translations.md b/docs/Translations/Translations.md similarity index 100% rename from docs/wekan.wiki/Translations.md rename to docs/Translations/Translations.md diff --git a/docs/Webhooks/Chat/RocketChat.md b/docs/Webhooks/Chat/RocketChat.md new file mode 100644 index 000000000..9f555593a --- /dev/null +++ b/docs/Webhooks/Chat/RocketChat.md @@ -0,0 +1,68 @@ +Info for Self-Hosted RocketChat Community Server, using RocketChat server Snap from https://snapcraft.io/rocketchat-server + +## Install snapd + +Linux: + +https://snapcraft.io/docs/installing-snapd + +Windows: + +https://github.com/wekan/hx/tree/main/prototypes/ui/gambas#install-on-windows + +## Install RocketChat Snap + +``` +sudo snap install rocketchat-server +``` + +## Setup siteurl + +List current Snap settings: +``` +sudo snap get rocketchat-server +``` +Then set your siteurl of your RocketChat server: +``` +sudo snap set rocketchat-server siteurl='https://chat.yourcompany.com' +``` + +## RocketChat Skip Install Registration Wizard Fix + +Q: + +- [RocketChat Skip Install Registration Wizard Fix](https://github.com/RocketChat/Rocket.Chat/issues/31163#issuecomment-1848364117) + + +A: + +For someone using snap, it means creating a file `/var/snap/rocketchat-server/common/override-setup-wizard.env ` (the name of the file itself could be anything as long as it has an .env extension) and setting its content to `OVERWRITE_SETTING_Show_Setup_Wizard=completed` + +Then, restarting the server by `systemctl restart snap.rocketchat-server.rocketchat-server.service` + +If it does not work yet, then reboot. + +## Workspace version unsupported + +Q: + +- [Workspace version unsupported, Self-Host Community Server](https://forums.rocket.chat/t/workspace-version-unsupported-self-host-community-server/19698) + +A: + +1) Change to newest Snap Stable channel, list at https://snapcraft.io/rocketchat-server dropdown menu + +``` +sudo snap refresh rocketchat-server --channel=6.x/stable --amend +``` + +2) Register your Self-Managed instance here, so login and mobile app start to work after that: + +- https://cloud.rocket.chat/home +- https://chat.yourcompany.com/admin/subscription + +## More RocketChat Snap related info + +https://github.com/wekan/wekan/wiki/OAuth2 + +https://docs.rocket.chat/deploy/deploy-rocket.chat/deploy-with-snaps \ No newline at end of file diff --git a/docs/wekan.wiki/Java.md b/docs/Webhooks/Java.md similarity index 100% rename from docs/wekan.wiki/Java.md rename to docs/Webhooks/Java.md diff --git a/docs/wekan.wiki/Outgoing-Webhook-to-Discord.md b/docs/Webhooks/Outgoing-Webhook-to-Discord.md similarity index 100% rename from docs/wekan.wiki/Outgoing-Webhook-to-Discord.md rename to docs/Webhooks/Outgoing-Webhook-to-Discord.md diff --git a/docs/wekan.wiki/Receiving-Webhooks.md b/docs/Webhooks/Receiving-Webhooks.md similarity index 100% rename from docs/wekan.wiki/Receiving-Webhooks.md rename to docs/Webhooks/Receiving-Webhooks.md diff --git a/docs/wekan.wiki/WebHook-And-CA.md b/docs/Webhooks/WebHook-And-CA.md similarity index 100% rename from docs/wekan.wiki/WebHook-And-CA.md rename to docs/Webhooks/WebHook-And-CA.md diff --git a/docs/wekan.wiki/Webhook-data.md b/docs/Webhooks/Webhook-data.md similarity index 100% rename from docs/wekan.wiki/Webhook-data.md rename to docs/Webhooks/Webhook-data.md diff --git a/docs/wekan.wiki/Apache.md b/docs/Webserver/Apache.md similarity index 100% rename from docs/wekan.wiki/Apache.md rename to docs/Webserver/Apache.md diff --git a/docs/Webserver/Caddy-Webserver-Config.md b/docs/Webserver/Caddy-Webserver-Config.md new file mode 100644 index 000000000..95417e8a0 --- /dev/null +++ b/docs/Webserver/Caddy-Webserver-Config.md @@ -0,0 +1,738 @@ +[Caddy 2 .well-known/assetlinks.json config for WeKan Android Play Store app](../PWA#fullscreen-android-app-with-caddy-and-wekan-server) + +# CloudFlare DNS + +CNAME: + +If some customer has CNAME to hosting platform subdomain, +hosting platform subdomain needs to be A record IP address to +hosting server Caddy webserver, because only that way +it can get Let's Encrypt TLS cert. It can not be nested like +customer CNAME to hosting CNAME to hosting A record, +because then getting Let's Encrypt TLS cert does not work. + +Wildcard: + +Wildcard DNS for Sandstorm only works with CloudFlare DNS. +It does not work with FreeDNS of Namecheap. More info at +https://github.com/wekan/wekan/wiki/Sandstorm + +## Caddy 2 + +WeKan Snap Candidate for any Snap distros: https://github.com/wekan/wekan/wiki/OpenSuse , disable internal old Caddy 1, when using Caddy 2: +``` +sudo snap set wekan caddy-enabled='false' +sudo snap set wekan port='3001' +sudo snap set wekan root-url='https://boards.example.com' +``` +More info about root-url at https://github.com/wekan/wekan/wiki/Settings + +Browser needs to have only one language https://github.com/wekan/wekan/issues/4803#issuecomment-1374354425 + +Install Caddy 2 stable release: https://caddyserver.com/docs/install#debian-ubuntu-raspbian + +Like this: +``` +sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https + +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg + +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list + +sudo apt update + +sudo apt -y install caddy +``` +Edit Caddyfile: + +``` +sudo nano /etc/caddy/Caddyfile +``` + +Example: + +``` +# Redirecting http to https + +(redirect) { + @http { + protocol http + } + redir @http https://{host}{uri} +} + +# WeKan board, proxy to localhost port, or IP-ADDRESS:PORT +boards.example.com { + tls { + load /var/snap/wekan/common/certs + alpn http/1.1 + } + + reverse_proxy 127.0.0.1:3025 +} + +# Static website +example.com { + tls { + load /var/snap/wekan/common/certs + alpn http/1.1 + } + root * /var/websites/wekan.team + file_server +} + +# Files download directory browse website +files.example.com { + root * /var/websites/ftp.secretchronicles.org/public + file_server browse +} +``` + +Caddy commands list: +``` +caddy help +``` + +*** + +### PWA site.webmanifest icons override Caddy example + +PWABuilder settings to create Android app at https://pwabuilder.com +- Web view (not Custom Tabs) +- Fullscreen (When not showing top and bottom toolbars. If you like to show those toolbars, change fullscreen to standalone) +- Notifications [X] Enable +- Signing key [X] Use mine + +PWABuilder upgrades: +- Android app upgrade to Android SDK 34 was made with help of this video https://github.com/pwa-builder/PWABuilder/issues/4766#issuecomment-2229867608 + +Icons override at site.webmanifest: +- These settings at Caddyfile override icon URLs etc + +If you like to show toolbars at top and bottom, change also here `fullscreen` to `standalone` + +``` +boards.wekan.team { + tls { + alpn http/1.1 + } + header /.well-known/* Content-Type application/json + header /.well-known/* Access-Control-Allow-Origin * + respond /.well-known/assetlinks.json `[ { + "relation": ["delegate_permission/common.handle_all_urls"], + "target": { + "namespace": "android_app", + "package_name": "team.wekan.boards.twa", + "sha256_cert_fingerprints": ["AA:AA:ED:7D:4C:9C:5A:A3:B5:DA:10:66:14:34:07:5D:EB:BE:96:CD:82:7B:09:46:47:13:65:29:5B:EA:96:30","61:41:86:5B:05:13:9B:64:5F:39:75:5A:16:C3:F2:22:25:6C:DA:74:B9:B0:8C:5F:93:B0:D2:26:65:16:1B:E6"] + } + } ]` + header /site.webmanifest/* Content-Type application/json + header /site.webmanifest/* Access-Control-Allow-Origin * + respond /site.webmanifest ` { + "name": "Wekan", + "short_name": "Wekan", + "icons": [ { + "src": "svg-etc/wekan-logo-512.svg", + "sizes": "any", + "type": "image/svg" + } , { + "src": "android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + } , { + "src": "android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } , { + "src": "Square150x150Logo.scale-100.png", + "sizes": "150x150", + "type": "image/png" + } , { + "src": "Square44x44Logo.scale-100.png", + "sizes": "44x44", + "type": "image/png" + } , { + "src": "StoreLogo.scale-100.png", + "sizes": "50x50", + "type": "image/png" + } , { + "src": "maskable_icon.png", + "sizes": "474x474", + "type": "image/png", + "purpose": "maskable" + } , { + "src": "monochrome-icon-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "monochrome" + } , { + "src": "windows11/SmallTile.scale-100.png", + "sizes": "71x71" + } , { + "src": "windows11/SmallTile.scale-125.png", + "sizes": "89x89" + } , { + "src": "windows11/SmallTile.scale-150.png", + "sizes": "107x107" + } , { + "src": "windows11/SmallTile.scale-200.png", + "sizes": "142x142" + } , { + "src": "windows11/SmallTile.scale-400.png", + "sizes": "284x284" + } , { + "src": "windows11/Square150x150Logo.scale-100.png", + "sizes": "150x150" + } , { + "src": "windows11/Square150x150Logo.scale-125.png", + "sizes": "188x188" + } , { + "src": "windows11/Square150x150Logo.scale-150.png", + "sizes": "225x225" + } , { + "src": "windows11/Square150x150Logo.scale-200.png", + "sizes": "300x300" + } , { + "src": "windows11/Square150x150Logo.scale-400.png", + "sizes": "600x600" + } , { + "src": "windows11/Wide310x150Logo.scale-100.png", + "sizes": "310x150" + } , { + "src": "windows11/Wide310x150Logo.scale-125.png", + "sizes": "388x188" + } , { + "src": "windows11/Wide310x150Logo.scale-150.png", + "sizes": "465x225" + } , { + "src": "windows11/Wide310x150Logo.scale-200.png", + "sizes": "620x300" + } , { + "src": "windows11/Wide310x150Logo.scale-400.png", + "sizes": "1240x600" + } , { + "src": "windows11/LargeTile.scale-100.png", + "sizes": "310x310" + } , { + "src": "windows11/LargeTile.scale-125.png", + "sizes": "388x388" + } , { + "src": "windows11/LargeTile.scale-150.png", + "sizes": "465x465" + } , { + "src": "windows11/LargeTile.scale-200.png", + "sizes": "620x620" + } , { + "src": "windows11/LargeTile.scale-400.png", + "sizes": "1240x1240" + } , { + "src": "windows11/Square44x44Logo.scale-100.png", + "sizes": "44x44" + } , { + "src": "windows11/Square44x44Logo.scale-125.png", + "sizes": "55x55" + } , { + "src": "windows11/Square44x44Logo.scale-150.png", + "sizes": "66x66" + } , { + "src": "windows11/Square44x44Logo.scale-200.png", + "sizes": "88x88" + } , { + "src": "windows11/Square44x44Logo.scale-400.png", + "sizes": "176x176" + } , { + "src": "windows11/StoreLogo.scale-100.png", + "sizes": "50x50" + } , { + "src": "windows11/StoreLogo.scale-125.png", + "sizes": "63x63" + } , { + "src": "windows11/StoreLogo.scale-150.png", + "sizes": "75x75" + } , { + "src": "windows11/StoreLogo.scale-200.png", + "sizes": "100x100" + } , { + "src": "windows11/StoreLogo.scale-400.png", + "sizes": "200x200" + } , { + "src": "windows11/SplashScreen.scale-100.png", + "sizes": "620x300" + } , { + "src": "windows11/SplashScreen.scale-125.png", + "sizes": "775x375" + } , { + "src": "windows11/SplashScreen.scale-150.png", + "sizes": "930x450" + } , { + "src": "windows11/SplashScreen.scale-200.png", + "sizes": "1240x600" + } , { + "src": "windows11/SplashScreen.scale-400.png", + "sizes": "2480x1200" + } , { + "src": "windows11/Square44x44Logo.targetsize-16.png", + "sizes": "16x16" + } , { + "src": "windows11/Square44x44Logo.targetsize-20.png", + "sizes": "20x20" + } , { + "src": "windows11/Square44x44Logo.targetsize-24.png", + "sizes": "24x24" + } , { + "src": "windows11/Square44x44Logo.targetsize-30.png", + "sizes": "30x30" + } , { + "src": "windows11/Square44x44Logo.targetsize-32.png", + "sizes": "32x32" + } , { + "src": "windows11/Square44x44Logo.targetsize-36.png", + "sizes": "36x36" + } , { + "src": "windows11/Square44x44Logo.targetsize-40.png", + "sizes": "40x40" + } , { + "src": "windows11/Square44x44Logo.targetsize-44.png", + "sizes": "44x44" + } , { + "src": "windows11/Square44x44Logo.targetsize-48.png", + "sizes": "48x48" + } , { + "src": "windows11/Square44x44Logo.targetsize-60.png", + "sizes": "60x60" + } , { + "src": "windows11/Square44x44Logo.targetsize-64.png", + "sizes": "64x64" + } , { + "src": "windows11/Square44x44Logo.targetsize-72.png", + "sizes": "72x72" + } , { + "src": "windows11/Square44x44Logo.targetsize-80.png", + "sizes": "80x80" + } , { + "src": "windows11/Square44x44Logo.targetsize-96.png", + "sizes": "96x96" + } , { + "src": "windows11/Square44x44Logo.targetsize-256.png", + "sizes": "256x256" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-16.png", + "sizes": "16x16" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-20.png", + "sizes": "20x20" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-24.png", + "sizes": "24x24" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-30.png", + "sizes": "30x30" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-32.png", + "sizes": "32x32" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-36.png", + "sizes": "36x36" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-40.png", + "sizes": "40x40" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-44.png", + "sizes": "44x44" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-48.png", + "sizes": "48x48" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-60.png", + "sizes": "60x60" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-64.png", + "sizes": "64x64" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-72.png", + "sizes": "72x72" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-80.png", + "sizes": "80x80" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-96.png", + "sizes": "96x96" + } , { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-256.png", + "sizes": "256x256" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-16.png", + "sizes": "16x16" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-20.png", + "sizes": "20x20" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-24.png", + "sizes": "24x24" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-30.png", + "sizes": "30x30" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-32.png", + "sizes": "32x32" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-36.png", + "sizes": "36x36" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-40.png", + "sizes": "40x40" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-44.png", + "sizes": "44x44" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-48.png", + "sizes": "48x48" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-60.png", + "sizes": "60x60" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-64.png", + "sizes": "64x64" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-72.png", + "sizes": "72x72" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-80.png", + "sizes": "80x80" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-96.png", + "sizes": "96x96" + } , { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-256.png", + "sizes": "256x256" + } , { + "src": "android/android-launchericon-512-512.png", + "sizes": "512x512" + } , { + "src": "android/android-launchericon-192-192.png", + "sizes": "192x192" + } , { + "src": "android/android-launchericon-144-144.png", + "sizes": "144x144" + } , { + "src": "android/android-launchericon-96-96.png", + "sizes": "96x96" + } , { + "src": "android/android-launchericon-72-72.png", + "sizes": "72x72" + } , { + "src": "android/android-launchericon-48-48.png", + "sizes": "48x48" + } , { + "src": "ios/16.png", + "sizes": "16x16" + } , { + "src": "ios/20.png", + "sizes": "20x20" + } , { + "src": "ios/29.png", + "sizes": "29x29" + } , { + "src": "ios/32.png", + "sizes": "32x32" + } , { + "src": "ios/40.png", + "sizes": "40x40" + } , { + "src": "ios/50.png", + "sizes": "50x50" + } , { + "src": "ios/57.png", + "sizes": "57x57" + } , { + "src": "ios/58.png", + "sizes": "58x58" + } , { + "src": "ios/60.png", + "sizes": "60x60" + } , { + "src": "ios/64.png", + "sizes": "64x64" + } , { + "src": "ios/72.png", + "sizes": "72x72" + } , { + "src": "ios/76.png", + "sizes": "76x76" + } , { + "src": "ios/80.png", + "sizes": "80x80" + } , { + "src": "ios/87.png", + "sizes": "87x87" + } , { + "src": "ios/100.png", + "sizes": "100x100" + } , { + "src": "ios/114.png", + "sizes": "114x114" + } , { + "src": "ios/120.png", + "sizes": "120x120" + } , { + "src": "ios/128.png", + "sizes": "128x128" + } , { + "src": "ios/144.png", + "sizes": "144x144" + } , { + "src": "ios/152.png", + "sizes": "152x152" + } , { + "src": "ios/167.png", + "sizes": "167x167" + } , { + "src": "ios/180.png", + "sizes": "180x180" + } , { + "src": "ios/192.png", + "sizes": "192x192" + } , { + "src": "ios/256.png", + "sizes": "256x256" + } , { + "src": "ios/512.png", + "sizes": "512x512" + } , { + "src": "ios/1024.png", + "sizes": "1024x1024" + } + ], + "screenshots": [ { + "src": "screenshot1.webp", + "sizes": "1280x720", + "type": "image/webp" + } , { + "src": "screenshot2.webp", + "sizes": "1280x720", + "type": "image/webp" + } + ], + "theme_color": "#000000", + "background_color": "#000000", + "start_url": "sign-in", + "display": "fullscreen", + "orientation": "any", + "categories": [ + "productivity" + ], + "iarc_rating_id": "70d7c4a4-3e5a-4714-a7dc-fa006613ba96", + "description": "Open Source kanban with MIT license", + "dir": "auto", + "scope": "https://boards.wekan.team", + "prefer_related_applications": false, + "display_override": [ + "fullscreen" + ] + } ` + reverse_proxy 127.0.0.1:3025 +} +``` + +*** + +[Caddy OAuth2 with Let's Encrypt SSL example](OAuth2) + +*** + +## CloudFlare free wildcard SSL *start* + +Also works with other SSL certs. + +### 1) Requirements: You have changed nameservers to CloudFlare. + +### 2) Get CloudFlare SSL wildcard Origin Certificate + +Go to CloudFlare login/example.com/Crypto/Origin Certificates. +Create and download certs for `*.example.com, example.com` + +### 3) Create directory /var/snap/wekan/common/certs +``` +sudo su +cd /var/snap/wekan/common +mkdir certs +cd certs +``` +### 4) Create cert file +Create file: `example.com.pem` with content of CloudFlare Origin Certificates. +``` +nano example.com.pem +``` +There add certs: +``` +-----BEGIN PRIVATE KEY----- +-----END PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +-----END CERTIFICATE----- +``` + +Then Save: Ctrl-o Enter + +Then Exit: Ctrl-x. + +### 5) Set permissions rw-r--r-- to example.com.pem: +``` +chmod 644 example.com.pem +``` + +### 6) Edit Caddy webserver config +``` +sudo nano /var/snap/wekan/common/Caddyfile +``` +There change config: +``` +http://example.com https://example.com { + tls { + load /var/snap/wekan/common/certs + alpn http/1.1 + } + proxy / localhost:3001 { + websocket + transparent + } +} +``` +Save: Ctrl-o Enter + +Exit: Ctrl-x + +Enable Caddy: +``` +sudo snap set wekan caddy-enabled='true' +sudo snap set wekan port='3001' +sudo snap set wekan root-url='https://example.com' +``` + +### 7) Enable CloudFlare SSL + +Click CloudFlare login/example.com/DNS. + +Check that status of your domains have orange cloud color, so traffic goes through CloudFlare SSL. + +Click CloudFlare login/example.com/Page Rules. +Set for example: +``` +1) http://example.com/* +Always Use HTTPS +2) http://*.example.com/* +Always use HTTPS +``` +Optionally, if you want caching: +``` +3) *example.com/* +Cache Level: Cache Everything +``` +## CloudFlare free wildcard SSL *end* + +*** + +## Other config stuff + +[List of Let's Encrypt implementations](https://community.letsencrypt.org/t/list-of-client-implementations/2103) + +## Caddy webserver config with logs + +Create directory for caddy, website and logs: +```bash +mkdir -p ~/caddy/example.com ~/caddy/logs +``` + +Add this config to ~/caddy/Caddyfile + +There's also some extra examples. + +```bash +example.com { + root /home/username/caddy/example.com + # Static website, markdown or html + ext .md .html + + proxy /wekan 127.0.0.1:3000 { + websocket + } + + log /home/username/caddy/logs/wekan-access.log { + rotate { + size 100 # Rotate after 100 MB + age 7 # Keep log files for 7 days + keep 52 # Keep at most 52 log files + } + } + errors { + log /home/username/caddy/logs/wekan-error.log { + size 100 # Rotate after 100 MB + age 7 # Keep log files for 7 days + keep 52 # Keep at most 52 log files + } + } +} + +example.com/files { + root /home/username/files + # View files in directory, has sorting in browser + browse +} +``` + +Install Caddy. Change username to what user you run caddy, like in /home/username , and Let's Encrypt email to your email adderess: + +```bash +# Install caddy with some plugins +curl https://getcaddy.com | bash -s personal http.ipfilter,http.mailout,http.ratelimit,http.realip +``` + +# Give permissions to caddy to bind 80 and 443 + +``` +sudo setcap cap_net_bind_service=+ep /usr/local/bin/caddy +``` + +And this service file for Caddy to /etc/systemd/system/caddy@.service + +```bash +; see `man systemd.unit` for configuration details +; the man section also explains *specifiers* `%x` + +[Unit] +Description=Caddy HTTP/2 web server %I +Documentation=https://caddyserver.com/docs +After=network-online.target +Wants=network-online.target +Wants=systemd-networkd-wait-online.service + +[Service] +; run user and group for caddy +User=username +Group=username +ExecStart=/home/username/caddy/caddy -conf=/home/username/caddy/Caddyfile -agree -email="admin@example.com" +Restart=on-failure +StartLimitInterval=86400 +StartLimitBurst=5 +RestartSec=10 +ExecReload=/bin/kill -USR1 $MAINPID +; limit the number of file descriptors, see `man systemd.exec` for more limit settings +LimitNOFILE=1048576 +LimitNPROC=64 +; create a private temp folder that is not shared with other processes +PrivateTmp=true +PrivateDevices=true +ProtectSystem=full +CapabilityBoundingSet=CAP_NET_BIND_SERVICE +AmbientCapabilities=CAP_NET_BIND_SERVICE +NoNewPrivileges=true + +[Install] +WantedBy=multi-user.target +``` + +Start caddy and enable service: +``` +sudo systemctl daemon-reload +sudo systemctl start caddy@username +sudo systemctl enable caddy@username +``` diff --git a/docs/Webserver/Cron.md b/docs/Webserver/Cron.md new file mode 100644 index 000000000..469fb5433 --- /dev/null +++ b/docs/Webserver/Cron.md @@ -0,0 +1,57 @@ +(TODO: Try to integrate this inside WeKan Snap Candidate, or change code so that these would not be needed.) + +WeKan has some memory leaks. To prevent WeKan becoming slow, this Cron script restarts WeKan Snap once every hour. + +1) Edit /root/hourly.sh + +``` +sudo su + +apt -y install nano cron + +nano /root/hourly.sh +``` +2) There add this text: +``` +snap stop wekan.wekan + +snap start wekan.wekan + +# Wait 10 seconds +sleep 10 + +# Disable telemetry +/snap/wekan/current/usr/bin/mongosh wekan --eval 'disableTelemetry();' --port 27019 + +# Snap: Disable apparmor="DENIED" at syslog +# https://github.com/wekan/wekan/issues/4855 +/snap/wekan/current/usr/bin/mongosh wekan \ +--eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' \ +--port 27019 + +# Delete incomplete uploads so that they would not prevent starting WeKan +/snap/wekan/current/usr/bin/mongosh wekan \ +--eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' \ +--port 27019 +``` +3) Save and exit nano: Ctrl-o Enter Ctrl-x Enter + +4) Make hourly.sh script executeable, and edit cron: +``` +chmod +x /root/hourly.sh + +export EDITOR=nano + +crontab -e +``` +There at bottom, add this line, that will restart WeKan hourly, and log to textfile: +``` +0 * * * * /root/hourly.sh >> /root/hourly-log.txt 2>&1 +``` +5) Save and exit nano: Ctrl-o Enter Ctrl-x Enter + +6) You can also list content of cron: + +``` +crontab -l +``` \ No newline at end of file diff --git a/docs/wekan.wiki/Local-self-signed-TLS.md b/docs/Webserver/Local-self-signed-TLS.md similarity index 100% rename from docs/wekan.wiki/Local-self-signed-TLS.md rename to docs/Webserver/Local-self-signed-TLS.md diff --git a/docs/wekan.wiki/Nginx-Webserver-Config.md b/docs/Webserver/Nginx-Webserver-Config.md similarity index 100% rename from docs/wekan.wiki/Nginx-Webserver-Config.md rename to docs/Webserver/Nginx-Webserver-Config.md diff --git a/docs/wekan.wiki/Scaling.md b/docs/Webserver/Scaling.md similarity index 96% rename from docs/wekan.wiki/Scaling.md rename to docs/Webserver/Scaling.md index 8ab8a1ff1..104ffa87f 100644 --- a/docs/wekan.wiki/Scaling.md +++ b/docs/Webserver/Scaling.md @@ -1,6 +1,12 @@ -https://galaxy-guide.meteor.com/scaling +## How We Scaled Meteor JS to Handle 30,000 Concurrent Users at Propiedata -*** +- https://forums.meteor.com/t/first-steps-on-scaling-meteor-js/62570 + +## Meteor Galaxy Guide + +- https://galaxy-guide.meteor.com/scaling + +## Pods Reply from customer at 2023-09-29 about WeKan v7.08: diff --git a/docs/wekan.wiki/Settings.md b/docs/Webserver/Settings.md similarity index 100% rename from docs/wekan.wiki/Settings.md rename to docs/Webserver/Settings.md diff --git a/docs/wekan.wiki/Traefik-and-self-signed-SSL-certs.md b/docs/Webserver/Traefik-and-self-signed-SSL-certs.md similarity index 100% rename from docs/wekan.wiki/Traefik-and-self-signed-SSL-certs.md rename to docs/Webserver/Traefik-and-self-signed-SSL-certs.md diff --git a/nginx/nginx.conf b/docs/Webserver/nginx/nginx.conf similarity index 100% rename from nginx/nginx.conf rename to docs/Webserver/nginx/nginx.conf diff --git a/nginx/ssl/.gitkeep b/docs/Webserver/nginx/ssl/.gitkeep similarity index 100% rename from nginx/ssl/.gitkeep rename to docs/Webserver/nginx/ssl/.gitkeep diff --git a/docs/wekan.wiki/_Footer.md b/docs/_Footer.md similarity index 100% rename from docs/wekan.wiki/_Footer.md rename to docs/_Footer.md diff --git a/docs/wekan.wiki/_Sidebar.md b/docs/_Sidebar.md similarity index 97% rename from docs/wekan.wiki/_Sidebar.md rename to docs/_Sidebar.md index f5d314e37..a527809b4 100644 --- a/docs/wekan.wiki/_Sidebar.md +++ b/docs/_Sidebar.md @@ -6,7 +6,7 @@ * [Meteor WeKan Roadmap](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license) - board at Wekan demo * [Multiverse WeKan Roadmap](https://github.com/wekan/wekan/wiki/WeKan-Multiverse-Roadmap) * [Docs/Manual](https://github.com/wekan/wekan/discussions/4522) -* [Change Language](https://github.com/wekan/wekan/issues/4518#issuecomment-1133763518) +* [Change Language](Change-Language) * [Forgot Password](Forgot-Password) * [About](https://github.com/wekan/wekan/wiki) * [Test Edge](Test-Edge) @@ -33,7 +33,8 @@ # Scaling -* [Add more RAM to Node.js to prevent crash](https://github.com/wekan/wekan/issues/3585) +* [Cron: Hourly restart WeKan, because of memory leaks](Cron) +* [Maybe: Add more RAM to Node.js to prevent crash](https://github.com/wekan/wekan/issues/3585) * [Clustering AWS etc](AWS) * [Scaling](Scaling) * [Kubernetes](https://github.com/wekan/wekan/tree/main/helm/wekan) @@ -85,6 +86,7 @@ # Login Auth * [Automatic login](autologin) +* [Disable Password Login](Disable-Password-Login) * [Forgot Password](Forgot-Password) * [Admin: Impersonate user](Impersonate-user) * [Adding Users](Adding-users) @@ -127,6 +129,8 @@ # Features +* [Multiline](Multiline) +* [Linked Cards](Linked-Cards) * [Drag Drop](https://github.com/wekan/wekan/wiki/Drag-Drop) on Mobile and Desktop * [Rclone: Store attachments to cloud storage like S3, MinIO, etc](Rclone) * [Python based features](Python) diff --git a/docs/wekan.wiki/Caddy-Webserver-Config.md b/docs/wekan.wiki/Caddy-Webserver-Config.md deleted file mode 100644 index ffc1ea2c4..000000000 --- a/docs/wekan.wiki/Caddy-Webserver-Config.md +++ /dev/null @@ -1,281 +0,0 @@ -[Caddy 2 .well-known/assetlinks.json config for WeKan Android Play Store app](../PWA#fullscreen-android-app-with-caddy-and-wekan-server) - -## Caddy 2 - -WeKan Snap Candidate for any Snap distros: https://github.com/wekan/wekan/wiki/OpenSuse , disable internal old Caddy 1, when using Caddy 2: -``` -sudo snap set wekan caddy-enabled='false' -sudo snap set wekan port='3001' -sudo snap set wekan root-url='https://boards.example.com' -``` -More info about root-url at https://github.com/wekan/wekan/wiki/Settings - -Browser needs to have only one language https://github.com/wekan/wekan/issues/4803#issuecomment-1374354425 - -Install Caddy 2 stable release: https://caddyserver.com/docs/install#debian-ubuntu-raspbian - -Like this: -``` -sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https - -curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg - -curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list - -sudo apt update - -sudo apt -y install caddy -``` -Edit Caddyfile: - -``` -sudo nano /etc/caddy/Caddyfile -``` - -Example: - -``` -# Redirecting http to https - -(redirect) { - @http { - protocol http - } - redir @http https://{host}{uri} -} - -# WeKan board, proxy to localhost port, or IP-ADDRESS:PORT -boards.example.com { - tls { - load /var/snap/wekan/common/certs - alpn http/1.1 - } - - reverse_proxy 127.0.0.1:3025 -} - -# Static website -example.com { - tls { - load /var/snap/wekan/common/certs - alpn http/1.1 - } - root * /var/websites/wekan.team - file_server -} - -# Files download directory browse website -files.example.com { - root * /var/websites/ftp.secretchronicles.org/public - file_server browse -} -``` - -Caddy commands list: -``` -caddy help -``` - - -*** - -[Caddy OAuth2 with Let's Encrypt SSL example](OAuth2) - -*** - -## CloudFlare free wildcard SSL *start* - -Also works with other SSL certs. - -### 1) Requirements: You have changed nameservers to CloudFlare. - -### 2) Get CloudFlare SSL wildcard Origin Certificate - -Go to CloudFlare login/example.com/Crypto/Origin Certificates. -Create and download certs for `*.example.com, example.com` - -### 3) Create directory /var/snap/wekan/common/certs -``` -sudo su -cd /var/snap/wekan/common -mkdir certs -cd certs -``` -### 4) Create cert file -Create file: `example.com.pem` with content of CloudFlare Origin Certificates. -``` -nano example.com.pem -``` -There add certs: -``` ------BEGIN PRIVATE KEY----- ------END PRIVATE KEY----- ------BEGIN CERTIFICATE----- ------END CERTIFICATE----- -``` - -Then Save: Ctrl-o Enter - -Then Exit: Ctrl-x. - -### 5) Set permissions rw-r--r-- to example.com.pem: -``` -chmod 644 example.com.pem -``` - -### 6) Edit Caddy webserver config -``` -sudo nano /var/snap/wekan/common/Caddyfile -``` -There change config: -``` -http://example.com https://example.com { - tls { - load /var/snap/wekan/common/certs - alpn http/1.1 - } - proxy / localhost:3001 { - websocket - transparent - } -} -``` -Save: Ctrl-o Enter - -Exit: Ctrl-x - -Enable Caddy: -``` -sudo snap set wekan caddy-enabled='true' -sudo snap set wekan port='3001' -sudo snap set wekan root-url='https://example.com' -``` - -### 7) Enable CloudFlare SSL - -Click CloudFlare login/example.com/DNS. - -Check that status of your domains have orange cloud color, so traffic goes through CloudFlare SSL. - -Click CloudFlare login/example.com/Page Rules. -Set for example: -``` -1) http://example.com/* -Always Use HTTPS -2) http://*.example.com/* -Always use HTTPS -``` -Optionally, if you want caching: -``` -3) *example.com/* -Cache Level: Cache Everything -``` -## CloudFlare free wildcard SSL *end* - -*** - -## Other config stuff - -[List of Let's Encrypt implementations](https://community.letsencrypt.org/t/list-of-client-implementations/2103) - -## Caddy webserver config with logs - -Create directory for caddy, website and logs: -```bash -mkdir -p ~/caddy/example.com ~/caddy/logs -``` - -Add this config to ~/caddy/Caddyfile - -There's also some extra examples. - -```bash -example.com { - root /home/username/caddy/example.com - # Static website, markdown or html - ext .md .html - - proxy /wekan 127.0.0.1:3000 { - websocket - } - - log /home/username/caddy/logs/wekan-access.log { - rotate { - size 100 # Rotate after 100 MB - age 7 # Keep log files for 7 days - keep 52 # Keep at most 52 log files - } - } - errors { - log /home/username/caddy/logs/wekan-error.log { - size 100 # Rotate after 100 MB - age 7 # Keep log files for 7 days - keep 52 # Keep at most 52 log files - } - } -} - -example.com/files { - root /home/username/files - # View files in directory, has sorting in browser - browse -} -``` - -Install Caddy. Change username to what user you run caddy, like in /home/username , and Let's Encrypt email to your email adderess: - -```bash -# Install caddy with some plugins -curl https://getcaddy.com | bash -s personal http.ipfilter,http.mailout,http.ratelimit,http.realip -``` - -# Give permissions to caddy to bind 80 and 443 - -``` -sudo setcap cap_net_bind_service=+ep /usr/local/bin/caddy -``` - -And this service file for Caddy to /etc/systemd/system/caddy@.service - -```bash -; see `man systemd.unit` for configuration details -; the man section also explains *specifiers* `%x` - -[Unit] -Description=Caddy HTTP/2 web server %I -Documentation=https://caddyserver.com/docs -After=network-online.target -Wants=network-online.target -Wants=systemd-networkd-wait-online.service - -[Service] -; run user and group for caddy -User=username -Group=username -ExecStart=/home/username/caddy/caddy -conf=/home/username/caddy/Caddyfile -agree -email="admin@example.com" -Restart=on-failure -StartLimitInterval=86400 -StartLimitBurst=5 -RestartSec=10 -ExecReload=/bin/kill -USR1 $MAINPID -; limit the number of file descriptors, see `man systemd.exec` for more limit settings -LimitNOFILE=1048576 -LimitNPROC=64 -; create a private temp folder that is not shared with other processes -PrivateTmp=true -PrivateDevices=true -ProtectSystem=full -CapabilityBoundingSet=CAP_NET_BIND_SERVICE -AmbientCapabilities=CAP_NET_BIND_SERVICE -NoNewPrivileges=true - -[Install] -WantedBy=multi-user.target -``` - -Start caddy and enable service: -``` -sudo systemctl daemon-reload -sudo systemctl start caddy@username -sudo systemctl enable caddy@username -``` \ No newline at end of file diff --git a/docs/wekan.wiki/Design-Principles.md b/docs/wekan.wiki/Design-Principles.md deleted file mode 100644 index c94995b5e..000000000 --- a/docs/wekan.wiki/Design-Principles.md +++ /dev/null @@ -1,23 +0,0 @@ -## WeKan Design Principles - -- Prevent messing up something https://github.com/wekan/wekan/wiki/Monkey-Proof-Software -- Original WeKan Design, that WeKan currently has: Intuitive, easy to figure out, polished UI/UX, menu options are there where you would expect then to be. Try to fix anything unexpected. New features added there where it makes most sense. And not so many duplicate menus and texts like Trello. -- Not the exact design of Trello https://github.com/wekan/wekan/wiki/FAQ#why-does-wekan-look-so-different-now-compared-to--v09 . Also not the exact design of any other software. But note that design of all software changes often, when they are in active development. -- Some features like Trello: - - Import from Trello - - Shortcuts https://github.com/wekan/wekan/issues/1878 - - IFTTT Rules like Trello Butler https://github.com/wekan/wekan/wiki/IFTTT - - Progress bar of checklist -- Some features like Jira: - - Multiple assignees -- Some features not in Trello, like: - - FOSS with MIT license - - Self-hosting - - Swimlanes -- All the use cases of WeKan feature/fix contributors -- Cross-platform. Support many CPU/OS/Browsers for Desktop and Mobile. Add support for more. - - https://github.com/wekan/wekan/wiki/Browser-compatibility-matrix - - https://github.com/wekan/wekan/wiki/PWA - - https://github.com/wekan/wekan/wiki/Offline - - https://github.com/wekan/wekan/wiki/Mac - - https://github.com/wekan/wekan/wiki/Raspberry-Pi \ No newline at end of file diff --git a/docs/wekan.wiki/Emoji.md b/docs/wekan.wiki/Emoji.md deleted file mode 100644 index e69701cf6..000000000 --- a/docs/wekan.wiki/Emoji.md +++ /dev/null @@ -1,76 +0,0 @@ -## About markdown changes - -Wekan v4.29 changes markdown rendering from [marked](https://github.com/markedjs/marked) to [markdown-it](https://github.com/markdown-it/markdown-it). - -## About emoji - -With markdown-it, also [markdown-it-emoji](https://github.com/markdown-it/markdown-it-emoji) plugin has been added, supporting [full list of GitHub emojis](https://github.com/markdown-it/markdown-it-emoji/blob/master/lib/data/full.json). - -Example emoji code, that you can add for example to card name, card description etc: -``` -:rainbow: :thumbsup: :100: -``` -That shows emojis :rainbow: :thumbsup: :100: - -## About other markdown-it plugins - -For markdown-it, there are also other [syntax extensions](https://github.com/markdown-it/markdown-it#syntax-extensions) where some are listed at that markdown-it page, and [others at npmjs.com](https://www.npmjs.org/browse/keyword/markdown-it-plugin). - -For example, how to get some [mermaid plugin](https://www.npmjs.com/search?q=markdown-it-mermaid) working so that some syntax works for https://mermaid-js.github.io/mermaid/ ? - -## How you could add another plugin - -Using newest Ubuntu amd64: - -### 1. Install git and configure it -``` -sudo apt -y install git -git config --global user.name "Yourfirstname Yourlastname" -git config --global user.email email-address-you-use-at-github@example.com -git config --global push.default simple -``` - -### 2. Create fork of `https://github.com/wekan/wekan` -``` -git clone git@github.com:YourGithubUsername/wekan.git -cd wekan -./rebuild-wekan.sh -``` -### 3. Select option 1 to install dependencies, and then Enter. -``` -./rebuild-wekan.sh -``` -### 4. Select option 2 to build Wekan, and then Enter - -### 5. Add new plugin package -``` -meteor npm install markdown-it-something --save -``` -### 5. Edit file - -Edit file `wekan/packages/markdown/src-integration.js` and add using that new package, using code example from that new plugin page, or similar like emoji plugin was added. - -### 6. Start meteor in Wekan directory - -For example: -``` -WRITABLE_PATH=.. meteor --port 4000 -``` -And then [register and login](Adding-users) at http://localhost:4000 - - -### 7. Test - -Test does that new plugin syntax work, for example in card title, card description etc on other input fields. - -### 8. If it works - -If normal markdown, emoji, and your new added plugin syntax all work, commit your changes: -``` -git add --all -git commit -m "Added plugin markdown-it-something." -git push -``` -And then at your GitHub for `https://github.com/YOUR-GITHUB-USERNAME/wekan` click `Create pull request`. - - diff --git a/docs/wekan.wiki/Meteor.md b/docs/wekan.wiki/Meteor.md deleted file mode 100644 index d0abf135f..000000000 --- a/docs/wekan.wiki/Meteor.md +++ /dev/null @@ -1,18 +0,0 @@ -## Upgrading Meteor - -- Disclaimer: - - These are opinions about upgrading, from xet7, maintainer of WeKan Open Source kanban https://wekan.github.io - - xet7 thinks, that it is good to keep using current frontend and backend frameworks, upgrade them when possible. If there is any problems, ask at https://forums.meteor.com - - xet7 thinks, that upgrading to newest Meteor 2 and Meteor 3 is being made more easier all the time, when new dependencies become available, any bugs are fixed, etc. So it is good to make all possible upgrading steps available. -- Upgrade to newest 2.14 https://guide.meteor.com/2.14-migration . Currently xet7 is using newest 2.14.1-beta.0 in production release of WeKan https://forums.meteor.com/t/meteor-v2-14-1-beta-0-is-out/61142 -- Prepare for 3.0 https://guide.meteor.com/3.0-migration -- Migrate Async - - Helper tool https://forums.meteor.com/t/blaze-async-migration-helper-babel-plugin-tracker-async-enhance-for-the-client-side-released/60842 - - https://guide.meteor.com/prepare-meteor-3.0 -- Look at progress of migrated packages https://forums.meteor.com/t/looking-for-help-migrating-packages-to-meteor-3-0/60985 -- Add Eslint 3 and fix anything found - - https://youtu.be/rFjNNNc_7-E - - https://github.com/quavedev/eslint-plugin - - https://github.com/quavedev/meteor-template/pull/8 -- Watch Meteor Dispatches etc Podcasts https://www.youtube.com/@meteorjscommunity/playlists - - Some recent also had info, how to make dependencies compatible with both Meteor 2 and Meteor 3 diff --git a/docs/wekan.wiki/Requirements.md b/docs/wekan.wiki/Requirements.md deleted file mode 100644 index c060964e2..000000000 --- a/docs/wekan.wiki/Requirements.md +++ /dev/null @@ -1,8 +0,0 @@ -Wekan works on x64. There is not yet version for [Raspberry Pi](https://github.com/wekan/wekan/issues/1053). - -Wekan requires MongoDB 3.2.x . For other requirements and versions see [VirtualBox scripts](https://github.com/wekan/wekan-maintainer/tree/master/virtualbox) or [Dockerfile](https://github.com/wekan/wekan/blob/main/Dockerfile). - -Known bugs with other versions: -- Node 6.x: 100% CPU usage. -- MongoDB 3.4.x: Wekan crashes when uploading attachment. -- [Hardened kernel prevents creating new Wekan boards at Sandstorm](https://github.com/wekan/wekan/issues/1398) diff --git a/docs/wekan.wiki/SAML.md b/docs/wekan.wiki/SAML.md deleted file mode 100644 index b542b2d97..000000000 --- a/docs/wekan.wiki/SAML.md +++ /dev/null @@ -1,17 +0,0 @@ -Related SAML code, not in WeKan yet: https://forums.meteor.com/t/what-are-you-working-on/59187 - -[SAML Issue](https://github.com/wekan/wekan/issues/708) - -[SAML settings commit](https://github.com/wekan/wekan/commit/214c86cc22f4c721a79ec0a4a4f3bbd90d673f93) - -Currently has code from https://github.com/steffow/meteor-accounts-saml/ copied to `wekan/packages/meteor-accounts-saml` - -Does not yet have [fixes from RocketChat SAML](https://github.com/RocketChat/Rocket.Chat/tree/develop/app/meteor-accounts-saml) - -Please add pull requests if it does not work. - -Wekan clientside code is at `wekan/client/components/main/layouts.*` - -Wekan serverside code is at: -- `wekan/server/authentication.js` at bottom -- `wekan/packages/meteor-accounts-saml/*` \ No newline at end of file diff --git a/find-replace.sh b/find-replace.sh index 522affab9..d93a1ba0b 100755 --- a/find-replace.sh +++ b/find-replace.sh @@ -2,4 +2,4 @@ # Recursive find/replace. # Syntax: ./find-replace.sh searchtext replacetext -egrep -lRZ '$1' . | xargs -0 -l sed -i -e 's/$1/$2/g' +grep -E -lRZ '$1' . | xargs -0 -l sed -i -e 's/$1/$2/g' diff --git a/imports/i18n/data/af.i18n.json b/imports/i18n/data/af.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/af.i18n.json +++ b/imports/i18n/data/af.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/af_ZA.i18n.json b/imports/i18n/data/af_ZA.i18n.json index eb6e8b0bf..e756e6377 100644 --- a/imports/i18n/data/af_ZA.i18n.json +++ b/imports/i18n/data/af_ZA.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "geskuif na Argief", "activity-attached": "aangeheg", "activity-created": "geskep", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "pasgemaakte veld geskep", "activity-excluded": "uitgesluit", "activity-imported": "ingevoer in van", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ar-DZ.i18n.json b/imports/i18n/data/ar-DZ.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/ar-DZ.i18n.json +++ b/imports/i18n/data/ar-DZ.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ar-EG.i18n.json b/imports/i18n/data/ar-EG.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/ar-EG.i18n.json +++ b/imports/i18n/data/ar-EG.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index 6066ee1be..800d0743b 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s انتقل الى الارشيف", "activity-attached": "إرفاق %s ل %s", "activity-created": "أنشأ %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "%s احدت حقل مخصص", "activity-excluded": "استبعاد %s عن %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "إضافة بطاقة", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "قوائم التّدقيق", "click-to-star": "اضغط لإضافة اللوحة للمفضلة.", "click-to-unstar": "اضغط لحذف اللوحة من المفضلة.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "غلق", "close-board": "غلق اللوحة", @@ -294,6 +300,7 @@ "color-white": "أبيض", "color-yellow": "yellow", "unset-color": "غير محدد", + "comments": "Comments", "comment": "تعليق", "comment-placeholder": "أكتب تعليق", "comment-only": "التعليق فقط", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -403,10 +411,10 @@ "user-can-not-export-card-to-pdf": "User can not export card to PDF", "exportBoardPopup-title": "Export board", "exportCardPopup-title": "Export card", - "sort": "Sort", - "sorted": "Sorted", - "remove-sort": "Remove sort", - "sort-desc": "Click to Sort List", + "sort": "رتب", + "sorted": "مرتبة", + "remove-sort": "إزالة الفرز\n ", + "sort-desc": "انقر لفرز القائمة\n ", "list-sort-by": "Sort the List By:", "list-label-modifiedAt": "Last Access Time", "list-label-title": "Name of the List", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "الإسم الكامل", "header-logo-title": "الرجوع إلى صفحة اللوحات", - "hide-system-messages": "إخفاء رسائل النظام", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "إنشاء لوحة", "home": "الرئيسية", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "الإكمال التلقائي للرموز التعبيرية", "shortcut-autocomplete-members": "الإكمال التلقائي لأسماء الأعضاء", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "الوقت", "title": "عنوان", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "تتبع", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "روابط", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "النظام الأصلي\n ", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "نص", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "انهيار", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ary.i18n.json b/imports/i18n/data/ary.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/ary.i18n.json +++ b/imports/i18n/data/ary.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ast-ES.i18n.json b/imports/i18n/data/ast-ES.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/ast-ES.i18n.json +++ b/imports/i18n/data/ast-ES.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/az-AZ.i18n.json b/imports/i18n/data/az-AZ.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/az-AZ.i18n.json +++ b/imports/i18n/data/az-AZ.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/az-LA.i18n.json b/imports/i18n/data/az-LA.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/az-LA.i18n.json +++ b/imports/i18n/data/az-LA.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/az.i18n.json b/imports/i18n/data/az.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/az.i18n.json +++ b/imports/i18n/data/az.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/bg.i18n.json b/imports/i18n/data/bg.i18n.json index 1a7f6d274..36ffe06f4 100644 --- a/imports/i18n/data/bg.i18n.json +++ b/imports/i18n/data/bg.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s е преместена в Архива", "activity-attached": "прикачи %s към %s", "activity-created": "създаде %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "създаде собствено поле %s", "activity-excluded": "изключи %s от %s", "activity-imported": "импортира %s в/във %s от %s", @@ -85,10 +86,12 @@ "add-card": "Добави карта", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Списъци със задачи", "click-to-star": "Click to star this board.", "click-to-unstar": "Натиснете, за да премахнете това табло от любими.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Клипборда или с драг & дроп", "close": "Затвори", "close-board": "Затвори Таблото", @@ -294,6 +300,7 @@ "color-white": "бяло", "color-yellow": "жълто", "unset-color": "Премахни", + "comments": "Comments", "comment": "Коментирай", "comment-placeholder": "Напиши коментар", "comment-only": "Само коментар", @@ -376,6 +383,7 @@ "email-sent": "Имейлът е изпратен", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Включи WIP лимита", "error-board-doesNotExist": "Това табло не съществува", "error-board-notAdmin": "За да направите това трябва да сте администратор на това табло", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Име", "header-logo-title": "Назад към страницата с Вашите табла.", - "hide-system-messages": "Скриване на системните съобщения", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Създай Табло", "home": "Начало", "import": "Импорт", @@ -572,6 +580,7 @@ "select-board": "Изберете табло", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Въведи WIP лимит", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Добави себе си към тази карта", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Има карти с изработено време", "time": "Време", "title": "Заглавие", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Следене", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Задача", "create-task": "Добави задача", "ok": "Окей", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Текст", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Събери", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index b07bf0820..695b21cc7 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "%s liammet ouzh %s", "activity-created": "%s krouet", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "%s enporzhiet eus %s da %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "melen", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -312,7 +319,7 @@ "copy-card-link-to-clipboard": "Copy card link to clipboard", "copy-text-to-clipboard": "Copy text to clipboard", "linkCardPopup-title": "Link Card", - "searchElementPopup-title": "Search", + "searchElementPopup-title": "Klask", "copyCardPopup-title": "Copy Card", "copyManyCardsPopup-title": "Copy Template to Many Cards", "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -564,7 +572,7 @@ "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions", "rescue-card-description-dialogue": "Overwrite current card description with your changes?", "save": "Save", - "search": "Search", + "search": "Klask", "rules": "Rules", "search-cards": "Search from card/list titles, descriptions and custom fields on this board", "search-example": "Write text you search and press Enter", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ca.i18n.json b/imports/i18n/data/ca.i18n.json index 38161b949..7ff6f51f8 100644 --- a/imports/i18n/data/ca.i18n.json +++ b/imports/i18n/data/ca.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s mogut al Arxiu", "activity-attached": "ha adjuntat %s a %s", "activity-created": "ha creat %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "camp personalitzat creat %s", "activity-excluded": "ha exclòs %s de %s", "activity-imported": "important %s troba %s des de %s", @@ -85,10 +86,12 @@ "add-card": "Afegeix Fitxa", "add-card-to-top-of-list": "Afegeix una fitxa al principi de la llista", "add-card-to-bottom-of-list": "Afegeix una fitxa al final de la llista", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Llistes de verificació", "click-to-star": "Fes clic per destacar aquest tauler.", "click-to-unstar": "Fes clic per deixar de destacar aquest tauler.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Portaretalls o estirar i amollar", "close": "Tanca", "close-board": "Tanca tauler", @@ -294,6 +300,7 @@ "color-white": "blanc", "color-yellow": "groc", "unset-color": "Desactivat", + "comments": "Comments", "comment": "Comentari", "comment-placeholder": "Escriu un comentari", "comment-only": "Només comentaris", @@ -376,6 +383,7 @@ "email-sent": "Correu enviat", "email-verifyEmail-subject": "Verifiqueu la vostra adreça de correu electrònic a __siteName__", "email-verifyEmail-text": "Hola __user__,\n\n per verificar el teu correu, segueix l'enllaç següent.\n\n __url__\n\n Gràcies.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Activa i Límit de Treball en Progrés", "error-board-doesNotExist": "Aquest tauler no existeix", "error-board-notAdmin": "Necessites ser administrador d'aquest tauler per dur a lloc aquesta acció", @@ -443,7 +451,7 @@ "advanced-filter-description": "El filtre avançat permet escriure una cadena que contingui els operadors següents: == != <= >= && || ( ) S'utilitza un espai com a separador entre els operadors. Podeu filtrar tots els camps personalitzats escrivint els seus noms i valors. Per exemple: Camp1 == Valor1. Nota: si els camps o els valors contenen espais, cal que els encapsuleu en cometes simples. Per exemple: \"Camp 1\" == \"Valor 1\". Per ometre caràcters de control únics (' \\\\/), podeu utilitzar \\\\. Per exemple: Camp1 == I\\\\'m. També podeu combinar diverses condicions. Per exemple: F1 == V1 || F1 == V2. Normalment, tots els operadors s'interpreten d'esquerra a dreta. Podeu canviar l'ordre posant parèntesis. Per exemple: F1 == V1 && ( F2 == V2 || F2 == V3 ). També podeu cercar camps de text amb regex: F1 == /Tes.*/i", "fullname": "Nom complet", "header-logo-title": "Torna a la teva pàgina de taulers", - "hide-system-messages": "Oculta missatges del sistema", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Crea tauler", "home": "Inici", "import": "importa", @@ -572,6 +580,7 @@ "select-board": "Selecciona tauler", "set-wip-limit-value": "Limita el nombre màxim de tasques en aquesta llista", "setWipLimitPopup-title": "Configura el Límit de Treball en Progrés", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assigna't la ftixa actual", "shortcut-autocomplete-emoji": "Emoji autocompletat", "shortcut-autocomplete-members": "Autocompleta membres", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Té fitxes amb temps dedicats", "time": "Hora", "title": "Títol", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Canvia les etiquetes 1-9 per a la fitxa. La selecció múltiple afegeix les etiquetes 1-9", "remove-labels-multiselect": "La selecció múltiple elimina les etiquetes 1-9", "tracking": "En seguiment", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "No podeu suprimir aquesta fitxa abans de suprimir per primera vegada la fitxa enllaçada que té", "delete-linked-cards-before-this-list": "No podeu suprimir aquesta llista abans de suprimir primer les fitxes enllaçades que apunten a fitxes d'aquesta llista", "hide-checked-items": "Amaga els elements marcats", + "hide-finished-checklist": "Hide finished checklist", "task": "Tasca", "create-task": "Crea una tasca", "ok": "D'acord", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Creat a (el més nou primer)", "created-at-oldest-first": "Creat a (el més antic primer)", "links-heading": "Enllaços", - "hide-system-messages-of-all-users": "Amaga els missatges del sistema de tots els usuaris", - "now-system-messages-of-all-users-are-hidden": "Ara els missatges del sistema de tots els usuaris estan ocults", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Mou el carril", "moveSwimlanePopup-title": "Mou el carril", "custom-field-stringtemplate": "Plantilla de cadena", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Accions de checklist", "moveChecklist": "Mou el checklist", "moveChecklistPopup-title": "Mou el checklist", - "newlineBecomesNewChecklistItem": "La nova línia es converteix en un nou element del checklist", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copia el checklist", "copyChecklistPopup-title": "Copia el checklist", "card-show-lists": "Llistes de mostres de fitxes", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Contraure", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ca_ES.i18n.json b/imports/i18n/data/ca_ES.i18n.json index 1f62bb65b..e87e7f1c3 100644 --- a/imports/i18n/data/ca_ES.i18n.json +++ b/imports/i18n/data/ca_ES.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "El filtre avançat permet escriure una cadena que contingui els operadors següents: == != <= >= && || ( ) S'utilitza un espai com a separador entre els operadors. Podeu filtrar tots els camps personalitzats escrivint els seus noms i valors. Per exemple: Camp1 == Valor1. Nota: si els camps o els valors contenen espais, cal que els encapsuleu en cometes simples. Per exemple: \"Camp 1\" == \"Valor 1\". Per ometre caràcters de control únics (' \\\\/), podeu utilitzar \\\\. Per exemple: Camp1 == I\\\\'m. També podeu combinar diverses condicions. Per exemple: F1 == V1 || F1 == V2. Normalment, tots els operadors s'interpreten d'esquerra a dreta. Podeu canviar l'ordre posant parèntesis. Per exemple: F1 == V1 && ( F2 == V2 || F2 == V3 ). També podeu cercar camps de text amb regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/cmn.i18n.json b/imports/i18n/data/cmn.i18n.json index ca3549894..72d99aaa3 100644 --- a/imports/i18n/data/cmn.i18n.json +++ b/imports/i18n/data/cmn.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "高级过滤器可以使用包含如下操作符的字符串进行过滤:== != <= >= && || ( ) 。操作符之间用空格隔开。输入字段名和数值就可以过滤所有自定义字段。例如:Field1 == Value1。注意如果字段名或数值包含空格,需要用单引号。例如: 'Field 1' == 'Value 1'。要跳过单个控制字符(' \\\\/),请使用 \\\\ 转义字符。例如: Field1 = I\\\\'m。支持组合使用多个条件,例如: F1 == V1 || F1 == V2。通常以从左到右的顺序进行判断。可以通过括号修改顺序,例如:F1 == V1 && ( F2 == V2 || F2 == V3 )。也支持使用正则表达式搜索文本字段。", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/cs-CZ.i18n.json b/imports/i18n/data/cs-CZ.i18n.json index faf076bcf..51e07ec5d 100644 --- a/imports/i18n/data/cs-CZ.i18n.json +++ b/imports/i18n/data/cs-CZ.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s bylo přesunuto do archivu", "activity-attached": "přiloženo %s k %s", "activity-created": "%s vytvořeno", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "vytvořeno vlastní pole %s", "activity-excluded": "%s vyjmuto z %s", "activity-imported": "importován %s do %s z %s", @@ -85,10 +86,12 @@ "add-card": "Přidat kartu", "add-card-to-top-of-list": "Přidat kartu na začátek seznamu", "add-card-to-bottom-of-list": "Přidat kartu na konec seznamu", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklisty", "click-to-star": "Kliknutím přidat hvězdičku tomuto tablu.", "click-to-unstar": "Kliknutím odebrat hvězdičku tomuto tablu.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Schránka nebo potáhnout a pustit", "close": "Zavřít", "close-board": "Zavřít tablo", @@ -294,6 +300,7 @@ "color-white": "bílá", "color-yellow": "žlutá", "unset-color": "Nenastaveno", + "comments": "Comments", "comment": "Komentář", "comment-placeholder": "Text komentáře", "comment-only": "Pouze komentáře", @@ -376,6 +383,7 @@ "email-sent": "Email byl odeslán", "email-verifyEmail-subject": "Ověř svou emailovou adresu na", "email-verifyEmail-text": "Ahoj __user__,\n\nPro ověření emailové adresy klikni na odkaz níže.\n\n__url__\n\nDěkujeme.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Povolit WIP Limit", "error-board-doesNotExist": "Toto tablo neexistuje", "error-board-notAdmin": "K provedení změny musíš být administrátor tohoto tabla", @@ -443,7 +451,7 @@ "advanced-filter-description": "Pokročilý filtr dovoluje zapsat řetězec následujících operátorů: == != <= >= && || () Operátory jsou odděleny mezerou. Můžete filtrovat všechny vlastní pole zadáním jejich názvů nebo hodnot. Například: Pole1 == Hodnota1. Poznámka: Pokud pole nebo hodnoty obsahují mezery, je potřeba je obalit v jednoduchých uvozovkách. Například: 'Pole 1' == 'Hodnota 1'. Pro ignorovaní kontrolních znaků (' \\\\/) je možné použít \\\\. Například Pole1 == I\\\\'m. Můžete také kombinovat více podmínek. Například P1 == H1 || P1 == H2. Obvykle jsou operátory interpretovány zleva doprava. Jejich pořadí můžete měnit pomocí závorek. Například: P1 == H1 && ( P2 == H2 || P2 == H3 )", "fullname": "Celé jméno", "header-logo-title": "Jit zpět na stránku s tably.", - "hide-system-messages": "Skrýt systémové zprávy", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Vytvořit tablo", "home": "Domů", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Vybrat tablo", "set-wip-limit-value": "Nastaví limit pro maximální počet úkolů ve sloupci.", "setWipLimitPopup-title": "Nastavit WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Přiřadit sebe k aktuální kartě", "shortcut-autocomplete-emoji": "Automatické dokončování emoji", "shortcut-autocomplete-members": "Automatický výběr uživatel", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Obsahuje karty se stráveným časem", "time": "Čas", "title": "Název", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Pozorující", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Tuto kratu nemůžete odstranit dokud nesmažete přiřazené karty", "delete-linked-cards-before-this-list": "Tento sloupec nemůžete smazat dokud nesmažete propojené karty, které jsou navázány na karty v tomto sloupci", "hide-checked-items": "Skrýt zvolené položky", + "hide-finished-checklist": "Hide finished checklist", "task": "Úkol", "create-task": "Vytvořit úkol", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Vyvtořeno (Od nejnovějších)", "created-at-oldest-first": "Vytvořeno (Od nejstarších)", "links-heading": "Odkazy", - "hide-system-messages-of-all-users": "Skrýt systémové zprávy všech uživatelů", - "now-system-messages-of-all-users-are-hidden": "Systémové zprávy všech uživatelů jsou nyní skryté", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Přesunout dráhu", "moveSwimlanePopup-title": "Přesunout dráhu", "custom-field-stringtemplate": "Šablona řetězce", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Sbalit", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/cs.i18n.json b/imports/i18n/data/cs.i18n.json index 3eadade68..e529b4195 100644 --- a/imports/i18n/data/cs.i18n.json +++ b/imports/i18n/data/cs.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s bylo přesunuto do archivu", "activity-attached": "přiloženo %s k %s", "activity-created": "%s vytvořeno", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "vytvořeno vlastní pole %s", "activity-excluded": "%s vyjmuto z %s", "activity-imported": "importován %s do %s z %s", @@ -85,14 +86,16 @@ "add-card": "Přidat kartu", "add-card-to-top-of-list": "Přidat kartu na začátek seznamu", "add-card-to-bottom-of-list": "Přidat kartu na konec seznamu", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", - "setSwimlaneHeightPopup-title": "Set Swimlane Height", - "set-swimlane-height": "Set Swimlane Height", - "set-swimlane-height-value": "Swimlane Height (pixels)", - "swimlane-height-error-message": "Swimlane height must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "setSwimlaneHeightPopup-title": "Nastavit výšku swimlane", + "set-swimlane-height": "Nastavit výšku swimlane", + "set-swimlane-height-value": "Výška swimlane (pixely)", + "swimlane-height-error-message": "Výška swimlane musí být celé kladné číslo", "add-swimlane": "Přidat Swimlane", "add-subtask": "Přidat Podúkol", "add-checklist": "Přidat zaškrtávací seznam", @@ -100,10 +103,10 @@ "close-add-checklist-item": "Close add an item to checklist form", "close-edit-checklist-item": "Close edit an item to checklist form", "convertChecklistItemToCardPopup-title": "Převést na kartu", - "add-cover": "Add cover image to minicard", + "add-cover": "Přidat titulní obrázek k minikartě", "add-label": "Přidat štítek", "add-list": "Přidat sloupec", - "add-after-list": "Add After List", + "add-after-list": "Přidat za seznam", "add-members": "Přidat členy", "added": "Přidán", "addMemberPopup-title": "Členové", @@ -143,13 +146,13 @@ "attachmentDeletePopup-title": "Smazat přílohu?", "attachments": "Přílohy", "auto-watch": "Automaticky sleduj tabla když jsou vytvořena", - "avatar-too-big": "The avatar is too large (__size__ max)", + "avatar-too-big": "Avatar je příliš velký (__size__ max)", "back": "Zpět", "board-change-color": "Změnit barvu", - "board-change-background-image": "Change Background Image", - "board-background-image-url": "Background Image URL", - "add-background-image": "Add Background Image", - "remove-background-image": "Remove Background Image", + "board-change-background-image": "Změnit obrázek na pozadí", + "board-background-image-url": "URL obrázku na pozadí", + "add-background-image": "Přidat obrázek na pozadí", + "remove-background-image": "Odstranit obrázek z pozadí", "show-at-all-boards-page" : "Show at All Boards page", "board-info-on-my-boards" : "All Boards Settings", "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", @@ -162,9 +165,9 @@ "board-public-info": "Toto tablo bude veřejné.", "board-drag-drop-reorder-or-click-open": "Přetažením změníte pořadí ikon tabel. Kliknutím otevřete tablo.", "boardChangeColorPopup-title": "Změnit pozadí tabla", - "boardChangeBackgroundImagePopup-title": "Change Background Image", + "boardChangeBackgroundImagePopup-title": "Změnit obrázek na pozadí", "allBoardsChangeColorPopup-title": "Změnit barvu", - "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeBackgroundImagePopup-title": "Změnit obrázek na pozadí", "boardChangeTitlePopup-title": "Přejmenovat tablo", "boardChangeVisibilityPopup-title": "Upravit viditelnost", "boardChangeWatchPopup-title": "Změnit sledování", @@ -263,6 +266,9 @@ "checklists": "Checklisty", "click-to-star": "Kliknutím přidat hvězdičku tomuto tablu.", "click-to-unstar": "Kliknutím odebrat hvězdičku tomuto tablu.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Schránka nebo potáhnout a pustit", "close": "Zavřít", "close-board": "Zavřít tablo", @@ -294,6 +300,7 @@ "color-white": "bílá", "color-yellow": "žlutá", "unset-color": "Nenastaveno", + "comments": "Comments", "comment": "Komentář", "comment-placeholder": "Text komentáře", "comment-only": "Pouze komentáře", @@ -376,6 +383,7 @@ "email-sent": "Email byl odeslán", "email-verifyEmail-subject": "Ověř svou emailovou adresu na", "email-verifyEmail-text": "Ahoj __user__,\n\nPro ověření emailové adresy klikni na odkaz níže.\n\n__url__\n\nDěkujeme.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Povolit WIP Limit", "error-board-doesNotExist": "Toto tablo neexistuje", "error-board-notAdmin": "K provedení změny musíš být administrátor tohoto tabla", @@ -443,7 +451,7 @@ "advanced-filter-description": "Pokročilý filtr dovoluje zapsat řetězec následujících operátorů: == != <= >= && || () Operátory jsou odděleny mezerou. Můžete filtrovat všechny vlastní pole zadáním jejich názvů nebo hodnot. Například: Pole1 == Hodnota1. Poznámka: Pokud pole nebo hodnoty obsahují mezery, je potřeba je obalit v jednoduchých uvozovkách. Například: 'Pole 1' == 'Hodnota 1'. Pro ignorovaní kontrolních znaků (' \\\\/) je možné použít \\\\. Například Pole1 == I\\\\'m. Můžete také kombinovat více podmínek. Například P1 == H1 || P1 == H2. Obvykle jsou operátory interpretovány zleva doprava. Jejich pořadí můžete měnit pomocí závorek. Například: P1 == H1 && ( P2 == H2 || P2 == H3 )", "fullname": "Celé jméno", "header-logo-title": "Jit zpět na stránku s tably.", - "hide-system-messages": "Skrýt systémové zprávy", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Vytvořit tablo", "home": "Domů", "import": "Import", @@ -532,8 +540,8 @@ "normal": "Normální", "normal-desc": "Může zobrazovat a upravovat karty. Nemůže měnit nastavení.", "not-accepted-yet": "Pozvánka ještě nebyla přijmuta", - "notify-participate": "Receive updates to any cards you participate as creator or member", - "notify-watch": "Dostane aktualitace to všech tabel, sloupců nebo karet, které sledujete", + "notify-participate": "Dostanete aktualizace o všech kartách, kterých se účastníte jako tvůrce nebo člen", + "notify-watch": "Dostane aktualizace o všech tabel, sloupců nebo karet, které sledujete", "optional": "volitelný", "or": "nebo", "page-maybe-private": "Tato stránka může být soukromá. Můžete ji zobrazit po přihlášení.", @@ -550,7 +558,7 @@ "public": "Veřejný", "public-desc": "Toto tablo je veřejné. Je viditelné pro každého, kdo na něj má odkaz a bude zobrazeno ve vyhledávačích jako je Google. Pouze vybraní uživatelé ho mohou upravovat.", "quick-access-description": "Pro přidání odkazu do této lišty označ tablo hvězdičkou.", - "remove-cover": "Remove cover image from minicard", + "remove-cover": "Odstranit titulní obrázek z minikarty", "remove-from-board": "Odstranit z tabla", "remove-label": "Odstranit štítek", "listDeletePopup-title": "Smazat sloupec?", @@ -572,6 +580,7 @@ "select-board": "Vybrat tablo", "set-wip-limit-value": "Nastaví limit pro maximální počet úkolů ve sloupci.", "setWipLimitPopup-title": "Nastavit WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Přiřadit sebe k aktuální kartě", "shortcut-autocomplete-emoji": "Automatické dokončování emoji", "shortcut-autocomplete-members": "Automatický výběr uživatel", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Obsahuje karty se stráveným časem", "time": "Čas", "title": "Název", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Pozorující", @@ -703,8 +713,8 @@ "accounts": "Účty", "accounts-allowEmailChange": "Povolit změnu Emailu", "accounts-allowUserNameChange": "Povolit změnu uživatelského jména", - "tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only", - "tableVisibilityMode" : "Boards visibility", + "tableVisibilityMode-allowPrivateOnly": "Viditelnost tabel: Povolit pouze soukromé tabla", + "tableVisibilityMode" : "Viditelnost tabel", "createdAt": "Vytvořeno v", "modifiedAt": "Modifikováno", "verified": "Ověřen", @@ -739,10 +749,10 @@ "deposit-subtasks-board": "Vložit podúkoly do tohoto tabla", "deposit-subtasks-list": "Landing list for subtasks deposited here:", "show-parent-in-minicard": "Ukázat předka na minikartě", - "description-on-minicard": "Description on minicard", - "cover-attachment-on-minicard": "Cover image on minicard", - "badge-attachment-on-minicard": "Count of attachments on minicard", - "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "description-on-minicard": "Popis na minikartě", + "cover-attachment-on-minicard": "Titulní obrázek na minikartě", + "badge-attachment-on-minicard": "Počet příloh na minikartě", + "card-sorting-by-number-on-minicard": "Řazení karet podle čísla na minikartě", "prefix-with-full-path": "Prefix s celou cestou", "prefix-with-parent": "Prefix s předkem", "subtext-with-full-path": "Podtext s celou cestou", @@ -884,7 +894,7 @@ "error-ldap-login": "Během přihlašování nastala chyba", "display-authentication-method": "Zobraz způsob ověřování", "oidc-button-text": "Customize the OIDC button text", - "default-authentication-method": "Zobraz způsob ověřování", + "default-authentication-method": "Výchozí způsob ověřování", "duplicate-board": "Duplikovat tablo", "org-number": "Počet organizací je:", "team-number": "Počet týmů je:", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Tuto kratu nemůžete odstranit dokud nesmažete přiřazené karty", "delete-linked-cards-before-this-list": "Tento sloupec nemůžete smazat dokud nesmažete propojené karty, které jsou navázány na karty v tomto sloupci", "hide-checked-items": "Skrýt zvolené položky", + "hide-finished-checklist": "Hide finished checklist", "task": "Úkol", "create-task": "Vytvořit úkol", "ok": "OK", @@ -974,7 +985,7 @@ "myCardsViewChange-title": "My Cards View", "myCardsViewChangePopup-title": "My Cards View", "myCardsViewChange-choice-boards": "Tabla", - "myCardsViewChange-choice-table": "Table", + "myCardsViewChange-choice-table": "Tabulka", "myCardsSortChange-title": "Pořadí mých karet", "myCardsSortChangePopup-title": "Pořadí mých karet", "myCardsSortChange-choice-board": "Podle tabla", @@ -1100,17 +1111,17 @@ "label-names": "Štítek jména", "archived-at": "archivováno", "sort-cards": "Třídit", - "sort-is-on": "Sort is on", + "sort-is-on": "Řazení je zapnuté", "cardsSortPopup-title": "Třídit", "due-date": "Požadovaný termín", "server-error": "Chyba na serveru", "server-error-troubleshooting": "Odešlete prosím chybu, kterou server vygeneroval.\nV případě instalace přes snap spusťte: `sudo snap logs wekan.wekan`\nV případě instalace přes Docker spusťte: `sudo docker logs wekan-app`", "title-alphabetically": "Nadpis (Abecedně)", - "created-at-newest-first": "Vyvtořeno (Od nejnovějších)", + "created-at-newest-first": "Vytvořeno (Od nejnovějších)", "created-at-oldest-first": "Vytvořeno (Od nejstarších)", "links-heading": "Odkazy", - "hide-system-messages-of-all-users": "Skrýt systémové zprávy všech uživatelů", - "now-system-messages-of-all-users-are-hidden": "Systémové zprávy všech uživatelů jsou nyní skryté", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Přesunout dráhu", "moveSwimlanePopup-title": "Přesunout dráhu", "custom-field-stringtemplate": "Šablona řetězce", @@ -1118,7 +1129,7 @@ "custom-field-stringtemplate-separator": "Oddělovač (pro mezeru použijte nebo  )", "custom-field-stringtemplate-item-placeholder": "Stiskněte enter pro přidání více položek", "creator": "Tvůrce", - "creator-on-minicard": "Creator on minicard", + "creator-on-minicard": "Tvůrce na minikartě", "filesReportTitle": "Report souborů", "reports": "Reporty", "rulesReportTitle": "Report pravidel", @@ -1141,7 +1152,7 @@ "delete-org-warning-message": "Tuto organizaci není možné smazat, protože do ní patří uživatel(é)", "delete-team-warning-message": "Tento tým není možné smazat, protože do nej patří uživatel(é)", "subject": "Subject", - "details": "Details", + "details": "Podrobnosti", "carbon-copy": "Carbon Copy (Cc:)", "ticket": "Ticket", "tickets": "Tickets", @@ -1155,17 +1166,17 @@ "request": "Request", "requests": "Requests", "help-request": "Help Request", - "editCardSortOrderPopup-title": "Change Sorting", - "cardDetailsPopup-title": "Card Details", - "add-teams": "Add teams", - "add-teams-label": "Added teams are displayed below:", - "remove-team-from-table": "Are you sure you want to remove this team from the board ?", - "confirm-btn": "Confirm", + "editCardSortOrderPopup-title": "Změnit řazení", + "cardDetailsPopup-title": "Podrobnosti karty", + "add-teams": "Přidat týmy", + "add-teams-label": "Přidané týmy jsou zobrazeny zde:", + "remove-team-from-table": "Opravdu chcete odstranit tento tým z tabla ?", + "confirm-btn": "Potvrdit", "remove-btn": "Odstranit", - "filter-card-title-label": "Filter by card title", + "filter-card-title-label": "Filtrovat pomocí názvů karet", "invite-people-success": "Invitation to register sent with success", "invite-people-error": "Error while sending invitation to register", - "can-invite-if-same-mailDomainName": "Email domain name", + "can-invite-if-same-mailDomainName": "Emailová doména", "to-create-teams-contact-admin": "To create teams, please contact the administrator.", "Node_heap_total_heap_size": "Node heap: total heap size", "Node_heap_total_heap_size_executable": "Node heap: total heap size executable", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1224,27 +1238,35 @@ "if-you-already-have-an-account": "If you already have an account", "register": "Register", "forgot-password": "Forgot password", - "minicardDetailsActionsPopup-title": "Card Details", + "minicardDetailsActionsPopup-title": "Podrobnosti karty", "Mongo_sessions_count": "Mongo sessions count", "change-visibility": "Upravit viditelnost", - "max-upload-filesize": "Max upload filesize in bytes:", - "allowed-upload-filetypes": "Allowed upload filetypes:", - "max-avatar-filesize": "Max avatar filesize in bytes:", + "max-upload-filesize": "Maximální velikost nahraného souboru v bajtech:", + "allowed-upload-filetypes": "Povolené typy nahraných souborů:", + "max-avatar-filesize": "Maximální velikost avatara v bajtech:", "allowed-avatar-filetypes": "Allowed avatar filetypes:", - "invalid-file": "If filename is invalid, upload or rename is cancelled.", - "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", - "drag-board": "Drag board", - "translation-number": "The number of custom translation strings is:", - "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", - "newTranslationPopup-title": "New custom translation string", - "editTranslationPopup-title": "Edit custom translation string", - "settingsTranslationPopup-title": "Delete this custom translation string?", - "translation": "Translation", + "invalid-file": "Pokud je název souboru neplatný, nahrávání nebo přejmenovávání se zruší.", + "preview-pdf-not-supported": "Vaše zařízení nepodporuje zobrazení PDF. Zkuste soubor stáhnout.", + "drag-board": "Přetáhnout tablo", + "translation-number": "Počet vlastní překladů je:", + "delete-translation-confirm-popup": "Opravdu chcete smazat tento vlastní překlad? Tuto akci nelze vrátit zpět.", + "newTranslationPopup-title": "Nový vlastní překlad", + "editTranslationPopup-title": "Upravit vlastní překlad", + "settingsTranslationPopup-title": "Smazat tento vlastní překlad?", + "translation": "Překlad", "text": "Text", - "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", + "translation-text": "Text překladu", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Sbalit", + "uncollapse": "Rozbalit", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/cy-GB.i18n.json b/imports/i18n/data/cy-GB.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/cy-GB.i18n.json +++ b/imports/i18n/data/cy-GB.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/cy.i18n.json b/imports/i18n/data/cy.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/cy.i18n.json +++ b/imports/i18n/data/cy.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/da.i18n.json b/imports/i18n/data/da.i18n.json index 1924d5240..26cf86c80 100644 --- a/imports/i18n/data/da.i18n.json +++ b/imports/i18n/data/da.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s flyttet til Arkiv", "activity-attached": "vedhæftede %s til %s", "activity-created": "oprettede %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "oprettede brugerdefineret felt %s", "activity-excluded": "ekskluderet %s fra %s", "activity-imported": "importerede %s ind i %s fra %s", @@ -85,10 +86,12 @@ "add-card": "Tilføj kort", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Angiv bredde på lister", - "set-list-width": "Angiv bredde på lister", - "set-list-width-value": "Bredde på lister (pixels)", - "list-width-error-message": "Listens bredde skal være et positivt heltal", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Angiv højde på svømmebane", "set-swimlane-height": "Angiv højde på svømmebane", "set-swimlane-height-value": "Svømmebanes bredde (pixels)", @@ -263,6 +266,9 @@ "checklists": "Tjeklister", "click-to-star": "Klik for at tilføje stjerne til tavlen.", "click-to-unstar": "Klik for at fjerne stjerne fra tavlen.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Udklipsholder eller træk-og-slip", "close": "Luk", "close-board": "Luk tavle", @@ -294,6 +300,7 @@ "color-white": "hvid", "color-yellow": "gul", "unset-color": "Nulstil", + "comments": "Comments", "comment": "Kommentér", "comment-placeholder": "Skriv kommentar", "comment-only": "Kun kommentarer", @@ -376,6 +383,7 @@ "email-sent": "E-mail er afsendt", "email-verifyEmail-subject": "Verificér din e-mailadresse på your __siteName__", "email-verifyEmail-text": "Hej __user__,\n\nFor at verificere din e-mail for kontoen, så klik på linket nedenfor.\n\n__url__\n\nTak.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Slå WIP-begrænsning til", "error-board-doesNotExist": "Denne tavle eksisterer ikke.", "error-board-notAdmin": "Du skal være administrator for tavlen for at gøre dette", @@ -443,7 +451,7 @@ "advanced-filter-description": "Avanceret filter gør det muligt at skrive en tekststreng indeholdende følgende operatører: == != <= >= && || ( ) Mellemrum anvendes som adskillelsestegn mellem operatørerne. Du kan filtrere alle Brugerdefinerede felter ved at taste deres navne og værdier. Som eksempel: Felt1 == Værdi1. Bemærk: Hvis felter eller værdier indeholder mellemrum, så skal du indkapsle dem i enkeltcitationstegn. Som eksempel: 'Felt 1' == 'Værdi1'. For at springe over enkelte kontroltegn (' \\\\/), så kan \\\\ benyttes. Som eksempel: Felt1 == Så\\\\'n. Du kan også kombinere flere betingelser. Som eksempel: F1 == V1 || F1 == V2. Normalt vil alle operatører blive fortolket fra venstre mod højre. Du kan ændre rækkefølgen ved brug af parenteser. Som eksempel: F1 == V1 && (F2 == V2 || F2 == V3). Du kan også søge i tekstfelter med brug af regulære udtryk: F1 == /Tes.*/i", "fullname": "Fuldt navn", "header-logo-title": "Gå tilbage til siden med dine tavler", - "hide-system-messages": "Skjul systembeskeder", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Opret tavle", "home": "Hjem", "import": "Importér", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Angiv en grænse for det maksimale antal opgaver i denne liste", "setWipLimitPopup-title": "Angiv WIP-begrænsning", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Tilknyt dig selv til nuværende kort?", "shortcut-autocomplete-emoji": "Auto-fuldfør emoji", "shortcut-autocomplete-members": "Auto-fuldfør medlemmer", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Har kort med anvendt tid", "time": "Tid", "title": "Titel", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Sporing", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Du kan ikke slette dette kort før der slettes sammenkædede kort som har", "delete-linked-cards-before-this-list": "Du kan ikke slette denne liste før der slettes sammenkædede kort, der peger til kort i denne liste", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Oversæt", "text": "Tekst", "translation-text": "Oversættelsestekst", - "show-at-minicard": "Vis et minikort", - "show-checklist-at-minicard": "Vis tjekliste på minikort", "show-subtasks-field": "Vis felt med underopgaver", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Konvertér til markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Sammenfold", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/de-AT.i18n.json b/imports/i18n/data/de-AT.i18n.json index 1d7dbfa71..0281a474d 100644 --- a/imports/i18n/data/de-AT.i18n.json +++ b/imports/i18n/data/de-AT.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "hat %s ins Archiv verschoben", "activity-attached": "hat %s an %s angehängt", "activity-created": "hat %s erstellt", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "hat das benutzerdefinierte Feld %s erstellt", "activity-excluded": "hat %s von %s ausgeschlossen", "activity-imported": "hat %s in %s von %s importiert", @@ -85,10 +86,12 @@ "add-card": "Karte hinzufügen", "add-card-to-top-of-list": "Karte am Anfang der Liste hinzufügen", "add-card-to-bottom-of-list": "Karte am Ende der Liste hinzufügen", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklisten", "click-to-star": "Klicken Sie, um das Board mit einem Stern zu markieren.", "click-to-unstar": "Klicken Sie, um den Stern vom Board zu entfernen.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Zwischenablage oder Drag & Drop", "close": "Schließen", "close-board": "Board schließen", @@ -294,6 +300,7 @@ "color-white": "Weiß", "color-yellow": "gelb", "unset-color": "Nicht festgelegt", + "comments": "Comments", "comment": "Kommentar", "comment-placeholder": "Kommentar schreiben", "comment-only": "Nur Kommentare", @@ -376,6 +383,7 @@ "email-sent": "E-Mail gesendet", "email-verifyEmail-subject": "Bestätigen Sie ihre E-Mail-Adresse auf __siteName__", "email-verifyEmail-text": "Hallo __user__,\n\num ihre E-Mail-Adresse zu bestätigen, klicken Sie bitte auf folgenden Link:\n\n__url__\n\nDanke.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "WIP-Limit einschalten", "error-board-doesNotExist": "Dieses Board existiert nicht", "error-board-notAdmin": "Um das zu tun, müssen Sie Administrator dieses Boards sein", @@ -443,7 +451,7 @@ "advanced-filter-description": "Der erweiterte Filter erlaubt die Eingabe von Zeichenfolgen, die folgende Operatoren enthalten: == != <= >= && || ( ). Ein Leerzeichen wird als Trennzeichen zwischen den Operatoren verwendet. Sie können nach allen benutzerdefinierten Feldern filtern, indem Sie deren Namen und Werte eingeben. Zum Beispiel: Feld1 == Wert1. Hinweis: Wenn Felder oder Werte Leerzeichen enthalten, müssen Sie sie in einfache Anführungszeichen setzen. Zum Beispiel: 'Feld 1' == 'Wert 1'. Um einzelne Steuerzeichen (' \\\\/) zu überspringen, können Sie \\\\ verwenden. Zum Beispiel: Feld1 == Ich bin\\\\'s. Sie können außerdem mehrere Bedingungen kombinieren. Zum Beispiel: F1 == W1 || F1 == W2. Normalerweise werden alle Operatoren von links nach rechts interpretiert. Sie können die Reihenfolge ändern, indem Sie Klammern setzen. Zum Beispiel: F1 == W1 && ( F2 == W2 || F2 == W3 ). Sie können Textfelder auch mithilfe regulärer Ausdrücke durchsuchen: F1 == /Tes.*/i", "fullname": "Vollständiger Name", "header-logo-title": "Zurück zur Board Seite.", - "hide-system-messages": "Systemmeldungen ausblenden", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Board erstellen", "home": "Home", "import": "Importieren", @@ -572,6 +580,7 @@ "select-board": "Board auswählen", "set-wip-limit-value": "Setzen Sie ein Limit für die maximale Anzahl von Aufgaben in dieser Liste", "setWipLimitPopup-title": "WIP-Limit setzen", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu", "shortcut-autocomplete-emoji": "Emojis vervollständigen", "shortcut-autocomplete-members": "Mitglieder vervollständigen", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Hat Karten mit aufgewendeten Zeiten", "time": "Zeit", "title": "Titel", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Folgen", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Sie können diese Karte nicht löschen, bevor verbundene Karten nicht gelöscht wurden.", "delete-linked-cards-before-this-list": "Sie können diese Liste erst löschen, wenn Sie alle Karten gelöscht haben, die auf Karten in dieser Liste verweisen.", "hide-checked-items": "Erledigte ausblenden", + "hide-finished-checklist": "Hide finished checklist", "task": "Aufgabe", "create-task": "Aufgabe erstellen", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Erstelldatum (neueste zuerst)", "created-at-oldest-first": "Erstelldatum (älteste zuerst)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Alle System-Nachrichten aller Nutzer verbergen", - "now-system-messages-of-all-users-are-hidden": "Alle System-Nachrichten aller Nutzer sind nun verborgen", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Swimlane verschieben", "moveSwimlanePopup-title": "Swimlane verschieben", "custom-field-stringtemplate": "String-Vorlage", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklistenaktionen", "moveChecklist": "Checkliste verschieben", "moveChecklistPopup-title": "Checkliste verschieben", - "newlineBecomesNewChecklistItem": "Neue Zeile wird neuer Checklisteneintrag", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Einklappen", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/de-CH.i18n.json b/imports/i18n/data/de-CH.i18n.json index d69206111..e52b93ad6 100644 --- a/imports/i18n/data/de-CH.i18n.json +++ b/imports/i18n/data/de-CH.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "hat %s ins Archiv verschoben", "activity-attached": "hat %s an %s angehängt", "activity-created": "hat %s erstellt", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "hat das benutzerdefinierte Feld %s erstellt", "activity-excluded": "hat %s von %s ausgeschlossen", "activity-imported": "hat %s in %s von %s importiert", @@ -85,10 +86,12 @@ "add-card": "Karte hinzufügen", "add-card-to-top-of-list": "Karte am Anfang der Liste hinzufügen", "add-card-to-bottom-of-list": "Karte am Ende der Liste hinzufügen", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklisten", "click-to-star": "Klicken Sie, um das Board mit einem Stern zu markieren.", "click-to-unstar": "Klicken Sie, um den Stern vom Board zu entfernen.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Zwischenablage oder Drag & Drop", "close": "Schliessen", "close-board": "Board schliessen", @@ -294,6 +300,7 @@ "color-white": "Weiss", "color-yellow": "gelb", "unset-color": "Nicht festgelegt", + "comments": "Comments", "comment": "Kommentar speichern", "comment-placeholder": "Kommentar schreiben", "comment-only": "Nur Kommentare", @@ -376,6 +383,7 @@ "email-sent": "E-Mail gesendet", "email-verifyEmail-subject": "Bestätigen Sie ihre E-Mail-Adresse auf __siteName__", "email-verifyEmail-text": "Hallo __user__,\n\num ihre E-Mail-Adresse zu bestätigen, klicken Sie bitte auf folgenden Link:\n\n__url__\n\nDanke.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "WIP-Limit einschalten", "error-board-doesNotExist": "Dieses Board existiert nicht", "error-board-notAdmin": "Um das zu tun, müssen Sie Administrator dieses Boards sein", @@ -443,7 +451,7 @@ "advanced-filter-description": "Der erweiterte Filter erlaubt die Eingabe von Zeichenfolgen, die folgende Operatoren enthalten: == != <= >= && || ( ). Ein Leerzeichen wird als Trennzeichen zwischen den Operatoren verwendet. Sie können nach allen benutzerdefinierten Feldern filtern, indem Sie deren Namen und Werte eingeben. Zum Beispiel: Feld1 == Wert1. Hinweis: Wenn Felder oder Werte Leerzeichen enthalten, müssen Sie sie in einfache Anführungszeichen setzen. Zum Beispiel: 'Feld 1' == 'Wert 1'. Um einzelne Steuerzeichen (' \\\\/) zu überspringen, können Sie \\\\ verwenden. Zum Beispiel: Feld1 == Ich bin\\\\'s. Sie können ausserdem mehrere Bedingungen kombinieren. Zum Beispiel: F1 == W1 || F1 == W2. Normalerweise werden alle Operatoren von links nach rechts interpretiert. Sie können die Reihenfolge ändern, indem Sie Klammern setzen. Zum Beispiel: F1 == W1 && ( F2 == W2 || F2 == W3 ). Sie können Textfelder auch mithilfe regulärer Ausdrücke durchsuchen: F1 == /Tes.*/i", "fullname": "Vollständiger Name", "header-logo-title": "Zurück zur Board Seite.", - "hide-system-messages": "Systemmeldungen ausblenden", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Board erstellen", "home": "Home", "import": "Importieren", @@ -572,6 +580,7 @@ "select-board": "Board auswählen", "set-wip-limit-value": "Setzen Sie ein Limit für die maximale Anzahl von Aufgaben in dieser Liste", "setWipLimitPopup-title": "WIP-Limit setzen", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu", "shortcut-autocomplete-emoji": "Emojis vervollständigen", "shortcut-autocomplete-members": "Mitglieder vervollständigen", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Hat Karten mit aufgewendeten Zeiten", "time": "Zeit", "title": "Titel", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Label 1-9 zur Karte hinzufügen. Bei Mehrfachauswahl Label 1-9 hinzufügen", "remove-labels-multiselect": "Labels 1-9 bei Karten-Mehrfachauswahl entfernen", "tracking": "Folgen", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Sie können diese Karte nicht löschen, bevor verbundene Karten nicht gelöscht wurden.", "delete-linked-cards-before-this-list": "Sie können diese Liste erst löschen, wenn Sie alle Karten gelöscht haben, die auf Karten in dieser Liste verweisen.", "hide-checked-items": "Erledigte ausblenden", + "hide-finished-checklist": "Hide finished checklist", "task": "Aufgabe", "create-task": "Aufgabe erstellen", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Erstelldatum (neueste zuerst)", "created-at-oldest-first": "Erstelldatum (älteste zuerst)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Alle System-Nachrichten aller Nutzer verbergen", - "now-system-messages-of-all-users-are-hidden": "Alle System-Nachrichten aller Nutzer sind nun verborgen", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Swimlane verschieben", "moveSwimlanePopup-title": "Swimlane verschieben", "custom-field-stringtemplate": "String-Vorlage", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Listenaktionen", "moveChecklist": "Checkliste bewegen", "moveChecklistPopup-title": "Checkliste bewegen", - "newlineBecomesNewChecklistItem": "Neue Zeile wird neuer Checklisteneintrag", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Checkliste kopieren", "copyChecklistPopup-title": "Checkliste kopieren", "card-show-lists": "Listen anzeigen", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Einklappen", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index 0a9cfadb8..fbe3b6ecf 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -12,7 +12,7 @@ "act-addChecklistItem": "hat Checklistenelement __checklistItem__ zu Checkliste __checkList__ auf der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt", "act-removeChecklist": "hat Checkliste __checklist__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt", "act-removeChecklistItem": "hat Checklistenposition __checklistItem__ von Checkliste __checkList__ auf der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt", - "act-checkedItem": "hat __checklistItem__ der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ abgehakt", + "act-checkedItem": "hat __checklistItem__ der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ erledigt", "act-uncheckedItem": "hat Haken von __checklistItem__ der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt", "act-completeChecklist": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ vervollständigt", "act-uncompleteChecklist": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ unvervollständigt", @@ -49,6 +49,7 @@ "activity-archived": "hat %s ins Archiv verschoben", "activity-attached": "hat %s an %s angehängt", "activity-created": "hat %s erstellt", + "activity-changedListTitle": "Liste umbenannt zu %s", "activity-customfield-created": "hat das benutzerdefinierte Feld %s erstellt", "activity-excluded": "hat %s von %s ausgeschlossen", "activity-imported": "hat %s in %s von %s importiert", @@ -60,16 +61,16 @@ "activity-sent": "hat %s an %s gesendet", "activity-unjoined": "hat %s verlassen", "activity-subtask-added": "Teilaufgabe zu %s hinzugefügt", - "activity-checked-item": "markierte %s in Checkliste %s von %s", + "activity-checked-item": "erledigt %s in Checkliste %s von %s", "activity-unchecked-item": "hat %s in Checkliste %s von %s abgewählt", "activity-checklist-added": "hat eine Checkliste zu %s hinzugefügt", "activity-checklist-removed": "entfernte eine Checkliste von %s", "activity-checklist-completed": "Abgeschlossene Checkliste", "activity-checklist-uncompleted": "unvervollständigte die Checkliste %s von %s", - "activity-checklist-item-added": "hat ein Checklistenelement zu '%s' in %s hinzugefügt", - "activity-checklist-item-removed": "hat ein Checklistenelement von '%s' in %s entfernt", + "activity-checklist-item-added": "hat einen Checklisteneintrag zu '%s' in %s hinzugefügt", + "activity-checklist-item-removed": "hat einen Checklisteneintrag von '%s' in %s entfernt", "add": "Hinzufügen", - "activity-checked-item-card": "markiere %s in Checkliste %s", + "activity-checked-item-card": "erledigt %s in Checkliste %s", "activity-unchecked-item-card": "hat %s in Checkliste %s abgewählt", "activity-checklist-completed-card": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ vervollständigt", "activity-checklist-uncompleted-card": "unvervollständigte die Checkliste %s", @@ -85,10 +86,12 @@ "add-card": "Karte hinzufügen", "add-card-to-top-of-list": "Karte am Anfang der Liste hinzufügen", "add-card-to-bottom-of-list": "Karte am Ende der Liste hinzufügen", - "setListWidthPopup-title": "Stelle die Breite der Liste ein", - "set-list-width": "Stelle die Breite der Liste ein", - "set-list-width-value": "Breite der Liste (Pixel)", - "list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein", + "setListWidthPopup-title": "Setze die Breiten", + "set-list-width": "Setze die Breiten", + "set-list-width-value": "Setze min & max Breite (Pixel)", + "list-width-error-message": "Breite der Liste muss eine ganze Zahl größer als 100 sein", + "keyboard-shortcuts-enabled": "Tastaturkürzel sind aktiviert. Klicke, um sie zu deaktivieren.", + "keyboard-shortcuts-disabled": "Tastaturkürzel sind deaktiviert. Klicke, um sie zu aktivieren.", "setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein", "set-swimlane-height": "Stelle die Höhe der Swimlane ein", "set-swimlane-height-value": "Höhe der Swimlane (Pixel)", @@ -96,9 +99,9 @@ "add-swimlane": "Swimlane hinzufügen", "add-subtask": "Teilaufgabe hinzufügen", "add-checklist": "Checkliste hinzufügen", - "add-checklist-item": "Element zu Checkliste hinzufügen", - "close-add-checklist-item": "Schließe Element zu Checkliste hinzufügen", - "close-edit-checklist-item": "Schließe Bearbeitung des Checklisten Elements", + "add-checklist-item": "Einen Eintrag zur Checkliste hinzufügen", + "close-add-checklist-item": "Schließe Einen Eintrag zur Checkliste hinzufügen", + "close-edit-checklist-item": "Schließe Bearbeitung eines Checklisteneintrags", "convertChecklistItemToCardPopup-title": "Zu Karte umwandeln", "add-cover": "Cover Bild zu Minikarte hinzufügen", "add-label": "Label hinzufügen", @@ -263,6 +266,9 @@ "checklists": "Checklisten", "click-to-star": "Klicken Sie, um das Board mit einem Stern zu markieren.", "click-to-unstar": "Klicken Sie, um den Stern vom Board zu entfernen.", + "click-to-enable-auto-width": "Automatische Listenbreite ist deaktiviert. Klicke, um sie zu aktivieren.", + "click-to-disable-auto-width": "Automatische Listenbreite ist aktiviert. Klicke, um sie zu deaktivieren.", + "auto-list-width": "Automatische Listenbreite", "clipboard": "Zwischenablage oder Drag & Drop", "close": "Schließen", "close-board": "Board schließen", @@ -294,6 +300,7 @@ "color-white": "Weiß", "color-yellow": "gelb", "unset-color": "Nicht festgelegt", + "comments": "Kommentare", "comment": "Kommentar speichern", "comment-placeholder": "Kommentar schreiben", "comment-only": "Nur Kommentare", @@ -376,6 +383,7 @@ "email-sent": "E-Mail gesendet", "email-verifyEmail-subject": "Bestätigen Sie ihre E-Mail-Adresse auf __siteName__", "email-verifyEmail-text": "Hallo __user__,\n\num ihre E-Mail-Adresse zu bestätigen, klicken Sie bitte auf folgenden Link:\n\n__url__\n\nDanke.", + "enable-vertical-scrollbars": "Vertikale Bildlaufleisten aktivieren", "enable-wip-limit": "WIP-Limit einschalten", "error-board-doesNotExist": "Dieses Board existiert nicht", "error-board-notAdmin": "Um das zu tun, müssen Sie Administrator dieses Boards sein", @@ -443,7 +451,7 @@ "advanced-filter-description": "Der erweiterte Filter erlaubt die Eingabe von Zeichenfolgen, die folgende Operatoren enthalten: == != <= >= && || ( ). Ein Leerzeichen wird als Trennzeichen zwischen den Operatoren verwendet. Sie können nach allen benutzerdefinierten Feldern filtern, indem Sie deren Namen und Werte eingeben. Zum Beispiel: Feld1 == Wert1. Hinweis: Wenn Felder oder Werte Leerzeichen enthalten, müssen Sie sie in einfache Anführungszeichen setzen. Zum Beispiel: 'Feld 1' == 'Wert 1'. Um einzelne Steuerzeichen (' \\\\/) zu überspringen, können Sie \\\\ verwenden. Zum Beispiel: Feld1 == Ich bin\\\\'s. Sie können außerdem mehrere Bedingungen kombinieren. Zum Beispiel: F1 == W1 || F1 == W2. Normalerweise werden alle Operatoren von links nach rechts interpretiert. Sie können die Reihenfolge ändern, indem Sie Klammern setzen. Zum Beispiel: F1 == W1 && ( F2 == W2 || F2 == W3 ). Sie können Textfelder auch mithilfe regulärer Ausdrücke durchsuchen: F1 == /Tes.*/i", "fullname": "Vollständiger Name", "header-logo-title": "Zurück zur Board Seite.", - "hide-system-messages": "Systemmeldungen ausblenden", + "show-activities": "Aktivitäten anzeigen", "headerBarCreateBoardPopup-title": "Board erstellen", "home": "Home", "import": "Importieren", @@ -572,6 +580,7 @@ "select-board": "Board auswählen", "set-wip-limit-value": "Setzen Sie ein Limit für die maximale Anzahl von Aufgaben in dieser Liste", "setWipLimitPopup-title": "WIP-Limit setzen", + "shortcut-add-self": "Füge dich selbst zur Karte hinzu", "shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu", "shortcut-autocomplete-emoji": "Emojis vervollständigen", "shortcut-autocomplete-members": "Mitglieder vervollständigen", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Hat Karten mit aufgewendeten Zeiten", "time": "Zeit", "title": "Titel", + "toggle-assignees": "Schalte Zugewiesene 1–9 für die Karte um (in der Reihenfolge der Hinzufügung zum Board).", "toggle-labels": "Label 1-9 zur Karte hinzufügen. Bei Mehrfachauswahl Label 1-9 hinzufügen", "remove-labels-multiselect": "Labels 1-9 bei Karten-Mehrfachauswahl entfernen", "tracking": "Folgen", @@ -794,10 +804,10 @@ "r-when-the-checklist": "Wenn die Checkliste", "r-completed": "abgeschlossen", "r-made-incomplete": "unvollständig gemacht", - "r-when-a-item": "Wenn eine Checklistenposition", - "r-when-the-item": "Wenn der Checklisten Eintrag", - "r-checked": "markiert wird", - "r-unchecked": "abgewählt wird", + "r-when-a-item": "Wenn ein Checklisteneintrag wird", + "r-when-the-item": "Wenn der Checklisteneintrag", + "r-checked": "erledigt", + "r-unchecked": "abgewählt", "r-move-card-to": "Verschiebe Karte an", "r-top-of": "Anfang von", "r-bottom-of": "Ende von", @@ -814,7 +824,7 @@ "r-checklist": "Checkliste", "r-check-all": "Alle markieren", "r-uncheck-all": "Alle abwählen", - "r-items-check": "Elemente der Checkliste", + "r-items-check": "Einträge der Checkliste", "r-check": "Markieren", "r-uncheck": "Abwählen", "r-item": "Element", @@ -955,7 +965,8 @@ "archived": "Archiviert", "delete-linked-card-before-this-card": "Sie können diese Karte nicht löschen, bevor verbundene Karten nicht gelöscht wurden.", "delete-linked-cards-before-this-list": "Sie können diese Liste erst löschen, wenn Sie alle Karten gelöscht haben, die auf Karten in dieser Liste verweisen.", - "hide-checked-items": "Erledigte ausblenden", + "hide-checked-items": "Erledigte Einträge ausblenden", + "hide-finished-checklist": "Abgeschlossene Checkliste ausblenden", "task": "Aufgabe", "create-task": "Aufgabe erstellen", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Erstelldatum (neueste zuerst)", "created-at-oldest-first": "Erstelldatum (älteste zuerst)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Alle System-Nachrichten aller Nutzer verbergen", - "now-system-messages-of-all-users-are-hidden": "Alle System-Nachrichten aller Nutzer sind nun verborgen", + "hide-activities-of-all-boards": "Zeige die Board Aktivitäten nicht auf allen Boards", + "now-activities-of-all-boards-are-hidden": "Alle Aktivitäten von allen Boards sind nun verborgen", "move-swimlane": "Swimlane verschieben", "moveSwimlanePopup-title": "Swimlane verschieben", "custom-field-stringtemplate": "String-Vorlage", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklistenaktionen", "moveChecklist": "Checkliste verschieben", "moveChecklistPopup-title": "Checkliste verschieben", - "newlineBecomesNewChecklistItem": "Neue Zeile wird neuer Checklisteneintrag", + "newlineBecomesNewChecklistItem": "Jede Textzeile wird in einen Checklisteneintrag umgewandelt", + "newLineNewItem": "Eine Textzeile = ein Checklisteneintrag", + "newlineBecomesNewChecklistItemOriginOrder": "Jede Textzeile wird in einen Checklisteneintrag umgewandelt, ursprüngliche Reihenfolge", + "originOrder": "ursprüngliche Reihenfolge", "copyChecklist": "Checkliste kopieren", "copyChecklistPopup-title": "Checkliste kopieren", "card-show-lists": "Listen anzeigen", @@ -1242,9 +1256,17 @@ "translation": "Übersetzung", "text": "Text", "translation-text": "Übersetzungstext", - "show-at-minicard": "Zeige auf Minikarte", - "show-checklist-at-minicard": "Checkliste auf Minikarte anzeigen", "show-subtasks-field": "Teilaufgaben Feld anzeigen", + "show-week-of-year": "Kalenderwoche anzeigen (ISO 8601)", "convert-to-markdown": "Als Markdown konvertieren", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Erstelle .zip Datei, die Board JSON Dateien und Board Unterverzeichnisse mit Boardname inklusive Anhängen enthält", + "collapse": "Einklappen", + "uncollapse": "Aufklappen", + "hideCheckedChecklistItems": "Erledigte Checklisteneinträge ausblenden", + "hideAllChecklistItems": "Verberge alle Checklisteneinträge", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Bedienungshilfe Seite freigeschaltet", + "accessibility-title": "Bedienungshilfe Titel", + "accessibility-content": "Bedienungshilfe Inhalt" } diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index a2feac8f7..fc3ed5809 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "hat %s ins Archiv verschoben", "activity-attached": "hat %s an %s angehängt", "activity-created": "hat %s erstellt", + "activity-changedListTitle": "Liste umbenannt zu %s", "activity-customfield-created": "hat das benutzerdefinierte Feld %s erstellt", "activity-excluded": "hat %s von %s ausgeschlossen", "activity-imported": "hat %s in %s von %s importiert", @@ -85,10 +86,12 @@ "add-card": "Karte hinzufügen", "add-card-to-top-of-list": "Karte am Anfang der Liste hinzufügen", "add-card-to-bottom-of-list": "Karte am Ende der Liste hinzufügen", - "setListWidthPopup-title": "Stelle die Breite der Liste ein", - "set-list-width": "Stelle die Breite der Liste ein", - "set-list-width-value": "Breite der Liste (Pixel)", - "list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein", + "setListWidthPopup-title": "Setze Breite", + "set-list-width": "Setze Breite", + "set-list-width-value": "Setze min & max Breite (Pixels)", + "list-width-error-message": "Breite der Liste muss eine Ganzzahl größer als 100 sein", + "keyboard-shortcuts-enabled": "Tastaturkürzel sind aktiviert. Klicke, um sie zu deaktivieren.", + "keyboard-shortcuts-disabled": "Tastaturkürzel sind deaktiviert. Klicke, um sie zu aktivieren.", "setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein", "set-swimlane-height": "Stelle die Höhe der Swimlane ein", "set-swimlane-height-value": "Höhe der Swimlane (Pixel)", @@ -263,6 +266,9 @@ "checklists": "Checklisten", "click-to-star": "Klicken Sie, um das Board mit einem Stern zu markieren.", "click-to-unstar": "Klicken Sie, um den Stern vom Board zu entfernen.", + "click-to-enable-auto-width": "Automatische Listenbreite ist deaktiviert. Klicke, um sie zu aktivieren.", + "click-to-disable-auto-width": "Automatische Listenbreite ist aktiviert. Klicke, um sie zu deaktivieren.", + "auto-list-width": "Automatische Listenbreite", "clipboard": "Zwischenablage oder Drag & Drop", "close": "Schließen", "close-board": "Board schließen", @@ -294,6 +300,7 @@ "color-white": "Weiß", "color-yellow": "gelb", "unset-color": "Nicht festgelegt", + "comments": "Kommentare", "comment": "Kommentar speichern", "comment-placeholder": "Kommentar schreiben", "comment-only": "Nur Kommentare", @@ -376,6 +383,7 @@ "email-sent": "E-Mail gesendet", "email-verifyEmail-subject": "Bestätigen Sie ihre E-Mail-Adresse auf __siteName__", "email-verifyEmail-text": "Hallo __user__,\n\num ihre E-Mail-Adresse zu bestätigen, klicken Sie bitte auf folgenden Link:\n\n__url__\n\nDanke.", + "enable-vertical-scrollbars": "Vertikale Bildlaufleisten aktivieren", "enable-wip-limit": "WIP-Limit einschalten", "error-board-doesNotExist": "Dieses Board existiert nicht", "error-board-notAdmin": "Um das zu tun, müssen Sie Administrator dieses Boards sein", @@ -443,7 +451,7 @@ "advanced-filter-description": "Der erweiterte Filter erlaubt die Eingabe von Zeichenfolgen, die folgende Operatoren enthalten: == != <= >= && || ( ). Ein Leerzeichen wird als Trennzeichen zwischen den Operatoren verwendet. Sie können nach allen benutzerdefinierten Feldern filtern, indem Sie deren Namen und Werte eingeben. Zum Beispiel: Feld1 == Wert1. Hinweis: Wenn Felder oder Werte Leerzeichen enthalten, müssen Sie sie in einfache Anführungszeichen setzen. Zum Beispiel: 'Feld 1' == 'Wert 1'. Um einzelne Steuerzeichen (' \\\\/) zu überspringen, können Sie \\\\ verwenden. Zum Beispiel: Feld1 == Ich bin\\\\'s. Sie können außerdem mehrere Bedingungen kombinieren. Zum Beispiel: F1 == W1 || F1 == W2. Normalerweise werden alle Operatoren von links nach rechts interpretiert. Sie können die Reihenfolge ändern, indem Sie Klammern setzen. Zum Beispiel: F1 == W1 && ( F2 == W2 || F2 == W3 ). Sie können Textfelder auch mithilfe regulärer Ausdrücke durchsuchen: F1 == /Tes.*/i", "fullname": "Vollständiger Name", "header-logo-title": "Zurück zur Board Seite.", - "hide-system-messages": "Systemmeldungen ausblenden", + "show-activities": "Aktivitäten anzeigen", "headerBarCreateBoardPopup-title": "Board erstellen", "home": "Home", "import": "Importieren", @@ -572,13 +580,14 @@ "select-board": "Board auswählen", "set-wip-limit-value": "Setzen Sie ein Limit für die maximale Anzahl von Aufgaben in dieser Liste", "setWipLimitPopup-title": "WIP-Limit setzen", + "shortcut-add-self": "Füge dich selbst zur Karte hinzu", "shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu", "shortcut-autocomplete-emoji": "Emojis vervollständigen", "shortcut-autocomplete-members": "Mitglieder vervollständigen", "shortcut-clear-filters": "Alle Filter entfernen", "shortcut-close-dialog": "Dialog schließen", "shortcut-filter-my-cards": "Meine Karten filtern", - "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-filter-my-assigned-cards": "Meine zugewiesenen Karten filtern", "shortcut-show-shortcuts": "Liste der Tastaturkürzel anzeigen", "shortcut-toggle-filterbar": "Filter-Seitenleiste ein-/ausblenden", "shortcut-toggle-searchbar": "Such-Seitenleiste ein-/ausblenden", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Hat Karten mit aufgewendeten Zeiten", "time": "Zeit", "title": "Titel", + "toggle-assignees": "Schalte Zugewiesene 1-9 für die Karte um (in der Reihenfolge der Hinzufügung zum Board).", "toggle-labels": "Label 1-9 zur Karte hinzufügen. Bei Mehrfachauswahl Label 1-9 hinzufügen", "remove-labels-multiselect": "Labels 1-9 bei Karten-Mehrfachauswahl entfernen", "tracking": "Folgen", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Sie können diese Karte nicht löschen, bevor verbundene Karten nicht gelöscht wurden.", "delete-linked-cards-before-this-list": "Sie können diese Liste erst löschen, wenn Sie alle Karten gelöscht haben, die auf Karten in dieser Liste verweisen.", "hide-checked-items": "Erledigte ausblenden", + "hide-finished-checklist": "Abgeschlossene Checkliste ausblenden", "task": "Aufgabe", "create-task": "Aufgabe erstellen", "ok": "OK", @@ -963,7 +974,7 @@ "teams": "Teams", "displayName": "Anzeigename", "shortName": "Kurzname", - "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "autoAddUsersWithDomainName": "Automatisch Benutzer über den Domainnamen hinzufügen", "website": "Webseite", "person": "Person", "my-cards": "Meine Karten", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Erstelldatum (neueste zuerst)", "created-at-oldest-first": "Erstelldatum (älteste zuerst)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Alle System-Nachrichten aller Nutzer verbergen", - "now-system-messages-of-all-users-are-hidden": "Alle System-Nachrichten aller Nutzer sind nun verborgen", + "hide-activities-of-all-boards": "Zeige die Board Aktivitäten nicht auf allen Boards", + "now-activities-of-all-boards-are-hidden": "Alle Aktivitäten von allen Boards sind nun verborgen", "move-swimlane": "Swimlane verschieben", "moveSwimlanePopup-title": "Swimlane verschieben", "custom-field-stringtemplate": "String-Vorlage", @@ -1118,7 +1129,7 @@ "custom-field-stringtemplate-separator": "Trenner (verwende oder   für einen Leerschritt)", "custom-field-stringtemplate-item-placeholder": "Drücke die Eingabetaste, um weitere Einträge hinzuzufügen", "creator": "Ersteller", - "creator-on-minicard": "Creator on minicard", + "creator-on-minicard": "Ersteller auf Minikarte", "filesReportTitle": "Dateien-Bericht", "reports": "Berichte", "rulesReportTitle": "Regeln-Bericht", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklistenaktionen", "moveChecklist": "Checkliste verschieben", "moveChecklistPopup-title": "Checkliste verschieben", - "newlineBecomesNewChecklistItem": "Neue Zeile wird neuer Checklisteneintrag", + "newlineBecomesNewChecklistItem": "Jede Textzeile wird in einen Checklisteneintrag umgewandelt", + "newLineNewItem": "Eine Textzeile = ein Checklisteneintrag", + "newlineBecomesNewChecklistItemOriginOrder": "Jede Textzeile wird in einen Checklisteneintrag umgewandelt, in ursprünglicher Reihenfolge", + "originOrder": "ursprüngliche Reihenfolge", "copyChecklist": "Checkliste kopieren", "copyChecklistPopup-title": "Checkliste kopieren", "card-show-lists": "Listen anzeigen", @@ -1242,9 +1256,17 @@ "translation": "Übersetzung", "text": "Text", "translation-text": "Übersetzungstext", - "show-at-minicard": "Zeige auf Minikarte", - "show-checklist-at-minicard": "Checkliste auf Minikarte anzeigen", "show-subtasks-field": "Teilaufgaben Feld anzeigen", + "show-week-of-year": "Kalenderwoche anzeigen (ISO 8601)", "convert-to-markdown": "Als Markdown konvertieren", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Erstelle .zip Datei mit JSON Board Dateien und die Unterverzeichnisse des Boardnamen mit Anhängen", + "collapse": "Einklappen", + "uncollapse": "Aufklappen", + "hideCheckedChecklistItems": "Verberge erledigte Checklisteneinträge", + "hideAllChecklistItems": "Verberge alle Checklisteneinträge", + "support": "Unterstützung", + "supportPopup-title": "Unterstützung", + "accessibility-page-enabled": "Barrierefreie Seite freigeschaltet", + "accessibility-title": "Barrierefreier Eintrag", + "accessibility-content": "Barrierefreier Eintrag" } diff --git a/imports/i18n/data/el-GR.i18n.json b/imports/i18n/data/el-GR.i18n.json index 8b4fe4d55..4eacf20f7 100644 --- a/imports/i18n/data/el-GR.i18n.json +++ b/imports/i18n/data/el-GR.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s μετακινήθηκε στο Αρχείο", "activity-attached": "επισυνάφθηκε %s στο %s", "activity-created": "δημιουργήθηκε %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "δημιούργησε το προσαρμοσμένο πεδίο %s", "activity-excluded": "εξαιρέθηκε %s από %s", "activity-imported": "εισήχθη %s στο %s από %s", @@ -85,10 +86,12 @@ "add-card": "Προσθήκη Κάρτας", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Λίστες Ελέγχου - Checklists", "click-to-star": "Κλικ για να προσθέσετε αστεράκι στον πίνακα", "click-to-unstar": "Κλικ για να αφαιρέσετε αστεράκι από τον πίνακα", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard ή drag & drop", "close": "Κλείσιμο", "close-board": "Κλείσιμο Πίνακα", @@ -294,6 +300,7 @@ "color-white": "λευκό", "color-yellow": "κίτρινο", "unset-color": "Unset", + "comments": "Comments", "comment": "Σχόλιο", "comment-placeholder": "Συγγραφή Σχολίου", "comment-only": "Μόνο σχόλιο", @@ -376,6 +383,7 @@ "email-sent": "Εστάλη Email", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Χαίρετε __user__,\n\nΓια να επιβεβαιώσετε το email που χρησιμοποιεί ο λογαριασμός σας, απλώς κάνετε κλικ στον παρακάτω σύνδεσμο.\n\n__url__\n\nΕυχαριστούμε.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Αυτός ο πίνακας δεν υφίσταται", "error-board-notAdmin": "Πρέπει να είστε διαχειριστής του πίνακα αυτού για να προβείτε σε αυτό", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Πλήρες Όνομα", "header-logo-title": "Επιστροφή στη σελίδα των πινάκων σας.", - "hide-system-messages": "Απόκρυψη μηνυμάτων συστήματος", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Δημιουργία Πίνακα", "home": "Αρχική", "import": "Εισαγωγή", @@ -572,6 +580,7 @@ "select-board": "Επιλογή Πίνακα", "set-wip-limit-value": "Προσδιορισμός ορίου στο μέγιστο αριθμό εργασιών σε αυτή τη λίστα.", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Έχει κάρτες με δαπανηθέντα χρόνο", "time": "Ώρα", "title": "Τίτλος", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Καταγραφή", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Κείμενο", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Σύμπτυξη", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/el.i18n.json b/imports/i18n/data/el.i18n.json index 01e7da4f4..3f4666a1b 100644 --- a/imports/i18n/data/el.i18n.json +++ b/imports/i18n/data/el.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s μετακινήθηκε στο Αρχείο", "activity-attached": "επισυνάφθηκε %s στο %s", "activity-created": "δημιουργήθηκε %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "δημιούργησε το προσαρμοσμένο πεδίο %s", "activity-excluded": "εξαιρέθηκε %s από %s", "activity-imported": "εισήχθη %s στο %s από %s", @@ -85,10 +86,12 @@ "add-card": "Προσθήκη Κάρτας", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Λίστες Ελέγχου - Checklists", "click-to-star": "Κλικ για να προσθέσετε αστεράκι στον πίνακα", "click-to-unstar": "Κλικ για να αφαιρέσετε αστεράκι από τον πίνακα", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard ή drag & drop", "close": "Κλείσιμο", "close-board": "Κλείσιμο Πίνακα", @@ -294,6 +300,7 @@ "color-white": "λευκό", "color-yellow": "κίτρινο", "unset-color": "Unset", + "comments": "Comments", "comment": "Σχόλιο", "comment-placeholder": "Συγγραφή Σχολίου", "comment-only": "Μόνο σχόλιο", @@ -376,6 +383,7 @@ "email-sent": "Εστάλη Email", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Χαίρετε __user__,\n\nΓια να επιβεβαιώσετε το email που χρησιμοποιεί ο λογαριασμός σας, απλώς κάνετε κλικ στον παρακάτω σύνδεσμο.\n\n__url__\n\nΕυχαριστούμε.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Αυτός ο πίνακας δεν υφίσταται", "error-board-notAdmin": "Πρέπει να είστε διαχειριστής του πίνακα αυτού για να προβείτε σε αυτό", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Πλήρες Όνομα", "header-logo-title": "Επιστροφή στη σελίδα των πινάκων σας.", - "hide-system-messages": "Απόκρυψη μηνυμάτων συστήματος", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Δημιουργία Πίνακα", "home": "Αρχική", "import": "Εισαγωγή", @@ -572,6 +580,7 @@ "select-board": "Επιλογή Πίνακα", "set-wip-limit-value": "Προσδιορισμός ορίου στο μέγιστο αριθμό εργασιών σε αυτή τη λίστα.", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Έχει κάρτες με δαπανηθέντα χρόνο", "time": "Ώρα", "title": "Τίτλος", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Καταγραφή", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Κείμενο", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Σύμπτυξη", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/en-BR.i18n.json b/imports/i18n/data/en-BR.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/en-BR.i18n.json +++ b/imports/i18n/data/en-BR.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/en-DE.i18n.json b/imports/i18n/data/en-DE.i18n.json index 8eddb2aaf..9e93c3326 100644 --- a/imports/i18n/data/en-DE.i18n.json +++ b/imports/i18n/data/en-DE.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/en-GB.i18n.json b/imports/i18n/data/en-GB.i18n.json index 77e55c8ab..3424f8de4 100644 --- a/imports/i18n/data/en-GB.i18n.json +++ b/imports/i18n/data/en-GB.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/en-IT.i18n.json b/imports/i18n/data/en-IT.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/en-IT.i18n.json +++ b/imports/i18n/data/en-IT.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/en-MY.i18n.json b/imports/i18n/data/en-MY.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/en-MY.i18n.json +++ b/imports/i18n/data/en-MY.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/en-YS.i18n.json b/imports/i18n/data/en-YS.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/en-YS.i18n.json +++ b/imports/i18n/data/en-YS.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/en_ID.i18n.json b/imports/i18n/data/en_ID.i18n.json new file mode 100644 index 000000000..78b62d375 --- /dev/null +++ b/imports/i18n/data/en_ID.i18n.json @@ -0,0 +1,1272 @@ +{ + "accept": "Accept", + "act-activity-notify": "Activity Notification", + "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-createCustomField": "created custom field __customField__ at board __board__", + "act-deleteCustomField": "deleted custom field __customField__ at board __board__", + "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createList": "added list __list__ to board __board__", + "act-addBoardMember": "added member __member__ to board __board__", + "act-archivedBoard": "Board __board__ moved to Archive", + "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive", + "act-importBoard": "imported board __board__", + "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__", + "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", + "act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-removeBoardMember": "removed member __member__ from board __board__", + "act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-withBoardTitle": "__board__", + "act-withCardTitle": "[__board__] __card__", + "actions": "Actions", + "activities": "Activities", + "activity": "Activity", + "activity-added": "added %s to %s", + "activity-archived": "%s moved to Archive", + "activity-attached": "attached %s to %s", + "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", + "activity-customfield-created": "created custom field %s", + "activity-excluded": "excluded %s from %s", + "activity-imported": "imported %s into %s from %s", + "activity-imported-board": "imported %s from %s", + "activity-joined": "joined %s", + "activity-moved": "moved %s from %s to %s", + "activity-on": "on %s", + "activity-removed": "removed %s from %s", + "activity-sent": "sent %s to %s", + "activity-unjoined": "unjoined %s", + "activity-subtask-added": "added subtask to %s", + "activity-checked-item": "checked %s in checklist %s of %s", + "activity-unchecked-item": "unchecked %s in checklist %s of %s", + "activity-checklist-added": "added checklist to %s", + "activity-checklist-removed": "removed a checklist from %s", + "activity-checklist-completed": "completed checklist %s of %s", + "activity-checklist-uncompleted": "uncompleted the checklist %s of %s", + "activity-checklist-item-added": "added checklist item to '%s' in %s", + "activity-checklist-item-removed": "removed a checklist item from '%s' in %s", + "add": "Add", + "activity-checked-item-card": "checked %s in checklist %s", + "activity-unchecked-item-card": "unchecked %s in checklist %s", + "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checklist-uncompleted-card": "uncompleted the checklist %s", + "activity-editComment": "edited comment %s", + "activity-deleteComment": "deleted comment %s", + "activity-receivedDate": "edited received date to %s of %s", + "activity-startDate": "edited start date to %s of %s", + "activity-dueDate": "edited due date to %s of %s", + "activity-endDate": "edited end date to %s of %s", + "add-attachment": "Add Attachment", + "add-board": "Add Board", + "add-template": "Add Template", + "add-card": "Add Card", + "add-card-to-top-of-list": "Add Card to Top of List", + "add-card-to-bottom-of-list": "Add Card to Bottom of List", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "setSwimlaneHeightPopup-title": "Set Swimlane Height", + "set-swimlane-height": "Set Swimlane Height", + "set-swimlane-height-value": "Swimlane Height (pixels)", + "swimlane-height-error-message": "Swimlane height must be a positive integer", + "add-swimlane": "Add Swimlane", + "add-subtask": "Add Subtask", + "add-checklist": "Add Checklist", + "add-checklist-item": "Add an item to checklist", + "close-add-checklist-item": "Close add an item to checklist form", + "close-edit-checklist-item": "Close edit an item to checklist form", + "convertChecklistItemToCardPopup-title": "Convert to Card", + "add-cover": "Add cover image to minicard", + "add-label": "Add Label", + "add-list": "Add List", + "add-after-list": "Add After List", + "add-members": "Add Members", + "added": "Added", + "addMemberPopup-title": "Members", + "memberPopup-title": "Member Settings", + "admin": "Admin", + "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", + "all-boards": "All Boards", + "and-n-other-card": "And __count__ other card", + "and-n-other-card_plural": "And __count__ other cards", + "apply": "Apply", + "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.", + "app-try-reconnect": "Try to reconnect.", + "archive": "Move to Archive", + "archive-all": "Move All to Archive", + "archive-board": "Move Board to Archive", + "archive-card": "Move Card to Archive", + "archive-list": "Move List to Archive", + "archive-swimlane": "Move Swimlane to Archive", + "archive-selection": "Move selection to Archive", + "archiveBoardPopup-title": "Move Board to Archive?", + "archived-items": "Archive", + "archived-boards": "Boards in Archive", + "restore-board": "Restore Board", + "no-archived-boards": "No Boards in Archive.", + "archives": "Archive", + "template": "Template", + "templates": "Templates", + "template-container": "Template Container", + "add-template-container": "Add Template Container", + "assign-member": "Assign member", + "attached": "attached", + "attachment": "Attachment", + "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.", + "attachmentDeletePopup-title": "Delete Attachment?", + "attachments": "Attachments", + "auto-watch": "Automatically watch boards when they are created", + "avatar-too-big": "The avatar is too large (__size__ max)", + "back": "Back", + "board-change-color": "Change color", + "board-change-background-image": "Change Background Image", + "board-background-image-url": "Background Image URL", + "add-background-image": "Add Background Image", + "remove-background-image": "Remove Background Image", + "show-at-all-boards-page" : "Show at All Boards page", + "board-info-on-my-boards" : "All Boards Settings", + "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", + "boardInfoOnMyBoards-title": "All Boards Settings", + "show-card-counter-per-list": "Show card count per list", + "show-board_members-avatar": "Show Board members avatars", + "board-nb-stars": "%s stars", + "board-not-found": "Board not found", + "board-private-info": "This board will be private.", + "board-public-info": "This board will be public.", + "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.", + "boardChangeColorPopup-title": "Change Board Background", + "boardChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeColorPopup-title": "Change color", + "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "boardChangeTitlePopup-title": "Rename Board", + "boardChangeVisibilityPopup-title": "Change Visibility", + "boardChangeWatchPopup-title": "Change Watch", + "boardMenuPopup-title": "Board Settings", + "allBoardsMenuPopup-title": "Settings", + "boardChangeViewPopup-title": "Board View", + "boards": "Boards", + "board-view": "Board View", + "board-view-cal": "Calendar", + "board-view-swimlanes": "Swimlanes", + "board-view-collapse": "Collapse", + "board-view-gantt": "Gantt", + "board-view-lists": "Lists", + "bucket-example": "Like “Bucket List” for example", + "cancel": "Cancel", + "card-archived": "This card is moved to Archive.", + "board-archived": "This board is moved to Archive.", + "card-comments-title": "This card has %s comment.", + "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", + "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", + "card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.", + "card-archive-pop": "Card will not be visible at this list after archiving card.", + "card-archive-suggest-cancel": "You can later restore card from Archive.", + "card-due": "Due", + "card-due-on": "Due on", + "card-spent": "Spent Time", + "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", + "card-edit-labels": "Edit labels", + "card-edit-members": "Edit members", + "card-labels-title": "Change the labels for the card.", + "card-members-title": "Add or remove members of the board from the card.", + "card-start": "Start", + "card-start-on": "Starts on", + "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", + "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", + "card-edit-voting": "Edit voting", + "editVoteEndDatePopup-title": "Change vote end date", + "allowNonBoardMembers": "Allow all logged in users", + "vote-question": "Voting question", + "vote-public": "Show who voted what", + "vote-for-it": "for it", + "vote-against": "against", + "deleteVotePopup-title": "Delete vote?", + "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.", + "cardStartPlanningPokerPopup-title": "Start a Planning Poker", + "card-edit-planning-poker": "Edit Planning Poker", + "editPokerEndDatePopup-title": "Change Planning Poker vote end date", + "poker-question": "Planning Poker", + "poker-one": "1", + "poker-two": "2", + "poker-three": "3", + "poker-five": "5", + "poker-eight": "8", + "poker-thirteen": "13", + "poker-twenty": "20", + "poker-forty": "40", + "poker-oneHundred": "100", + "poker-unsure": "?", + "poker-finish": "Finish", + "poker-result-votes": "Votes", + "poker-result-who": "Who", + "poker-replay": "Replay", + "set-estimation": "Set Estimation", + "deletePokerPopup-title": "Delete planning poker?", + "poker-delete-pop": "Deleting is permanent. You will lose all actions associated with this planning poker.", + "cardDeletePopup-title": "Delete Card?", + "cardArchivePopup-title": "Archive Card?", + "cardDetailsActionsPopup-title": "Card Actions", + "cardLabelsPopup-title": "Labels", + "cardMembersPopup-title": "Members", + "cardMorePopup-title": "More", + "cardTemplatePopup-title": "Create template", + "cards": "Cards", + "cards-count": "Cards", + "cards-count-one": "Card", + "casSignIn": "Sign In with CAS", + "cardType-card": "Card", + "cardType-linkedCard": "Linked Card", + "cardType-linkedBoard": "Linked Board", + "change": "Change", + "change-avatar": "Change Avatar", + "change-password": "Change Password", + "change-permissions": "Change permissions", + "change-settings": "Change Settings", + "changeAvatarPopup-title": "Change Avatar", + "changeLanguagePopup-title": "Change Language", + "changePasswordPopup-title": "Change Password", + "changePermissionsPopup-title": "Change Permissions", + "changeSettingsPopup-title": "Change Settings", + "subtasks": "Subtasks", + "checklists": "Checklists", + "click-to-star": "Click to star this board.", + "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", + "clipboard": "Clipboard or drag & drop", + "close": "Close", + "close-board": "Close Board", + "close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.", + "close-card": "Close Card", + "color-black": "black", + "color-blue": "blue", + "color-crimson": "crimson", + "color-darkgreen": "darkgreen", + "color-gold": "gold", + "color-gray": "gray", + "color-green": "green", + "color-indigo": "indigo", + "color-lime": "lime", + "color-magenta": "magenta", + "color-mistyrose": "mistyrose", + "color-navy": "navy", + "color-orange": "orange", + "color-paleturquoise": "paleturquoise", + "color-peachpuff": "peachpuff", + "color-pink": "pink", + "color-plum": "plum", + "color-purple": "purple", + "color-red": "red", + "color-saddlebrown": "saddlebrown", + "color-silver": "silver", + "color-sky": "sky", + "color-slateblue": "slateblue", + "color-white": "white", + "color-yellow": "yellow", + "unset-color": "Unset", + "comments": "Comments", + "comment": "Comment", + "comment-placeholder": "Write Comment", + "comment-only": "Comment only", + "comment-only-desc": "Can comment on cards only.", + "comment-delete": "Are you sure you want to delete the comment?", + "deleteCommentPopup-title": "Delete comment?", + "no-comments": "No comments", + "no-comments-desc": "Can not see comments and activities.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", + "computer": "Computer", + "confirm-subtask-delete-popup": "Are you sure you want to delete subtask?", + "confirm-checklist-delete-popup": "Are you sure you want to delete the checklist?", + "subtaskDeletePopup-title": "Delete Subtask?", + "checklistDeletePopup-title": "Delete Checklist?", + "copy-card-link-to-clipboard": "Copy card link to clipboard", + "copy-text-to-clipboard": "Copy text to clipboard", + "linkCardPopup-title": "Link Card", + "searchElementPopup-title": "Search", + "copyCardPopup-title": "Copy Card", + "copyManyCardsPopup-title": "Copy Template to Many Cards", + "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", + "copyManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", + "create": "Create", + "createBoardPopup-title": "Create Board", + "chooseBoardSourcePopup-title": "Import board", + "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", + "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-currency": "Currency", + "custom-field-currency-option": "Currency Code", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", + "date": "Date", + "decline": "Decline", + "default-avatar": "Default avatar", + "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", + "deleteLabelPopup-title": "Delete Label?", + "description": "Description", + "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", + "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", + "discard": "Discard", + "done": "Done", + "download": "Download", + "edit": "Edit", + "edit-avatar": "Change Avatar", + "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", + "soft-wip-limit": "Soft WIP Limit", + "editCardStartDatePopup-title": "Change start date", + "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", + "addReactionPopup-title": "Add reaction", + "editCardSpentTimePopup-title": "Change spent time", + "editLabelPopup-title": "Change Label", + "editNotificationPopup-title": "Edit Notification", + "editProfilePopup-title": "Edit Profile", + "email": "Email", + "email-enrollAccount-subject": "An account created for you on __siteName__", + "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", + "email-fail": "Sending email failed", + "email-fail-text": "Error trying to send email", + "email-invalid": "Invalid email", + "email-invite": "Invite via Email", + "email-invite-subject": "__inviter__ sent you an invitation", + "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", + "email-resetPassword-subject": "Reset your password on __siteName__", + "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", + "email-sent": "Email sent", + "email-verifyEmail-subject": "Verify your email address on __siteName__", + "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-wip-limit": "Enable WIP Limit", + "error-board-doesNotExist": "This board does not exist", + "error-board-notAdmin": "You need to be admin of this board to do that", + "error-board-notAMember": "You need to be a member of this board to do that", + "error-json-malformed": "Your text is not valid JSON", + "error-json-schema": "Your JSON data does not include the proper information in the correct format", + "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ", + "error-list-doesNotExist": "This list does not exist", + "error-user-doesNotExist": "This user does not exist", + "error-user-notAllowSelf": "You can not invite yourself", + "error-user-notCreated": "This user is not created", + "error-username-taken": "This username is already taken", + "error-orgname-taken": "This organization name is already taken", + "error-teamname-taken": "This team name is already taken", + "error-email-taken": "Email has already been taken", + "export-board": "Export board", + "export-board-json": "Export board to JSON", + "export-board-csv": "Export board to CSV", + "export-board-tsv": "Export board to TSV", + "export-board-excel": "Export board to Excel", + "user-can-not-export-excel": "User can not export Excel", + "export-board-html": "Export board to HTML", + "export-card": "Export card", + "export-card-pdf": "Export card to PDF", + "user-can-not-export-card-to-pdf": "User can not export card to PDF", + "exportBoardPopup-title": "Export board", + "exportCardPopup-title": "Export card", + "sort": "Sort", + "sorted": "Sorted", + "remove-sort": "Remove sort", + "sort-desc": "Click to Sort List", + "list-sort-by": "Sort the List By:", + "list-label-modifiedAt": "Last Access Time", + "list-label-title": "Name of the List", + "list-label-sort": "Your Manual Order", + "list-label-short-modifiedAt": "(L)", + "list-label-short-title": "(N)", + "list-label-short-sort": "(M)", + "filter": "Filter", + "filter-cards": "Filter Cards or Lists", + "filter-dates-label": "Filter by date", + "filter-no-due-date": "No due date", + "filter-overdue": "Overdue", + "filter-due-today": "Due today", + "filter-due-this-week": "Due this week", + "filter-due-next-week": "Due next week", + "filter-due-tomorrow": "Due tomorrow", + "list-filter-label": "Filter List by Title", + "filter-clear": "Clear filter", + "filter-labels-label": "Filter by label", + "filter-no-label": "No label", + "filter-member-label": "Filter by member", + "filter-no-member": "No member", + "filter-assignee-label": "Filter by assignee", + "filter-no-assignee": "No assignee", + "filter-custom-fields-label": "Filter by Custom Fields", + "filter-no-custom-fields": "No Custom Fields", + "filter-show-archive": "Show archived lists", + "filter-hide-empty": "Hide empty lists", + "filter-on": "Filter is on", + "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", + "filter-to-selection": "Filter to selection", + "other-filters-label": "Other Filters", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "fullname": "Full Name", + "header-logo-title": "Go back to your boards page.", + "show-activities": "Show Activities", + "headerBarCreateBoardPopup-title": "Create Board", + "home": "Home", + "import": "Import", + "impersonate-user": "Impersonate user", + "link": "Link", + "import-board": "import board", + "import-board-c": "Import board", + "import-board-title-trello": "Import board from Trello", + "import-board-title-wekan": "Import board from previous export", + "import-board-title-csv": "Import board from CSV/TSV", + "from-trello": "From Trello", + "from-wekan": "From previous export", + "from-csv": "From CSV/TSV", + "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.", + "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .", + "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.", + "import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.", + "import-json-placeholder": "Paste your valid JSON data here", + "import-csv-placeholder": "Paste your valid CSV/TSV data here", + "import-map-members": "Map members", + "import-members-map": "Your imported board has some members. Please map the members you want to import to your users", + "import-members-map-note": "Note: Unmapped members will be assigned to the current user.", + "import-show-user-mapping": "Review members mapping", + "import-user-select": "Pick your existing user you want to use as this member", + "importMapMembersAddPopup-title": "Select member", + "info": "Version", + "initials": "Initials", + "invalid-date": "Invalid date", + "invalid-time": "Invalid time", + "invalid-user": "Invalid user", + "joined": "joined", + "just-invited": "You are just invited to this board", + "keyboard-shortcuts": "Keyboard shortcuts", + "label-create": "Create Label", + "label-default": "%s label (default)", + "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", + "labels": "Labels", + "language": "Language", + "last-admin-desc": "You can’t change roles because there must be at least one admin.", + "leave-board": "Leave Board", + "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", + "leaveBoardPopup-title": "Leave Board ?", + "link-card": "Link to this card", + "list-archive-cards": "Move all cards in this list to Archive", + "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.", + "list-move-cards": "Move all cards in this list", + "list-select-cards": "Select all cards in this list", + "set-color-list": "Set Color", + "listActionPopup-title": "List Actions", + "settingsUserPopup-title": "User Settings", + "settingsTeamPopup-title": "Team Settings", + "settingsOrgPopup-title": "Organization Settings", + "swimlaneActionPopup-title": "Swimlane Actions", + "swimlaneAddPopup-title": "Add a Swimlane below", + "listImportCardPopup-title": "Import a Trello card", + "listImportCardsTsvPopup-title": "Import Excel CSV/TSV", + "listMorePopup-title": "More", + "link-list": "Link to this list", + "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", + "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.", + "lists": "Lists", + "swimlanes": "Swimlanes", + "log-out": "Log Out", + "log-in": "Log In", + "loginPopup-title": "Log In", + "memberMenuPopup-title": "Member Settings", + "members": "Members", + "menu": "Menu", + "move-selection": "Move selection", + "moveCardPopup-title": "Move Card", + "moveCardToBottom-title": "Move to Bottom", + "moveCardToTop-title": "Move to Top", + "moveSelectionPopup-title": "Move selection", + "multi-selection": "Multi-Selection", + "multi-selection-label": "Set label for selection", + "multi-selection-member": "Set member for selection", + "multi-selection-on": "Multi-Selection is on", + "muted": "Muted", + "muted-info": "You will never be notified of any changes in this board", + "my-boards": "My Boards", + "name": "Name", + "no-archived-cards": "No cards in Archive.", + "no-archived-lists": "No lists in Archive.", + "no-archived-swimlanes": "No swimlanes in Archive.", + "no-results": "No results", + "normal": "Normal", + "normal-desc": "Can view and edit cards. Can't change settings.", + "not-accepted-yet": "Invitation not accepted yet", + "notify-participate": "Receive updates to any cards you participate as creator or member", + "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", + "optional": "optional", + "or": "or", + "page-maybe-private": "This page may be private. You may be able to view it by logging in.", + "page-not-found": "Page not found.", + "password": "Password", + "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", + "participating": "Participating", + "preview": "Preview", + "previewAttachedImagePopup-title": "Preview", + "previewClipboardImagePopup-title": "Preview", + "private": "Private", + "private-desc": "This board is private. Only people added to the board can view and edit it.", + "profile": "Profile", + "public": "Public", + "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.", + "quick-access-description": "Star a board to add a shortcut in this bar.", + "remove-cover": "Remove cover image from minicard", + "remove-from-board": "Remove from Board", + "remove-label": "Remove Label", + "listDeletePopup-title": "Delete List ?", + "remove-member": "Remove Member", + "remove-member-from-card": "Remove from Card", + "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", + "removeMemberPopup-title": "Remove Member?", + "rename": "Rename", + "rename-board": "Rename Board", + "restore": "Restore", + "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions", + "rescue-card-description-dialogue": "Overwrite current card description with your changes?", + "save": "Save", + "search": "Search", + "rules": "Rules", + "search-cards": "Search from card/list titles, descriptions and custom fields on this board", + "search-example": "Write text you search and press Enter", + "select-color": "Select Color", + "select-board": "Select Board", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", + "shortcut-assign-self": "Assign yourself to current card", + "shortcut-autocomplete-emoji": "Autocomplete emoji", + "shortcut-autocomplete-members": "Autocomplete members", + "shortcut-clear-filters": "Clear all filters", + "shortcut-close-dialog": "Close Dialog", + "shortcut-filter-my-cards": "Filter my cards", + "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-show-shortcuts": "Bring up this shortcuts list", + "shortcut-toggle-filterbar": "Toggle Filter Sidebar", + "shortcut-toggle-searchbar": "Toggle Search Sidebar", + "shortcut-toggle-sidebar": "Toggle Board Sidebar", + "show-cards-minimum-count": "Show cards count if list contains more than", + "sidebar-open": "Open Sidebar", + "sidebar-close": "Close Sidebar", + "signupPopup-title": "Create an Account", + "star-board-title": "Click to star this board. It will show up at top of your boards list.", + "starred-boards": "Starred Boards", + "starred-boards-description": "Starred boards show up at the top of your boards list.", + "subscribe": "Subscribe", + "team": "Team", + "this-board": "this board", + "this-card": "this card", + "spent-time-hours": "Spent time (hours)", + "overtime-hours": "Overtime (hours)", + "overtime": "Overtime", + "has-overtime-cards": "Has overtime cards", + "has-spenttime-cards": "Has spent time cards", + "time": "Time", + "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", + "remove-labels-multiselect": "Multi-Selection removes labels 1-9", + "tracking": "Tracking", + "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", + "unassign-member": "Unassign member", + "unsaved-description": "You have an unsaved description.", + "unwatch": "Unwatch", + "upload": "Upload", + "upload-avatar": "Upload an avatar", + "uploaded-avatar": "Uploaded an avatar", + "custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL", + "custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL", + "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", + "custom-login-logo-image-url": "Custom Login Logo Image URL", + "custom-login-logo-link-url": "Custom Login Logo Link URL", + "custom-help-link-url": "Custom Help Link URL", + "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", + "username": "Username", + "import-usernames": "Import Usernames", + "view-it": "View it", + "warn-list-archived": "warning: this card is in an list at Archive", + "watch": "Watch", + "watching": "Watching", + "watching-info": "You will be notified of any change in this board", + "welcome-board": "Welcome Board", + "welcome-swimlane": "Milestone 1", + "welcome-list1": "Basics", + "welcome-list2": "Advanced", + "card-templates-swimlane": "Card Templates", + "list-templates-swimlane": "List Templates", + "board-templates-swimlane": "Board Templates", + "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", + "admin-panel": "Admin Panel", + "settings": "Settings", + "people": "People", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", + "disable-forgot-password": "Disable Forgot Password", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-tls-description": "Enable TLS support for SMTP server", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Username", + "smtp-password": "Password", + "smtp-tls": "TLS support", + "send-from": "From", + "send-smtp-test": "Send a test email to yourself", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ sent you an invitation", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "email-smtp-test-subject": "SMTP Test Email", + "email-smtp-test-text": "You have successfully sent an email", + "error-invitation-code-not-exist": "Invitation code doesn't exist", + "error-notAuthorized": "You are not authorized to view this page.", + "webhook-title": "Webhook Name", + "webhook-token": "Token (Optional for Authentication)", + "outgoing-webhooks": "Outgoing Webhooks", + "bidirectional-webhooks": "Two-Way Webhooks", + "outgoingWebhooksPopup-title": "Outgoing Webhooks", + "boardCardTitlePopup-title": "Card Title Filter", + "disable-webhook": "Disable This Webhook", + "global-webhook": "Global Webhooks", + "new-outgoing-webhook": "New Outgoing Webhook", + "no-name": "(Unknown)", + "Node_version": "Node version", + "Meteor_version": "Meteor version", + "MongoDB_version": "MongoDB version", + "MongoDB_storage_engine": "MongoDB storage engine", + "MongoDB_Oplog_enabled": "MongoDB Oplog enabled", + "OS_Arch": "OS Arch", + "OS_Cpus": "OS CPU Count", + "OS_Freemem": "OS Free Memory", + "OS_Loadavg": "OS Load Average", + "OS_Platform": "OS Platform", + "OS_Release": "OS Release", + "OS_Totalmem": "OS Total Memory", + "OS_Type": "OS Type", + "OS_Uptime": "OS Uptime", + "days": "days", + "hours": "hours", + "minutes": "minutes", + "seconds": "seconds", + "show-field-on-card": "Show this field on card", + "automatically-field-on-card": "Add field to new cards", + "always-field-on-card": "Add field to all cards", + "showLabel-field-on-card": "Show field label on minicard", + "showSum-field-on-list": "Show sum of fields at top of list", + "yes": "Yes", + "no": "No", + "accounts": "Accounts", + "accounts-allowEmailChange": "Allow Email Change", + "accounts-allowUserNameChange": "Allow Username Change", + "tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only", + "tableVisibilityMode" : "Boards visibility", + "createdAt": "Created at", + "modifiedAt": "Modified at", + "verified": "Verified", + "active": "Active", + "card-received": "Received", + "card-received-on": "Received on", + "card-end": "End", + "card-end-on": "Ends on", + "editCardReceivedDatePopup-title": "Change received date", + "editCardEndDatePopup-title": "Change end date", + "setCardColorPopup-title": "Set color", + "setCardActionsColorPopup-title": "Choose a color", + "setSwimlaneColorPopup-title": "Choose a color", + "setListColorPopup-title": "Choose a color", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "card-sorting-by-number": "Card sorting by number", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board", + "default-subtasks-board": "Subtasks for __board__ board", + "default": "Default", + "defaultdefault": "Default", + "queue": "Queue", + "subtask-settings": "Subtasks Settings", + "card-settings": "Card Settings", + "minicard-settings": "Minicard Settings", + "boardSubtaskSettingsPopup-title": "Board Subtasks Settings", + "boardCardSettingsPopup-title": "Card Settings", + "boardMinicardSettingsPopup-title": "Minicard Settings", + "deposit-subtasks-board": "Deposit subtasks to this board:", + "deposit-subtasks-list": "Landing list for subtasks deposited here:", + "show-parent-in-minicard": "Show parent in minicard:", + "description-on-minicard": "Description on minicard", + "cover-attachment-on-minicard": "Cover image on minicard", + "badge-attachment-on-minicard": "Count of attachments on minicard", + "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "prefix-with-full-path": "Prefix with full path", + "prefix-with-parent": "Prefix with parent", + "subtext-with-full-path": "Subtext with full path", + "subtext-with-parent": "Subtext with parent", + "change-card-parent": "Change card's parent", + "parent-card": "Parent card", + "source-board": "Source board", + "no-parent": "Don't show parent", + "activity-added-label": "added label '%s' to %s", + "activity-removed-label": "removed label '%s' from %s", + "activity-delete-attach": "deleted an attachment from %s", + "activity-added-label-card": "added label '%s'", + "activity-removed-label-card": "removed label '%s'", + "activity-delete-attach-card": "deleted an attachment", + "activity-set-customfield": "set custom field '%s' to '%s' in %s", + "activity-unset-customfield": "unset custom field '%s' in %s", + "r-rule": "Rule", + "r-add-trigger": "Add trigger", + "r-add-action": "Add action", + "r-board-rules": "Board rules", + "r-add-rule": "Add rule", + "r-view-rule": "View rule", + "r-delete-rule": "Delete rule", + "r-new-rule-name": "New rule title", + "r-no-rules": "No rules", + "r-trigger": "Trigger", + "r-action": "Action", + "r-when-a-card": "When a card", + "r-is": "is", + "r-is-moved": "is moved", + "r-added-to": "Added to", + "r-removed-from": "Removed from", + "r-the-board": "the board", + "r-list": "list", + "set-filter": "Set Filter", + "r-moved-to": "Moved to", + "r-moved-from": "Moved from", + "r-archived": "Moved to Archive", + "r-unarchived": "Restored from Archive", + "r-a-card": "a card", + "r-when-a-label-is": "When a label is", + "r-when-the-label": "When the label", + "r-list-name": "list name", + "r-when-a-member": "When a member is", + "r-when-the-member": "When the member", + "r-name": "name", + "r-when-a-attach": "When an attachment", + "r-when-a-checklist": "When a checklist is", + "r-when-the-checklist": "When the checklist", + "r-completed": "Completed", + "r-made-incomplete": "Made incomplete", + "r-when-a-item": "When a checklist item is", + "r-when-the-item": "When the checklist item", + "r-checked": "Checked", + "r-unchecked": "Unchecked", + "r-move-card-to": "Move card to", + "r-top-of": "Top of", + "r-bottom-of": "Bottom of", + "r-its-list": "its list", + "r-archive": "Move to Archive", + "r-unarchive": "Restore from Archive", + "r-card": "card", + "r-add": "Add", + "r-remove": "Remove", + "r-label": "label", + "r-member": "member", + "r-remove-all": "Remove all members from the card", + "r-set-color": "Set color to", + "r-checklist": "checklist", + "r-check-all": "Check all", + "r-uncheck-all": "Uncheck all", + "r-items-check": "items of checklist", + "r-check": "Check", + "r-uncheck": "Uncheck", + "r-item": "item", + "r-of-checklist": "of checklist", + "r-send-email": "Send an email", + "r-to": "to", + "r-of": "of", + "r-subject": "subject", + "r-rule-details": "Rule details", + "r-d-move-to-top-gen": "Move card to top of its list", + "r-d-move-to-top-spec": "Move card to top of list", + "r-d-move-to-bottom-gen": "Move card to bottom of its list", + "r-d-move-to-bottom-spec": "Move card to bottom of list", + "r-d-send-email": "Send email", + "r-d-send-email-to": "to", + "r-d-send-email-subject": "subject", + "r-d-send-email-message": "message", + "r-d-archive": "Move card to Archive", + "r-d-unarchive": "Restore card from Archive", + "r-d-add-label": "Add label", + "r-d-remove-label": "Remove label", + "r-create-card": "Create new card", + "r-in-list": "in list", + "r-in-swimlane": "in swimlane", + "r-d-add-member": "Add member", + "r-d-remove-member": "Remove member", + "r-d-remove-all-member": "Remove all member", + "r-d-check-all": "Check all items of a list", + "r-d-uncheck-all": "Uncheck all items of a list", + "r-d-check-one": "Check item", + "r-d-uncheck-one": "Uncheck item", + "r-d-check-of-list": "of checklist", + "r-d-add-checklist": "Add checklist", + "r-d-remove-checklist": "Remove checklist", + "r-by": "by", + "r-add-checklist": "Add checklist", + "r-with-items": "with items", + "r-items-list": "item1,item2,item3", + "r-add-swimlane": "Add swimlane", + "r-swimlane-name": "swimlane name", + "r-board-note": "Note: leave a field empty to match every possible value. ", + "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", + "r-when-a-card-is-moved": "When a card is moved to another list", + "r-set": "Set", + "r-update": "Update", + "r-datefield": "date field", + "r-df-start-at": "start", + "r-df-due-at": "due", + "r-df-end-at": "end", + "r-df-received-at": "received", + "r-to-current-datetime": "to current date/time", + "r-remove-value-from": "Remove value from", + "r-link-card": "Link card to", + "ldap": "LDAP", + "oauth2": "OAuth2", + "cas": "CAS", + "authentication-method": "Authentication method", + "authentication-type": "Authentication type", + "custom-product-name": "Custom Product Name", + "layout": "Layout", + "hide-logo": "Hide Logo", + "hide-card-counter-list": "Hide card counter list on All Boards", + "hide-board-member-list": "Hide board member list on All Boards", + "add-custom-html-after-body-start": "Add Custom HTML after start", + "add-custom-html-before-body-end": "Add Custom HTML before end", + "error-undefined": "Something went wrong", + "error-ldap-login": "An error occurred while trying to login", + "display-authentication-method": "Display Authentication Method", + "oidc-button-text": "Customize the OIDC button text", + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board", + "org-number": "The number of organizations is: ", + "team-number": "The number of teams is: ", + "people-number": "The number of people is: ", + "swimlaneDeletePopup-title": "Delete Swimlane ?", + "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", + "restore-all": "Restore all", + "delete-all": "Delete all", + "loading": "Loading, please wait.", + "previous_as": "last time was", + "act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__", + "act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)", + "act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)", + "act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)", + "a-dueAt": "modified due time to be", + "a-endAt": "modified ending time to be", + "a-startAt": "modified starting time to be", + "a-receivedAt": "modified received time to be", + "almostdue": "current due time %s is approaching", + "pastdue": "current due time %s is past", + "duenow": "current due time %s is today", + "act-newDue": "__list__/__card__ has 1st due reminder [__board__]", + "act-withDue": "__list__/__card__ due reminders [__board__]", + "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching", + "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", + "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", + "act-atUserComment": "You were mentioned in [__board__] __list__/__card__", + "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.", + "delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.", + "delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.", + "accounts-allowUserDelete": "Allow users to self delete their account", + "hide-minicard-label-text": "Hide minicard label text", + "show-desktop-drag-handles": "Show desktop drag handles", + "assignee": "Assignee", + "cardAssigneesPopup-title": "Assignee", + "addmore-detail": "Add a more detailed description", + "show-on-card": "Show on Card", + "show-on-minicard": "Show on Minicard", + "new": "New", + "editOrgPopup-title": "Edit Organization", + "newOrgPopup-title": "New Organization", + "editTeamPopup-title": "Edit Team", + "newTeamPopup-title": "New Team", + "editUserPopup-title": "Edit User", + "newUserPopup-title": "New User", + "notifications": "Notifications", + "help": "Help", + "view-all": "View All", + "filter-by-unread": "Filter by Unread", + "mark-all-as-read": "Mark all as read", + "remove-all-read": "Remove all read", + "allow-rename": "Allow Rename", + "allowRenamePopup-title": "Allow Rename", + "start-day-of-week": "Set day of the week start", + "monday": "Monday", + "tuesday": "Tuesday", + "wednesday": "Wednesday", + "thursday": "Thursday", + "friday": "Friday", + "saturday": "Saturday", + "sunday": "Sunday", + "status": "Status", + "swimlane": "Swimlane", + "owner": "Owner", + "last-modified-at": "Last modified at", + "last-activity": "Last activity", + "voting": "Voting", + "archived": "Archived", + "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", + "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", + "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", + "task": "Task", + "create-task": "Create Task", + "ok": "OK", + "organizations": "Organizations", + "teams": "Teams", + "displayName": "Display Name", + "shortName": "Short Name", + "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "website": "Website", + "person": "Person", + "my-cards": "My Cards", + "card": "Card", + "list": "List", + "board": "Board", + "context-separator": "/", + "myCardsViewChange-title": "My Cards View", + "myCardsViewChangePopup-title": "My Cards View", + "myCardsViewChange-choice-boards": "Boards", + "myCardsViewChange-choice-table": "Table", + "myCardsSortChange-title": "My Cards Sort", + "myCardsSortChangePopup-title": "My Cards Sort", + "myCardsSortChange-choice-board": "By Board", + "myCardsSortChange-choice-dueat": "By Due Date", + "dueCards-title": "Due Cards", + "dueCardsViewChange-title": "Due Cards View", + "dueCardsViewChangePopup-title": "Due Cards View", + "dueCardsViewChange-choice-me": "Me", + "dueCardsViewChange-choice-all": "All Users", + "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", + "broken-cards": "Broken Cards", + "board-title-not-found": "Board '%s' not found.", + "swimlane-title-not-found": "Swimlane '%s' not found.", + "list-title-not-found": "List '%s' not found.", + "label-not-found": "Label '%s' not found.", + "label-color-not-found": "Label color %s not found.", + "user-username-not-found": "Username '%s' not found.", + "comment-not-found": "Card with comment containing text '%s' not found.", + "org-name-not-found": "Organization '%s' not found.", + "team-name-not-found": "Team '%s' not found.", + "globalSearch-title": "Search All Boards", + "no-cards-found": "No Cards Found", + "one-card-found": "One Card Found", + "n-cards-found": "%s Cards Found", + "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", + "operator-board": "board", + "operator-board-abbrev": "b", + "operator-swimlane": "swimlane", + "operator-swimlane-abbrev": "s", + "operator-list": "list", + "operator-list-abbrev": "l", + "operator-label": "label", + "operator-label-abbrev": "#", + "operator-user": "user", + "operator-user-abbrev": "@", + "operator-member": "member", + "operator-member-abbrev": "m", + "operator-assignee": "assignee", + "operator-assignee-abbrev": "a", + "operator-creator": "creator", + "operator-status": "status", + "operator-due": "due", + "operator-created": "created", + "operator-modified": "modified", + "operator-sort": "sort", + "operator-comment": "comment", + "operator-has": "has", + "operator-limit": "limit", + "operator-debug": "debug", + "operator-org": "org", + "operator-team": "team", + "predicate-archived": "archived", + "predicate-open": "open", + "predicate-ended": "ended", + "predicate-all": "all", + "predicate-overdue": "overdue", + "predicate-week": "week", + "predicate-month": "month", + "predicate-quarter": "quarter", + "predicate-year": "year", + "predicate-due": "due", + "predicate-modified": "modified", + "predicate-created": "created", + "predicate-attachment": "attachment", + "predicate-description": "description", + "predicate-checklist": "checklist", + "predicate-start": "start", + "predicate-end": "end", + "predicate-assignee": "assignee", + "predicate-member": "member", + "predicate-public": "public", + "predicate-private": "private", + "predicate-selector": "selector", + "predicate-projection": "projection", + "operator-unknown-error": "%s is not an operator", + "operator-number-expected": "operator __operator__ expected a number, got '__value__'", + "operator-sort-invalid": "sort of '%s' is invalid", + "operator-status-invalid": "'%s' is not a valid status", + "operator-has-invalid": "%s is not a valid existence check", + "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", + "operator-debug-invalid": "%s is not a valid debug predicate", + "next-page": "Next Page", + "previous-page": "Previous Page", + "heading-notes": "Notes", + "globalSearch-instructions-heading": "Search Instructions", + "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-operators": "Available operators:", + "globalSearch-instructions-operator-board": "`__operator_board__:` - cards in boards matching the specified *<title>*", + "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", + "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", + "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", + "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - cards where *<username>* is the card's creator", + "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*", + "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", + "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", + "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", + "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", + "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", + "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", + "globalSearch-instructions-notes-1": "Multiple operators may be specified.", + "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", + "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", + "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", + "globalSearch-instructions-notes-4": "Text searches are case insensitive.", + "globalSearch-instructions-notes-5": "By default archived cards are not searched.", + "link-to-search": "Link to this search", + "excel-font": "Arial", + "number": "Number", + "label-colors": "Label Colors", + "label-names": "Label Names", + "archived-at": "archived at", + "sort-cards": "Sort Cards", + "sort-is-on": "Sort is on", + "cardsSortPopup-title": "Sort Cards", + "due-date": "Due Date", + "server-error": "Server Error", + "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`", + "title-alphabetically": "Title (Alphabetically)", + "created-at-newest-first": "Created At (Newest First)", + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", + "move-swimlane": "Move Swimlane", + "moveSwimlanePopup-title": "Move Swimlane", + "custom-field-stringtemplate": "String Template", + "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", + "custom-field-stringtemplate-separator": "Separator (use or   for a space)", + "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", + "creator": "Creator", + "creator-on-minicard": "Creator on minicard", + "filesReportTitle": "Files Report", + "reports": "Reports", + "rulesReportTitle": "Rules Report", + "boardsReportTitle": "Boards Report", + "cardsReportTitle": "Cards Report", + "copy-swimlane": "Copy Swimlane", + "copySwimlanePopup-title": "Copy Swimlane", + "display-card-creator": "Display Card Creator", + "wait-spinner": "Wait Spinner", + "Bounce": "Bounce Wait Spinner", + "Cube": "Cube Wait Spinner", + "Cube-Grid": "Cube-Grid Wait Spinner", + "Dot": "Dot Wait Spinner", + "Double-Bounce": "Double Bounce Wait Spinner", + "Rotateplane": "Rotateplane Wait Spinner", + "Scaleout": "Scaleout Wait Spinner", + "Wave": "Wave Wait Spinner", + "maximize-card": "Maximize Card", + "minimize-card": "Minimize Card", + "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", + "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", + "subject": "Subject", + "details": "Details", + "carbon-copy": "Carbon Copy (Cc:)", + "ticket": "Ticket", + "tickets": "Tickets", + "ticket-number": "Ticket Number", + "open": "Open", + "pending": "Pending", + "closed": "Closed", + "resolved": "Resolved", + "cancelled": "Cancelled", + "history": "History", + "request": "Request", + "requests": "Requests", + "help-request": "Help Request", + "editCardSortOrderPopup-title": "Change Sorting", + "cardDetailsPopup-title": "Card Details", + "add-teams": "Add teams", + "add-teams-label": "Added teams are displayed below:", + "remove-team-from-table": "Are you sure you want to remove this team from the board ?", + "confirm-btn": "Confirm", + "remove-btn": "Remove", + "filter-card-title-label": "Filter by card title", + "invite-people-success": "Invitation to register sent with success", + "invite-people-error": "Error while sending invitation to register", + "can-invite-if-same-mailDomainName": "Email domain name", + "to-create-teams-contact-admin": "To create teams, please contact the administrator.", + "Node_heap_total_heap_size": "Node heap: total heap size", + "Node_heap_total_heap_size_executable": "Node heap: total heap size executable", + "Node_heap_total_physical_size": "Node heap: total physical size", + "Node_heap_total_available_size": "Node heap: total available size", + "Node_heap_used_heap_size": "Node heap: used heap size", + "Node_heap_heap_size_limit": "Node heap: heap size limit", + "Node_heap_malloced_memory": "Node heap: malloced memory", + "Node_heap_peak_malloced_memory": "Node heap: peak malloced memory", + "Node_heap_does_zap_garbage": "Node heap: does zap garbage", + "Node_heap_number_of_native_contexts": "Node heap: number of native contexts", + "Node_heap_number_of_detached_contexts": "Node heap: number of detached contexts", + "Node_memory_usage_rss": "Node memory usage: resident set size", + "Node_memory_usage_heap_total": "Node memory usage: total size of the allocated heap", + "Node_memory_usage_heap_used": "Node memory usage: actual memory used", + "Node_memory_usage_external": "Node memory usage: external", + "add-organizations": "Add organizations", + "add-organizations-label": "Added organizations are displayed below:", + "remove-organization-from-board": "Are you sure you want to remove this organization from this board ?", + "to-create-organizations-contact-admin": "To create organizations, please contact administrator.", + "custom-legal-notice-link-url": "Custom legal notice page URL", + "acceptance_of_our_legalNotice": "By continuing, you accept our", + "legalNotice": "legal notice", + "copied": "Copied!", + "checklistActionsPopup-title": "Checklist Actions", + "moveChecklist": "Move Checklist", + "moveChecklistPopup-title": "Move Checklist", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", + "copyChecklist": "Copy Checklist", + "copyChecklistPopup-title": "Copy Checklist", + "card-show-lists": "Card Show Lists", + "subtaskActionsPopup-title": "Subtask Actions", + "attachmentActionsPopup-title": "Attachment Actions", + "attachment-move-storage-fs": "Move attachment to filesystem", + "attachment-move-storage-gridfs": "Move attachment to GridFS", + "attachment-move-storage-s3": "Move attachment to S3", + "attachment-move": "Move Attachment", + "move-all-attachments-to-fs": "Move all attachments to filesystem", + "move-all-attachments-to-gridfs": "Move all attachments to GridFS", + "move-all-attachments-to-s3": "Move all attachments to S3", + "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", + "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", + "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", + "path": "Path", + "version-name": "Version-Name", + "size": "Size", + "storage": "Storage", + "action": "Action", + "board-title": "Board Title", + "attachmentRenamePopup-title": "Rename", + "uploading": "Uploading", + "remaining_time": "Remaining time", + "speed": "Speed", + "progress": "Progress", + "password-again": "Password (again)", + "if-you-already-have-an-account": "If you already have an account", + "register": "Register", + "forgot-password": "Forgot password", + "minicardDetailsActionsPopup-title": "Card Details", + "Mongo_sessions_count": "Mongo sessions count", + "change-visibility": "Change Visibility", + "max-upload-filesize": "Max upload filesize in bytes:", + "allowed-upload-filetypes": "Allowed upload filetypes:", + "max-avatar-filesize": "Max avatar filesize in bytes:", + "allowed-avatar-filetypes": "Allowed avatar filetypes:", + "invalid-file": "If filename is invalid, upload or rename is cancelled.", + "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", + "drag-board": "Drag board", + "translation-number": "The number of custom translation strings is:", + "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", + "newTranslationPopup-title": "New custom translation string", + "editTranslationPopup-title": "Edit custom translation string", + "settingsTranslationPopup-title": "Delete this custom translation string?", + "translation": "Translation", + "text": "Text", + "translation-text": "Translation text", + "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", + "convert-to-markdown": "Convert to markdown", + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" +} diff --git a/imports/i18n/data/en_TR.i18n.json b/imports/i18n/data/en_TR.i18n.json new file mode 100644 index 000000000..78b62d375 --- /dev/null +++ b/imports/i18n/data/en_TR.i18n.json @@ -0,0 +1,1272 @@ +{ + "accept": "Accept", + "act-activity-notify": "Activity Notification", + "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-createCustomField": "created custom field __customField__ at board __board__", + "act-deleteCustomField": "deleted custom field __customField__ at board __board__", + "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createList": "added list __list__ to board __board__", + "act-addBoardMember": "added member __member__ to board __board__", + "act-archivedBoard": "Board __board__ moved to Archive", + "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive", + "act-importBoard": "imported board __board__", + "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__", + "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", + "act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-removeBoardMember": "removed member __member__ from board __board__", + "act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-withBoardTitle": "__board__", + "act-withCardTitle": "[__board__] __card__", + "actions": "Actions", + "activities": "Activities", + "activity": "Activity", + "activity-added": "added %s to %s", + "activity-archived": "%s moved to Archive", + "activity-attached": "attached %s to %s", + "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", + "activity-customfield-created": "created custom field %s", + "activity-excluded": "excluded %s from %s", + "activity-imported": "imported %s into %s from %s", + "activity-imported-board": "imported %s from %s", + "activity-joined": "joined %s", + "activity-moved": "moved %s from %s to %s", + "activity-on": "on %s", + "activity-removed": "removed %s from %s", + "activity-sent": "sent %s to %s", + "activity-unjoined": "unjoined %s", + "activity-subtask-added": "added subtask to %s", + "activity-checked-item": "checked %s in checklist %s of %s", + "activity-unchecked-item": "unchecked %s in checklist %s of %s", + "activity-checklist-added": "added checklist to %s", + "activity-checklist-removed": "removed a checklist from %s", + "activity-checklist-completed": "completed checklist %s of %s", + "activity-checklist-uncompleted": "uncompleted the checklist %s of %s", + "activity-checklist-item-added": "added checklist item to '%s' in %s", + "activity-checklist-item-removed": "removed a checklist item from '%s' in %s", + "add": "Add", + "activity-checked-item-card": "checked %s in checklist %s", + "activity-unchecked-item-card": "unchecked %s in checklist %s", + "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checklist-uncompleted-card": "uncompleted the checklist %s", + "activity-editComment": "edited comment %s", + "activity-deleteComment": "deleted comment %s", + "activity-receivedDate": "edited received date to %s of %s", + "activity-startDate": "edited start date to %s of %s", + "activity-dueDate": "edited due date to %s of %s", + "activity-endDate": "edited end date to %s of %s", + "add-attachment": "Add Attachment", + "add-board": "Add Board", + "add-template": "Add Template", + "add-card": "Add Card", + "add-card-to-top-of-list": "Add Card to Top of List", + "add-card-to-bottom-of-list": "Add Card to Bottom of List", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "setSwimlaneHeightPopup-title": "Set Swimlane Height", + "set-swimlane-height": "Set Swimlane Height", + "set-swimlane-height-value": "Swimlane Height (pixels)", + "swimlane-height-error-message": "Swimlane height must be a positive integer", + "add-swimlane": "Add Swimlane", + "add-subtask": "Add Subtask", + "add-checklist": "Add Checklist", + "add-checklist-item": "Add an item to checklist", + "close-add-checklist-item": "Close add an item to checklist form", + "close-edit-checklist-item": "Close edit an item to checklist form", + "convertChecklistItemToCardPopup-title": "Convert to Card", + "add-cover": "Add cover image to minicard", + "add-label": "Add Label", + "add-list": "Add List", + "add-after-list": "Add After List", + "add-members": "Add Members", + "added": "Added", + "addMemberPopup-title": "Members", + "memberPopup-title": "Member Settings", + "admin": "Admin", + "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", + "all-boards": "All Boards", + "and-n-other-card": "And __count__ other card", + "and-n-other-card_plural": "And __count__ other cards", + "apply": "Apply", + "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.", + "app-try-reconnect": "Try to reconnect.", + "archive": "Move to Archive", + "archive-all": "Move All to Archive", + "archive-board": "Move Board to Archive", + "archive-card": "Move Card to Archive", + "archive-list": "Move List to Archive", + "archive-swimlane": "Move Swimlane to Archive", + "archive-selection": "Move selection to Archive", + "archiveBoardPopup-title": "Move Board to Archive?", + "archived-items": "Archive", + "archived-boards": "Boards in Archive", + "restore-board": "Restore Board", + "no-archived-boards": "No Boards in Archive.", + "archives": "Archive", + "template": "Template", + "templates": "Templates", + "template-container": "Template Container", + "add-template-container": "Add Template Container", + "assign-member": "Assign member", + "attached": "attached", + "attachment": "Attachment", + "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.", + "attachmentDeletePopup-title": "Delete Attachment?", + "attachments": "Attachments", + "auto-watch": "Automatically watch boards when they are created", + "avatar-too-big": "The avatar is too large (__size__ max)", + "back": "Back", + "board-change-color": "Change color", + "board-change-background-image": "Change Background Image", + "board-background-image-url": "Background Image URL", + "add-background-image": "Add Background Image", + "remove-background-image": "Remove Background Image", + "show-at-all-boards-page" : "Show at All Boards page", + "board-info-on-my-boards" : "All Boards Settings", + "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", + "boardInfoOnMyBoards-title": "All Boards Settings", + "show-card-counter-per-list": "Show card count per list", + "show-board_members-avatar": "Show Board members avatars", + "board-nb-stars": "%s stars", + "board-not-found": "Board not found", + "board-private-info": "This board will be <strong>private</strong>.", + "board-public-info": "This board will be <strong>public</strong>.", + "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.", + "boardChangeColorPopup-title": "Change Board Background", + "boardChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeColorPopup-title": "Change color", + "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "boardChangeTitlePopup-title": "Rename Board", + "boardChangeVisibilityPopup-title": "Change Visibility", + "boardChangeWatchPopup-title": "Change Watch", + "boardMenuPopup-title": "Board Settings", + "allBoardsMenuPopup-title": "Settings", + "boardChangeViewPopup-title": "Board View", + "boards": "Boards", + "board-view": "Board View", + "board-view-cal": "Calendar", + "board-view-swimlanes": "Swimlanes", + "board-view-collapse": "Collapse", + "board-view-gantt": "Gantt", + "board-view-lists": "Lists", + "bucket-example": "Like “Bucket List” for example", + "cancel": "Cancel", + "card-archived": "This card is moved to Archive.", + "board-archived": "This board is moved to Archive.", + "card-comments-title": "This card has %s comment.", + "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", + "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", + "card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.", + "card-archive-pop": "Card will not be visible at this list after archiving card.", + "card-archive-suggest-cancel": "You can later restore card from Archive.", + "card-due": "Due", + "card-due-on": "Due on", + "card-spent": "Spent Time", + "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", + "card-edit-labels": "Edit labels", + "card-edit-members": "Edit members", + "card-labels-title": "Change the labels for the card.", + "card-members-title": "Add or remove members of the board from the card.", + "card-start": "Start", + "card-start-on": "Starts on", + "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", + "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", + "card-edit-voting": "Edit voting", + "editVoteEndDatePopup-title": "Change vote end date", + "allowNonBoardMembers": "Allow all logged in users", + "vote-question": "Voting question", + "vote-public": "Show who voted what", + "vote-for-it": "for it", + "vote-against": "against", + "deleteVotePopup-title": "Delete vote?", + "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.", + "cardStartPlanningPokerPopup-title": "Start a Planning Poker", + "card-edit-planning-poker": "Edit Planning Poker", + "editPokerEndDatePopup-title": "Change Planning Poker vote end date", + "poker-question": "Planning Poker", + "poker-one": "1", + "poker-two": "2", + "poker-three": "3", + "poker-five": "5", + "poker-eight": "8", + "poker-thirteen": "13", + "poker-twenty": "20", + "poker-forty": "40", + "poker-oneHundred": "100", + "poker-unsure": "?", + "poker-finish": "Finish", + "poker-result-votes": "Votes", + "poker-result-who": "Who", + "poker-replay": "Replay", + "set-estimation": "Set Estimation", + "deletePokerPopup-title": "Delete planning poker?", + "poker-delete-pop": "Deleting is permanent. You will lose all actions associated with this planning poker.", + "cardDeletePopup-title": "Delete Card?", + "cardArchivePopup-title": "Archive Card?", + "cardDetailsActionsPopup-title": "Card Actions", + "cardLabelsPopup-title": "Labels", + "cardMembersPopup-title": "Members", + "cardMorePopup-title": "More", + "cardTemplatePopup-title": "Create template", + "cards": "Cards", + "cards-count": "Cards", + "cards-count-one": "Card", + "casSignIn": "Sign In with CAS", + "cardType-card": "Card", + "cardType-linkedCard": "Linked Card", + "cardType-linkedBoard": "Linked Board", + "change": "Change", + "change-avatar": "Change Avatar", + "change-password": "Change Password", + "change-permissions": "Change permissions", + "change-settings": "Change Settings", + "changeAvatarPopup-title": "Change Avatar", + "changeLanguagePopup-title": "Change Language", + "changePasswordPopup-title": "Change Password", + "changePermissionsPopup-title": "Change Permissions", + "changeSettingsPopup-title": "Change Settings", + "subtasks": "Subtasks", + "checklists": "Checklists", + "click-to-star": "Click to star this board.", + "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", + "clipboard": "Clipboard or drag & drop", + "close": "Close", + "close-board": "Close Board", + "close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.", + "close-card": "Close Card", + "color-black": "black", + "color-blue": "blue", + "color-crimson": "crimson", + "color-darkgreen": "darkgreen", + "color-gold": "gold", + "color-gray": "gray", + "color-green": "green", + "color-indigo": "indigo", + "color-lime": "lime", + "color-magenta": "magenta", + "color-mistyrose": "mistyrose", + "color-navy": "navy", + "color-orange": "orange", + "color-paleturquoise": "paleturquoise", + "color-peachpuff": "peachpuff", + "color-pink": "pink", + "color-plum": "plum", + "color-purple": "purple", + "color-red": "red", + "color-saddlebrown": "saddlebrown", + "color-silver": "silver", + "color-sky": "sky", + "color-slateblue": "slateblue", + "color-white": "white", + "color-yellow": "yellow", + "unset-color": "Unset", + "comments": "Comments", + "comment": "Comment", + "comment-placeholder": "Write Comment", + "comment-only": "Comment only", + "comment-only-desc": "Can comment on cards only.", + "comment-delete": "Are you sure you want to delete the comment?", + "deleteCommentPopup-title": "Delete comment?", + "no-comments": "No comments", + "no-comments-desc": "Can not see comments and activities.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", + "computer": "Computer", + "confirm-subtask-delete-popup": "Are you sure you want to delete subtask?", + "confirm-checklist-delete-popup": "Are you sure you want to delete the checklist?", + "subtaskDeletePopup-title": "Delete Subtask?", + "checklistDeletePopup-title": "Delete Checklist?", + "copy-card-link-to-clipboard": "Copy card link to clipboard", + "copy-text-to-clipboard": "Copy text to clipboard", + "linkCardPopup-title": "Link Card", + "searchElementPopup-title": "Search", + "copyCardPopup-title": "Copy Card", + "copyManyCardsPopup-title": "Copy Template to Many Cards", + "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", + "copyManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", + "create": "Create", + "createBoardPopup-title": "Create Board", + "chooseBoardSourcePopup-title": "Import board", + "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", + "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-currency": "Currency", + "custom-field-currency-option": "Currency Code", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", + "date": "Date", + "decline": "Decline", + "default-avatar": "Default avatar", + "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", + "deleteLabelPopup-title": "Delete Label?", + "description": "Description", + "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", + "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", + "discard": "Discard", + "done": "Done", + "download": "Download", + "edit": "Edit", + "edit-avatar": "Change Avatar", + "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", + "soft-wip-limit": "Soft WIP Limit", + "editCardStartDatePopup-title": "Change start date", + "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", + "addReactionPopup-title": "Add reaction", + "editCardSpentTimePopup-title": "Change spent time", + "editLabelPopup-title": "Change Label", + "editNotificationPopup-title": "Edit Notification", + "editProfilePopup-title": "Edit Profile", + "email": "Email", + "email-enrollAccount-subject": "An account created for you on __siteName__", + "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", + "email-fail": "Sending email failed", + "email-fail-text": "Error trying to send email", + "email-invalid": "Invalid email", + "email-invite": "Invite via Email", + "email-invite-subject": "__inviter__ sent you an invitation", + "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", + "email-resetPassword-subject": "Reset your password on __siteName__", + "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", + "email-sent": "Email sent", + "email-verifyEmail-subject": "Verify your email address on __siteName__", + "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-wip-limit": "Enable WIP Limit", + "error-board-doesNotExist": "This board does not exist", + "error-board-notAdmin": "You need to be admin of this board to do that", + "error-board-notAMember": "You need to be a member of this board to do that", + "error-json-malformed": "Your text is not valid JSON", + "error-json-schema": "Your JSON data does not include the proper information in the correct format", + "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ", + "error-list-doesNotExist": "This list does not exist", + "error-user-doesNotExist": "This user does not exist", + "error-user-notAllowSelf": "You can not invite yourself", + "error-user-notCreated": "This user is not created", + "error-username-taken": "This username is already taken", + "error-orgname-taken": "This organization name is already taken", + "error-teamname-taken": "This team name is already taken", + "error-email-taken": "Email has already been taken", + "export-board": "Export board", + "export-board-json": "Export board to JSON", + "export-board-csv": "Export board to CSV", + "export-board-tsv": "Export board to TSV", + "export-board-excel": "Export board to Excel", + "user-can-not-export-excel": "User can not export Excel", + "export-board-html": "Export board to HTML", + "export-card": "Export card", + "export-card-pdf": "Export card to PDF", + "user-can-not-export-card-to-pdf": "User can not export card to PDF", + "exportBoardPopup-title": "Export board", + "exportCardPopup-title": "Export card", + "sort": "Sort", + "sorted": "Sorted", + "remove-sort": "Remove sort", + "sort-desc": "Click to Sort List", + "list-sort-by": "Sort the List By:", + "list-label-modifiedAt": "Last Access Time", + "list-label-title": "Name of the List", + "list-label-sort": "Your Manual Order", + "list-label-short-modifiedAt": "(L)", + "list-label-short-title": "(N)", + "list-label-short-sort": "(M)", + "filter": "Filter", + "filter-cards": "Filter Cards or Lists", + "filter-dates-label": "Filter by date", + "filter-no-due-date": "No due date", + "filter-overdue": "Overdue", + "filter-due-today": "Due today", + "filter-due-this-week": "Due this week", + "filter-due-next-week": "Due next week", + "filter-due-tomorrow": "Due tomorrow", + "list-filter-label": "Filter List by Title", + "filter-clear": "Clear filter", + "filter-labels-label": "Filter by label", + "filter-no-label": "No label", + "filter-member-label": "Filter by member", + "filter-no-member": "No member", + "filter-assignee-label": "Filter by assignee", + "filter-no-assignee": "No assignee", + "filter-custom-fields-label": "Filter by Custom Fields", + "filter-no-custom-fields": "No Custom Fields", + "filter-show-archive": "Show archived lists", + "filter-hide-empty": "Hide empty lists", + "filter-on": "Filter is on", + "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", + "filter-to-selection": "Filter to selection", + "other-filters-label": "Other Filters", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "fullname": "Full Name", + "header-logo-title": "Go back to your boards page.", + "show-activities": "Show Activities", + "headerBarCreateBoardPopup-title": "Create Board", + "home": "Home", + "import": "Import", + "impersonate-user": "Impersonate user", + "link": "Link", + "import-board": "import board", + "import-board-c": "Import board", + "import-board-title-trello": "Import board from Trello", + "import-board-title-wekan": "Import board from previous export", + "import-board-title-csv": "Import board from CSV/TSV", + "from-trello": "From Trello", + "from-wekan": "From previous export", + "from-csv": "From CSV/TSV", + "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.", + "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .", + "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.", + "import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.", + "import-json-placeholder": "Paste your valid JSON data here", + "import-csv-placeholder": "Paste your valid CSV/TSV data here", + "import-map-members": "Map members", + "import-members-map": "Your imported board has some members. Please map the members you want to import to your users", + "import-members-map-note": "Note: Unmapped members will be assigned to the current user.", + "import-show-user-mapping": "Review members mapping", + "import-user-select": "Pick your existing user you want to use as this member", + "importMapMembersAddPopup-title": "Select member", + "info": "Version", + "initials": "Initials", + "invalid-date": "Invalid date", + "invalid-time": "Invalid time", + "invalid-user": "Invalid user", + "joined": "joined", + "just-invited": "You are just invited to this board", + "keyboard-shortcuts": "Keyboard shortcuts", + "label-create": "Create Label", + "label-default": "%s label (default)", + "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", + "labels": "Labels", + "language": "Language", + "last-admin-desc": "You can’t change roles because there must be at least one admin.", + "leave-board": "Leave Board", + "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", + "leaveBoardPopup-title": "Leave Board ?", + "link-card": "Link to this card", + "list-archive-cards": "Move all cards in this list to Archive", + "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.", + "list-move-cards": "Move all cards in this list", + "list-select-cards": "Select all cards in this list", + "set-color-list": "Set Color", + "listActionPopup-title": "List Actions", + "settingsUserPopup-title": "User Settings", + "settingsTeamPopup-title": "Team Settings", + "settingsOrgPopup-title": "Organization Settings", + "swimlaneActionPopup-title": "Swimlane Actions", + "swimlaneAddPopup-title": "Add a Swimlane below", + "listImportCardPopup-title": "Import a Trello card", + "listImportCardsTsvPopup-title": "Import Excel CSV/TSV", + "listMorePopup-title": "More", + "link-list": "Link to this list", + "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", + "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.", + "lists": "Lists", + "swimlanes": "Swimlanes", + "log-out": "Log Out", + "log-in": "Log In", + "loginPopup-title": "Log In", + "memberMenuPopup-title": "Member Settings", + "members": "Members", + "menu": "Menu", + "move-selection": "Move selection", + "moveCardPopup-title": "Move Card", + "moveCardToBottom-title": "Move to Bottom", + "moveCardToTop-title": "Move to Top", + "moveSelectionPopup-title": "Move selection", + "multi-selection": "Multi-Selection", + "multi-selection-label": "Set label for selection", + "multi-selection-member": "Set member for selection", + "multi-selection-on": "Multi-Selection is on", + "muted": "Muted", + "muted-info": "You will never be notified of any changes in this board", + "my-boards": "My Boards", + "name": "Name", + "no-archived-cards": "No cards in Archive.", + "no-archived-lists": "No lists in Archive.", + "no-archived-swimlanes": "No swimlanes in Archive.", + "no-results": "No results", + "normal": "Normal", + "normal-desc": "Can view and edit cards. Can't change settings.", + "not-accepted-yet": "Invitation not accepted yet", + "notify-participate": "Receive updates to any cards you participate as creator or member", + "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", + "optional": "optional", + "or": "or", + "page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.", + "page-not-found": "Page not found.", + "password": "Password", + "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", + "participating": "Participating", + "preview": "Preview", + "previewAttachedImagePopup-title": "Preview", + "previewClipboardImagePopup-title": "Preview", + "private": "Private", + "private-desc": "This board is private. Only people added to the board can view and edit it.", + "profile": "Profile", + "public": "Public", + "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.", + "quick-access-description": "Star a board to add a shortcut in this bar.", + "remove-cover": "Remove cover image from minicard", + "remove-from-board": "Remove from Board", + "remove-label": "Remove Label", + "listDeletePopup-title": "Delete List ?", + "remove-member": "Remove Member", + "remove-member-from-card": "Remove from Card", + "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", + "removeMemberPopup-title": "Remove Member?", + "rename": "Rename", + "rename-board": "Rename Board", + "restore": "Restore", + "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions", + "rescue-card-description-dialogue": "Overwrite current card description with your changes?", + "save": "Save", + "search": "Search", + "rules": "Rules", + "search-cards": "Search from card/list titles, descriptions and custom fields on this board", + "search-example": "Write text you search and press Enter", + "select-color": "Select Color", + "select-board": "Select Board", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", + "shortcut-assign-self": "Assign yourself to current card", + "shortcut-autocomplete-emoji": "Autocomplete emoji", + "shortcut-autocomplete-members": "Autocomplete members", + "shortcut-clear-filters": "Clear all filters", + "shortcut-close-dialog": "Close Dialog", + "shortcut-filter-my-cards": "Filter my cards", + "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-show-shortcuts": "Bring up this shortcuts list", + "shortcut-toggle-filterbar": "Toggle Filter Sidebar", + "shortcut-toggle-searchbar": "Toggle Search Sidebar", + "shortcut-toggle-sidebar": "Toggle Board Sidebar", + "show-cards-minimum-count": "Show cards count if list contains more than", + "sidebar-open": "Open Sidebar", + "sidebar-close": "Close Sidebar", + "signupPopup-title": "Create an Account", + "star-board-title": "Click to star this board. It will show up at top of your boards list.", + "starred-boards": "Starred Boards", + "starred-boards-description": "Starred boards show up at the top of your boards list.", + "subscribe": "Subscribe", + "team": "Team", + "this-board": "this board", + "this-card": "this card", + "spent-time-hours": "Spent time (hours)", + "overtime-hours": "Overtime (hours)", + "overtime": "Overtime", + "has-overtime-cards": "Has overtime cards", + "has-spenttime-cards": "Has spent time cards", + "time": "Time", + "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", + "remove-labels-multiselect": "Multi-Selection removes labels 1-9", + "tracking": "Tracking", + "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", + "unassign-member": "Unassign member", + "unsaved-description": "You have an unsaved description.", + "unwatch": "Unwatch", + "upload": "Upload", + "upload-avatar": "Upload an avatar", + "uploaded-avatar": "Uploaded an avatar", + "custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL", + "custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL", + "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", + "custom-login-logo-image-url": "Custom Login Logo Image URL", + "custom-login-logo-link-url": "Custom Login Logo Link URL", + "custom-help-link-url": "Custom Help Link URL", + "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", + "username": "Username", + "import-usernames": "Import Usernames", + "view-it": "View it", + "warn-list-archived": "warning: this card is in an list at Archive", + "watch": "Watch", + "watching": "Watching", + "watching-info": "You will be notified of any change in this board", + "welcome-board": "Welcome Board", + "welcome-swimlane": "Milestone 1", + "welcome-list1": "Basics", + "welcome-list2": "Advanced", + "card-templates-swimlane": "Card Templates", + "list-templates-swimlane": "List Templates", + "board-templates-swimlane": "Board Templates", + "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", + "admin-panel": "Admin Panel", + "settings": "Settings", + "people": "People", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", + "disable-forgot-password": "Disable Forgot Password", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-tls-description": "Enable TLS support for SMTP server", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Username", + "smtp-password": "Password", + "smtp-tls": "TLS support", + "send-from": "From", + "send-smtp-test": "Send a test email to yourself", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ sent you an invitation", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "email-smtp-test-subject": "SMTP Test Email", + "email-smtp-test-text": "You have successfully sent an email", + "error-invitation-code-not-exist": "Invitation code doesn't exist", + "error-notAuthorized": "You are not authorized to view this page.", + "webhook-title": "Webhook Name", + "webhook-token": "Token (Optional for Authentication)", + "outgoing-webhooks": "Outgoing Webhooks", + "bidirectional-webhooks": "Two-Way Webhooks", + "outgoingWebhooksPopup-title": "Outgoing Webhooks", + "boardCardTitlePopup-title": "Card Title Filter", + "disable-webhook": "Disable This Webhook", + "global-webhook": "Global Webhooks", + "new-outgoing-webhook": "New Outgoing Webhook", + "no-name": "(Unknown)", + "Node_version": "Node version", + "Meteor_version": "Meteor version", + "MongoDB_version": "MongoDB version", + "MongoDB_storage_engine": "MongoDB storage engine", + "MongoDB_Oplog_enabled": "MongoDB Oplog enabled", + "OS_Arch": "OS Arch", + "OS_Cpus": "OS CPU Count", + "OS_Freemem": "OS Free Memory", + "OS_Loadavg": "OS Load Average", + "OS_Platform": "OS Platform", + "OS_Release": "OS Release", + "OS_Totalmem": "OS Total Memory", + "OS_Type": "OS Type", + "OS_Uptime": "OS Uptime", + "days": "days", + "hours": "hours", + "minutes": "minutes", + "seconds": "seconds", + "show-field-on-card": "Show this field on card", + "automatically-field-on-card": "Add field to new cards", + "always-field-on-card": "Add field to all cards", + "showLabel-field-on-card": "Show field label on minicard", + "showSum-field-on-list": "Show sum of fields at top of list", + "yes": "Yes", + "no": "No", + "accounts": "Accounts", + "accounts-allowEmailChange": "Allow Email Change", + "accounts-allowUserNameChange": "Allow Username Change", + "tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only", + "tableVisibilityMode" : "Boards visibility", + "createdAt": "Created at", + "modifiedAt": "Modified at", + "verified": "Verified", + "active": "Active", + "card-received": "Received", + "card-received-on": "Received on", + "card-end": "End", + "card-end-on": "Ends on", + "editCardReceivedDatePopup-title": "Change received date", + "editCardEndDatePopup-title": "Change end date", + "setCardColorPopup-title": "Set color", + "setCardActionsColorPopup-title": "Choose a color", + "setSwimlaneColorPopup-title": "Choose a color", + "setListColorPopup-title": "Choose a color", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "card-sorting-by-number": "Card sorting by number", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board", + "default-subtasks-board": "Subtasks for __board__ board", + "default": "Default", + "defaultdefault": "Default", + "queue": "Queue", + "subtask-settings": "Subtasks Settings", + "card-settings": "Card Settings", + "minicard-settings": "Minicard Settings", + "boardSubtaskSettingsPopup-title": "Board Subtasks Settings", + "boardCardSettingsPopup-title": "Card Settings", + "boardMinicardSettingsPopup-title": "Minicard Settings", + "deposit-subtasks-board": "Deposit subtasks to this board:", + "deposit-subtasks-list": "Landing list for subtasks deposited here:", + "show-parent-in-minicard": "Show parent in minicard:", + "description-on-minicard": "Description on minicard", + "cover-attachment-on-minicard": "Cover image on minicard", + "badge-attachment-on-minicard": "Count of attachments on minicard", + "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "prefix-with-full-path": "Prefix with full path", + "prefix-with-parent": "Prefix with parent", + "subtext-with-full-path": "Subtext with full path", + "subtext-with-parent": "Subtext with parent", + "change-card-parent": "Change card's parent", + "parent-card": "Parent card", + "source-board": "Source board", + "no-parent": "Don't show parent", + "activity-added-label": "added label '%s' to %s", + "activity-removed-label": "removed label '%s' from %s", + "activity-delete-attach": "deleted an attachment from %s", + "activity-added-label-card": "added label '%s'", + "activity-removed-label-card": "removed label '%s'", + "activity-delete-attach-card": "deleted an attachment", + "activity-set-customfield": "set custom field '%s' to '%s' in %s", + "activity-unset-customfield": "unset custom field '%s' in %s", + "r-rule": "Rule", + "r-add-trigger": "Add trigger", + "r-add-action": "Add action", + "r-board-rules": "Board rules", + "r-add-rule": "Add rule", + "r-view-rule": "View rule", + "r-delete-rule": "Delete rule", + "r-new-rule-name": "New rule title", + "r-no-rules": "No rules", + "r-trigger": "Trigger", + "r-action": "Action", + "r-when-a-card": "When a card", + "r-is": "is", + "r-is-moved": "is moved", + "r-added-to": "Added to", + "r-removed-from": "Removed from", + "r-the-board": "the board", + "r-list": "list", + "set-filter": "Set Filter", + "r-moved-to": "Moved to", + "r-moved-from": "Moved from", + "r-archived": "Moved to Archive", + "r-unarchived": "Restored from Archive", + "r-a-card": "a card", + "r-when-a-label-is": "When a label is", + "r-when-the-label": "When the label", + "r-list-name": "list name", + "r-when-a-member": "When a member is", + "r-when-the-member": "When the member", + "r-name": "name", + "r-when-a-attach": "When an attachment", + "r-when-a-checklist": "When a checklist is", + "r-when-the-checklist": "When the checklist", + "r-completed": "Completed", + "r-made-incomplete": "Made incomplete", + "r-when-a-item": "When a checklist item is", + "r-when-the-item": "When the checklist item", + "r-checked": "Checked", + "r-unchecked": "Unchecked", + "r-move-card-to": "Move card to", + "r-top-of": "Top of", + "r-bottom-of": "Bottom of", + "r-its-list": "its list", + "r-archive": "Move to Archive", + "r-unarchive": "Restore from Archive", + "r-card": "card", + "r-add": "Add", + "r-remove": "Remove", + "r-label": "label", + "r-member": "member", + "r-remove-all": "Remove all members from the card", + "r-set-color": "Set color to", + "r-checklist": "checklist", + "r-check-all": "Check all", + "r-uncheck-all": "Uncheck all", + "r-items-check": "items of checklist", + "r-check": "Check", + "r-uncheck": "Uncheck", + "r-item": "item", + "r-of-checklist": "of checklist", + "r-send-email": "Send an email", + "r-to": "to", + "r-of": "of", + "r-subject": "subject", + "r-rule-details": "Rule details", + "r-d-move-to-top-gen": "Move card to top of its list", + "r-d-move-to-top-spec": "Move card to top of list", + "r-d-move-to-bottom-gen": "Move card to bottom of its list", + "r-d-move-to-bottom-spec": "Move card to bottom of list", + "r-d-send-email": "Send email", + "r-d-send-email-to": "to", + "r-d-send-email-subject": "subject", + "r-d-send-email-message": "message", + "r-d-archive": "Move card to Archive", + "r-d-unarchive": "Restore card from Archive", + "r-d-add-label": "Add label", + "r-d-remove-label": "Remove label", + "r-create-card": "Create new card", + "r-in-list": "in list", + "r-in-swimlane": "in swimlane", + "r-d-add-member": "Add member", + "r-d-remove-member": "Remove member", + "r-d-remove-all-member": "Remove all member", + "r-d-check-all": "Check all items of a list", + "r-d-uncheck-all": "Uncheck all items of a list", + "r-d-check-one": "Check item", + "r-d-uncheck-one": "Uncheck item", + "r-d-check-of-list": "of checklist", + "r-d-add-checklist": "Add checklist", + "r-d-remove-checklist": "Remove checklist", + "r-by": "by", + "r-add-checklist": "Add checklist", + "r-with-items": "with items", + "r-items-list": "item1,item2,item3", + "r-add-swimlane": "Add swimlane", + "r-swimlane-name": "swimlane name", + "r-board-note": "Note: leave a field empty to match every possible value. ", + "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", + "r-when-a-card-is-moved": "When a card is moved to another list", + "r-set": "Set", + "r-update": "Update", + "r-datefield": "date field", + "r-df-start-at": "start", + "r-df-due-at": "due", + "r-df-end-at": "end", + "r-df-received-at": "received", + "r-to-current-datetime": "to current date/time", + "r-remove-value-from": "Remove value from", + "r-link-card": "Link card to", + "ldap": "LDAP", + "oauth2": "OAuth2", + "cas": "CAS", + "authentication-method": "Authentication method", + "authentication-type": "Authentication type", + "custom-product-name": "Custom Product Name", + "layout": "Layout", + "hide-logo": "Hide Logo", + "hide-card-counter-list": "Hide card counter list on All Boards", + "hide-board-member-list": "Hide board member list on All Boards", + "add-custom-html-after-body-start": "Add Custom HTML after <body> start", + "add-custom-html-before-body-end": "Add Custom HTML before </body> end", + "error-undefined": "Something went wrong", + "error-ldap-login": "An error occurred while trying to login", + "display-authentication-method": "Display Authentication Method", + "oidc-button-text": "Customize the OIDC button text", + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board", + "org-number": "The number of organizations is: ", + "team-number": "The number of teams is: ", + "people-number": "The number of people is: ", + "swimlaneDeletePopup-title": "Delete Swimlane ?", + "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", + "restore-all": "Restore all", + "delete-all": "Delete all", + "loading": "Loading, please wait.", + "previous_as": "last time was", + "act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__", + "act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)", + "act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)", + "act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)", + "a-dueAt": "modified due time to be", + "a-endAt": "modified ending time to be", + "a-startAt": "modified starting time to be", + "a-receivedAt": "modified received time to be", + "almostdue": "current due time %s is approaching", + "pastdue": "current due time %s is past", + "duenow": "current due time %s is today", + "act-newDue": "__list__/__card__ has 1st due reminder [__board__]", + "act-withDue": "__list__/__card__ due reminders [__board__]", + "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching", + "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", + "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", + "act-atUserComment": "You were mentioned in [__board__] __list__/__card__", + "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.", + "delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.", + "delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.", + "accounts-allowUserDelete": "Allow users to self delete their account", + "hide-minicard-label-text": "Hide minicard label text", + "show-desktop-drag-handles": "Show desktop drag handles", + "assignee": "Assignee", + "cardAssigneesPopup-title": "Assignee", + "addmore-detail": "Add a more detailed description", + "show-on-card": "Show on Card", + "show-on-minicard": "Show on Minicard", + "new": "New", + "editOrgPopup-title": "Edit Organization", + "newOrgPopup-title": "New Organization", + "editTeamPopup-title": "Edit Team", + "newTeamPopup-title": "New Team", + "editUserPopup-title": "Edit User", + "newUserPopup-title": "New User", + "notifications": "Notifications", + "help": "Help", + "view-all": "View All", + "filter-by-unread": "Filter by Unread", + "mark-all-as-read": "Mark all as read", + "remove-all-read": "Remove all read", + "allow-rename": "Allow Rename", + "allowRenamePopup-title": "Allow Rename", + "start-day-of-week": "Set day of the week start", + "monday": "Monday", + "tuesday": "Tuesday", + "wednesday": "Wednesday", + "thursday": "Thursday", + "friday": "Friday", + "saturday": "Saturday", + "sunday": "Sunday", + "status": "Status", + "swimlane": "Swimlane", + "owner": "Owner", + "last-modified-at": "Last modified at", + "last-activity": "Last activity", + "voting": "Voting", + "archived": "Archived", + "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", + "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", + "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", + "task": "Task", + "create-task": "Create Task", + "ok": "OK", + "organizations": "Organizations", + "teams": "Teams", + "displayName": "Display Name", + "shortName": "Short Name", + "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "website": "Website", + "person": "Person", + "my-cards": "My Cards", + "card": "Card", + "list": "List", + "board": "Board", + "context-separator": "/", + "myCardsViewChange-title": "My Cards View", + "myCardsViewChangePopup-title": "My Cards View", + "myCardsViewChange-choice-boards": "Boards", + "myCardsViewChange-choice-table": "Table", + "myCardsSortChange-title": "My Cards Sort", + "myCardsSortChangePopup-title": "My Cards Sort", + "myCardsSortChange-choice-board": "By Board", + "myCardsSortChange-choice-dueat": "By Due Date", + "dueCards-title": "Due Cards", + "dueCardsViewChange-title": "Due Cards View", + "dueCardsViewChangePopup-title": "Due Cards View", + "dueCardsViewChange-choice-me": "Me", + "dueCardsViewChange-choice-all": "All Users", + "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", + "broken-cards": "Broken Cards", + "board-title-not-found": "Board '%s' not found.", + "swimlane-title-not-found": "Swimlane '%s' not found.", + "list-title-not-found": "List '%s' not found.", + "label-not-found": "Label '%s' not found.", + "label-color-not-found": "Label color %s not found.", + "user-username-not-found": "Username '%s' not found.", + "comment-not-found": "Card with comment containing text '%s' not found.", + "org-name-not-found": "Organization '%s' not found.", + "team-name-not-found": "Team '%s' not found.", + "globalSearch-title": "Search All Boards", + "no-cards-found": "No Cards Found", + "one-card-found": "One Card Found", + "n-cards-found": "%s Cards Found", + "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", + "operator-board": "board", + "operator-board-abbrev": "b", + "operator-swimlane": "swimlane", + "operator-swimlane-abbrev": "s", + "operator-list": "list", + "operator-list-abbrev": "l", + "operator-label": "label", + "operator-label-abbrev": "#", + "operator-user": "user", + "operator-user-abbrev": "@", + "operator-member": "member", + "operator-member-abbrev": "m", + "operator-assignee": "assignee", + "operator-assignee-abbrev": "a", + "operator-creator": "creator", + "operator-status": "status", + "operator-due": "due", + "operator-created": "created", + "operator-modified": "modified", + "operator-sort": "sort", + "operator-comment": "comment", + "operator-has": "has", + "operator-limit": "limit", + "operator-debug": "debug", + "operator-org": "org", + "operator-team": "team", + "predicate-archived": "archived", + "predicate-open": "open", + "predicate-ended": "ended", + "predicate-all": "all", + "predicate-overdue": "overdue", + "predicate-week": "week", + "predicate-month": "month", + "predicate-quarter": "quarter", + "predicate-year": "year", + "predicate-due": "due", + "predicate-modified": "modified", + "predicate-created": "created", + "predicate-attachment": "attachment", + "predicate-description": "description", + "predicate-checklist": "checklist", + "predicate-start": "start", + "predicate-end": "end", + "predicate-assignee": "assignee", + "predicate-member": "member", + "predicate-public": "public", + "predicate-private": "private", + "predicate-selector": "selector", + "predicate-projection": "projection", + "operator-unknown-error": "%s is not an operator", + "operator-number-expected": "operator __operator__ expected a number, got '__value__'", + "operator-sort-invalid": "sort of '%s' is invalid", + "operator-status-invalid": "'%s' is not a valid status", + "operator-has-invalid": "%s is not a valid existence check", + "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", + "operator-debug-invalid": "%s is not a valid debug predicate", + "next-page": "Next Page", + "previous-page": "Previous Page", + "heading-notes": "Notes", + "globalSearch-instructions-heading": "Search Instructions", + "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-operators": "Available operators:", + "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", + "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", + "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", + "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", + "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - cards where *<username>* is the card's creator", + "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*", + "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", + "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", + "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", + "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", + "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", + "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", + "globalSearch-instructions-notes-1": "Multiple operators may be specified.", + "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", + "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", + "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", + "globalSearch-instructions-notes-4": "Text searches are case insensitive.", + "globalSearch-instructions-notes-5": "By default archived cards are not searched.", + "link-to-search": "Link to this search", + "excel-font": "Arial", + "number": "Number", + "label-colors": "Label Colors", + "label-names": "Label Names", + "archived-at": "archived at", + "sort-cards": "Sort Cards", + "sort-is-on": "Sort is on", + "cardsSortPopup-title": "Sort Cards", + "due-date": "Due Date", + "server-error": "Server Error", + "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`", + "title-alphabetically": "Title (Alphabetically)", + "created-at-newest-first": "Created At (Newest First)", + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", + "move-swimlane": "Move Swimlane", + "moveSwimlanePopup-title": "Move Swimlane", + "custom-field-stringtemplate": "String Template", + "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", + "custom-field-stringtemplate-separator": "Separator (use or   for a space)", + "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", + "creator": "Creator", + "creator-on-minicard": "Creator on minicard", + "filesReportTitle": "Files Report", + "reports": "Reports", + "rulesReportTitle": "Rules Report", + "boardsReportTitle": "Boards Report", + "cardsReportTitle": "Cards Report", + "copy-swimlane": "Copy Swimlane", + "copySwimlanePopup-title": "Copy Swimlane", + "display-card-creator": "Display Card Creator", + "wait-spinner": "Wait Spinner", + "Bounce": "Bounce Wait Spinner", + "Cube": "Cube Wait Spinner", + "Cube-Grid": "Cube-Grid Wait Spinner", + "Dot": "Dot Wait Spinner", + "Double-Bounce": "Double Bounce Wait Spinner", + "Rotateplane": "Rotateplane Wait Spinner", + "Scaleout": "Scaleout Wait Spinner", + "Wave": "Wave Wait Spinner", + "maximize-card": "Maximize Card", + "minimize-card": "Minimize Card", + "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", + "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", + "subject": "Subject", + "details": "Details", + "carbon-copy": "Carbon Copy (Cc:)", + "ticket": "Ticket", + "tickets": "Tickets", + "ticket-number": "Ticket Number", + "open": "Open", + "pending": "Pending", + "closed": "Closed", + "resolved": "Resolved", + "cancelled": "Cancelled", + "history": "History", + "request": "Request", + "requests": "Requests", + "help-request": "Help Request", + "editCardSortOrderPopup-title": "Change Sorting", + "cardDetailsPopup-title": "Card Details", + "add-teams": "Add teams", + "add-teams-label": "Added teams are displayed below:", + "remove-team-from-table": "Are you sure you want to remove this team from the board ?", + "confirm-btn": "Confirm", + "remove-btn": "Remove", + "filter-card-title-label": "Filter by card title", + "invite-people-success": "Invitation to register sent with success", + "invite-people-error": "Error while sending invitation to register", + "can-invite-if-same-mailDomainName": "Email domain name", + "to-create-teams-contact-admin": "To create teams, please contact the administrator.", + "Node_heap_total_heap_size": "Node heap: total heap size", + "Node_heap_total_heap_size_executable": "Node heap: total heap size executable", + "Node_heap_total_physical_size": "Node heap: total physical size", + "Node_heap_total_available_size": "Node heap: total available size", + "Node_heap_used_heap_size": "Node heap: used heap size", + "Node_heap_heap_size_limit": "Node heap: heap size limit", + "Node_heap_malloced_memory": "Node heap: malloced memory", + "Node_heap_peak_malloced_memory": "Node heap: peak malloced memory", + "Node_heap_does_zap_garbage": "Node heap: does zap garbage", + "Node_heap_number_of_native_contexts": "Node heap: number of native contexts", + "Node_heap_number_of_detached_contexts": "Node heap: number of detached contexts", + "Node_memory_usage_rss": "Node memory usage: resident set size", + "Node_memory_usage_heap_total": "Node memory usage: total size of the allocated heap", + "Node_memory_usage_heap_used": "Node memory usage: actual memory used", + "Node_memory_usage_external": "Node memory usage: external", + "add-organizations": "Add organizations", + "add-organizations-label": "Added organizations are displayed below:", + "remove-organization-from-board": "Are you sure you want to remove this organization from this board ?", + "to-create-organizations-contact-admin": "To create organizations, please contact administrator.", + "custom-legal-notice-link-url": "Custom legal notice page URL", + "acceptance_of_our_legalNotice": "By continuing, you accept our", + "legalNotice": "legal notice", + "copied": "Copied!", + "checklistActionsPopup-title": "Checklist Actions", + "moveChecklist": "Move Checklist", + "moveChecklistPopup-title": "Move Checklist", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", + "copyChecklist": "Copy Checklist", + "copyChecklistPopup-title": "Copy Checklist", + "card-show-lists": "Card Show Lists", + "subtaskActionsPopup-title": "Subtask Actions", + "attachmentActionsPopup-title": "Attachment Actions", + "attachment-move-storage-fs": "Move attachment to filesystem", + "attachment-move-storage-gridfs": "Move attachment to GridFS", + "attachment-move-storage-s3": "Move attachment to S3", + "attachment-move": "Move Attachment", + "move-all-attachments-to-fs": "Move all attachments to filesystem", + "move-all-attachments-to-gridfs": "Move all attachments to GridFS", + "move-all-attachments-to-s3": "Move all attachments to S3", + "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", + "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", + "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", + "path": "Path", + "version-name": "Version-Name", + "size": "Size", + "storage": "Storage", + "action": "Action", + "board-title": "Board Title", + "attachmentRenamePopup-title": "Rename", + "uploading": "Uploading", + "remaining_time": "Remaining time", + "speed": "Speed", + "progress": "Progress", + "password-again": "Password (again)", + "if-you-already-have-an-account": "If you already have an account", + "register": "Register", + "forgot-password": "Forgot password", + "minicardDetailsActionsPopup-title": "Card Details", + "Mongo_sessions_count": "Mongo sessions count", + "change-visibility": "Change Visibility", + "max-upload-filesize": "Max upload filesize in bytes:", + "allowed-upload-filetypes": "Allowed upload filetypes:", + "max-avatar-filesize": "Max avatar filesize in bytes:", + "allowed-avatar-filetypes": "Allowed avatar filetypes:", + "invalid-file": "If filename is invalid, upload or rename is cancelled.", + "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", + "drag-board": "Drag board", + "translation-number": "The number of custom translation strings is:", + "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", + "newTranslationPopup-title": "New custom translation string", + "editTranslationPopup-title": "Edit custom translation string", + "settingsTranslationPopup-title": "Delete this custom translation string?", + "translation": "Translation", + "text": "Text", + "translation-text": "Translation text", + "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", + "convert-to-markdown": "Convert to markdown", + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" +} diff --git a/imports/i18n/data/en_ZA.i18n.json b/imports/i18n/data/en_ZA.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/en_ZA.i18n.json +++ b/imports/i18n/data/en_ZA.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index ffe48f5cd..d55f385c1 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "Kreiis %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Fermi", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "flava", "unset-color": "Unset", + "comments": "Komentoj", "comment": "Komento", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Sendis retpoŝton", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Plena nomo", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Krei tavolon", "home": "Hejmo", "import": "Importi", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Tempo", "title": "Titolo", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1239,12 +1253,20 @@ "newTranslationPopup-title": "New custom translation string", "editTranslationPopup-title": "Edit custom translation string", "settingsTranslationPopup-title": "Delete this custom translation string?", - "translation": "Translation", + "translation": "Traduko", "text": "Teksto", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/es-AR.i18n.json b/imports/i18n/data/es-AR.i18n.json index 3b4abf2ff..e4011c011 100644 --- a/imports/i18n/data/es-AR.i18n.json +++ b/imports/i18n/data/es-AR.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "adjuntadas %s a %s", "activity-created": "creadas %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluidas %s de %s", "activity-imported": "importadas %s en %s de %s", @@ -85,10 +86,12 @@ "add-card": "Agregar Tarjeta", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Listas de ítems", "click-to-star": "Clickeá para darle una estrella a este tablero.", "click-to-unstar": "Clickeá para sacarle la estrella al tablero.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Portapapeles o arrastrar y soltar", "close": "Cerrar", "close-board": "Cerrar Tablero", @@ -294,6 +300,7 @@ "color-white": "blanco", "color-yellow": "amarillo", "unset-color": "Deseleccionado", + "comments": "Comments", "comment": "Comentario", "comment-placeholder": "Comentar", "comment-only": "Comentar solamente", @@ -376,6 +383,7 @@ "email-sent": "Email enviado", "email-verifyEmail-subject": "Verificá tu dirección de email en __siteName__", "email-verifyEmail-text": "Hola __user__,\n\nPara verificar tu cuenta de email, simplemente clickeá el enlace de abajo.\n\n__url__\n\nGracias.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Activar Límite TEP", "error-board-doesNotExist": "Este tablero no existe", "error-board-notAdmin": "Necesitás ser administrador de este tablero para hacer eso", @@ -443,7 +451,7 @@ "advanced-filter-description": "El filtrado avanzado permite escribir una cadena que contiene los siguientes operadores: == != <= >= && || ( ) Se utiliza un espacio como separador entre los operadores. Se pueden filtrar todos los campos personalizados escribiendo sus nombres y valores. Por ejemplo: Campo1 == Valor1. Nota: Si los campos o valores contienen espacios, deben encapsularse entre comillas simples. Por ejemplo: 'Campo 1' == 'Valor 1'. Para omitir los caracteres de control único (' \\\\/), se usa \\\\. Por ejemplo: Campo1 = I\\\\'m. También se pueden combinar múltiples condiciones. Por ejemplo: C1 == V1 || C1 == V2. Normalmente todos los operadores se interpretan de izquierda a derecha. Se puede cambiar el orden colocando paréntesis. Por ejemplo: C1 == V1 && ( C2 == V2 || C2 == V3 ). También se puede buscar en campos de texto usando expresiones regulares: C1 == /Tes.*/i", "fullname": "Nombre Completo", "header-logo-title": "Retroceder a tu página de tableros.", - "hide-system-messages": "Esconder mensajes del sistema", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Crear Tablero", "home": "Inicio", "import": "Importar", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Fijar un límite para el número máximo de tareas en esta lista", "setWipLimitPopup-title": "Establecer Límite TEP", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Asignarte a vos mismo en la tarjeta actual", "shortcut-autocomplete-emoji": "Autocompletar emonji", "shortcut-autocomplete-members": "Autocompletar miembros", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Ha gastado tarjetas de tiempo", "time": "Hora", "title": "Título", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Seguimiento", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Texto", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/es-CL.i18n.json b/imports/i18n/data/es-CL.i18n.json index 7c9f31538..a4bee6545 100644 --- a/imports/i18n/data/es-CL.i18n.json +++ b/imports/i18n/data/es-CL.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s se ha archivado", "activity-attached": "ha adjuntado %s a %s", "activity-created": "ha creado %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "creó el campo personalizado %s", "activity-excluded": "ha excluido %s de %s", "activity-imported": "ha importado %s a %s desde %s", @@ -85,10 +86,12 @@ "add-card": "Añadir una tarjeta", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Lista de verificación", "click-to-star": "Haz clic para destacar este tablero.", "click-to-unstar": "Haz clic para dejar de destacar este tablero.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "el portapapeles o con arrastrar y soltar", "close": "Cerrar", "close-board": "Cerrar el tablero", @@ -294,6 +300,7 @@ "color-white": "blanco", "color-yellow": "amarilla", "unset-color": "Desmarcar", + "comments": "Comments", "comment": "Comentar", "comment-placeholder": "Escribir comentario", "comment-only": "Sólo comentarios", @@ -376,6 +383,7 @@ "email-sent": "Correo enviado", "email-verifyEmail-subject": "Verifica tu dirección de correo en __siteName__", "email-verifyEmail-text": "Hola __user__,\n\nPara verificar tu cuenta de correo electrónico, haz clic en el siguiente enlace.\n\n__url__\n\nGracias.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Habilitar el límite del trabajo en proceso", "error-board-doesNotExist": "El tablero no existe", "error-board-notAdmin": "Es necesario ser administrador de este tablero para hacer eso", @@ -443,7 +451,7 @@ "advanced-filter-description": "El filtrado avanzado permite escribir una cadena que contiene los siguientes operadores: == != <= >= && || ( ) Se utiliza un espacio como separador entre los operadores. Se pueden filtrar todos los campos personalizados escribiendo sus nombres y valores. Por ejemplo: Campo1 == Valor1. Nota: Si los campos o valores contienen espacios, deben encapsularse entre comillas simples. Por ejemplo: 'Campo 1' == 'Valor 1'. Para omitir los caracteres de control único (' \\\\/), se usa \\\\. Por ejemplo: Campo1 = I\\\\'m. También se pueden combinar múltiples condiciones. Por ejemplo: C1 == V1 || C1 == V2. Normalmente todos los operadores se interpretan de izquierda a derecha. Se puede cambiar el orden colocando paréntesis. Por ejemplo: C1 == V1 && ( C2 == V2 || C2 == V3 ). También se puede buscar en campos de texto usando expresiones regulares: C1 == /Tes.*/i", "fullname": "Nombre completo", "header-logo-title": "Volver a tu página de tableros", - "hide-system-messages": "Ocultar las notificaciones de actividad", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Crear tablero", "home": "Inicio", "import": "Importar", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Cambiar el límite para el número máximo de tareas en esta lista.", "setWipLimitPopup-title": "Cambiar el límite del trabajo en proceso", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Asignarte a ti mismo a la tarjeta actual", "shortcut-autocomplete-emoji": "Autocompletar emoji", "shortcut-autocomplete-members": "Autocompletar miembros", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Se ha excedido el tiempo de las tarjetas", "time": "Hora", "title": "Título", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Siguiendo", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Texto", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Contraer", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/es-LA.i18n.json b/imports/i18n/data/es-LA.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/es-LA.i18n.json +++ b/imports/i18n/data/es-LA.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/es-MX.i18n.json b/imports/i18n/data/es-MX.i18n.json index 238ecdfd4..123ddb258 100644 --- a/imports/i18n/data/es-MX.i18n.json +++ b/imports/i18n/data/es-MX.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s archivado", "activity-attached": "ha adjuntado %s de %s", "activity-created": "ha creado %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "campo personalizado creado %s", "activity-excluded": "ha excluido %s de %s", "activity-imported": "ha importado %s a %s desde %s", @@ -85,10 +86,12 @@ "add-card": "Agregar Tarjeta", "add-card-to-top-of-list": "Agregar tarjeta al inicio de la lista", "add-card-to-bottom-of-list": "Agregar tarjeta al final de la lista", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/es-PE.i18n.json b/imports/i18n/data/es-PE.i18n.json index 6b4c1c04d..59843c62f 100644 --- a/imports/i18n/data/es-PE.i18n.json +++ b/imports/i18n/data/es-PE.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s se ha archivado", "activity-attached": "ha adjuntado %s a %s", "activity-created": "ha creado %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "creó el campo personalizado %s", "activity-excluded": "ha excluido %s de %s", "activity-imported": "ha importado %s a %s desde %s", @@ -85,10 +86,12 @@ "add-card": "Agregar una tarjeta", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Listas de comprobación", "click-to-star": "Haga clic para destacar este tablero.", "click-to-unstar": "Haga clic para dejar de destacar este tablero.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "el portapapeles o con arrastrar y soltar", "close": "Cerrar", "close-board": "Cerrar el tablero", @@ -294,6 +300,7 @@ "color-white": "blanco", "color-yellow": "amarillo", "unset-color": "Desmarcar", + "comments": "Comments", "comment": "Comentar", "comment-placeholder": "Escribir comentario", "comment-only": "Sólo comentarios", @@ -376,6 +383,7 @@ "email-sent": "Correo enviado", "email-verifyEmail-subject": "Verifique su dirección de correo electrónico en __siteName__", "email-verifyEmail-text": "Hola __user__,\n\nPara verificar el correo electrónico de su cuenta, simplemente haga clic en el siguiente enlace.\n\n__url__\n\nGracias.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Habilitar el límite del trabajo en proceso", "error-board-doesNotExist": "El tablero no existe", "error-board-notAdmin": "Es necesario ser administrador de este tablero para hacer eso", @@ -443,7 +451,7 @@ "advanced-filter-description": "El filtrado avanzado permite escribir una cadena que contiene los siguientes operadores: == != <= >= && || ( ) Se utiliza un espacio como separador entre los operadores. Se pueden filtrar todos los campos personalizados escribiendo sus nombres y valores. Por ejemplo: Campo1 == Valor1. Nota: Si los campos o valores contienen espacios, deben encapsularse entre comillas simples. Por ejemplo: 'Campo 1' == 'Valor 1'. Para omitir los caracteres de control único (' \\\\/), se usa \\\\. Por ejemplo: Campo1 = I\\\\'m. También se pueden combinar múltiples condiciones. Por ejemplo: C1 == V1 || C1 == V2. Normalmente todos los operadores se interpretan de izquierda a derecha. Se puede cambiar el orden colocando paréntesis. Por ejemplo: C1 == V1 && ( C2 == V2 || C2 == V3 ). También se puede buscar en campos de texto usando expresiones regulares: C1 == /Tes.*/i", "fullname": "Nombre completo", "header-logo-title": "Volver a su página de tableros", - "hide-system-messages": "Ocultar las notificaciones de actividad", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Crear tablero", "home": "Inicio", "import": "Importar", @@ -572,6 +580,7 @@ "select-board": "Seleccionar tablero", "set-wip-limit-value": "Cambiar el límite para el número máximo de tareas en esta lista.", "setWipLimitPopup-title": "Cambiar el límite del trabajo en proceso", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Asignarse a la tarjeta actual", "shortcut-autocomplete-emoji": "Autocompletar emoji", "shortcut-autocomplete-members": "Autocompletar miembros", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Se ha excedido el tiempo de las tarjetas", "time": "Hora", "title": "Título", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Siguiendo", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "No puede borrar esta tarjeta antes de borrar la tarjeta enlazada que tiene", "delete-linked-cards-before-this-list": "No puede borrar esta lista antes de borrar las tarjetas enlazadas que apuntan a tarjetas en esta lista", "hide-checked-items": "Ocultar elementos marcados", + "hide-finished-checklist": "Hide finished checklist", "task": "Tarea", "create-task": "Crear tarea", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Enlaces", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Texto", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Contraer", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/es-PY.i18n.json b/imports/i18n/data/es-PY.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/es-PY.i18n.json +++ b/imports/i18n/data/es-PY.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 8b080c550..ab1b60637 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -16,9 +16,9 @@ "act-uncheckedItem": "desmarcado el elemento __checklistItem__ de la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-completeChecklist": "completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-uncompleteChecklist": "no completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", - "act-addComment": "comentario en la tarjeta__card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", - "act-editComment": "comentario editado en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", - "act-deleteComment": "comentario eliminado en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", + "act-addComment": "ha comentado en la tarjeta__card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", + "act-editComment": "ha editado la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", + "act-deleteComment": "ha borrado el comentario en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-createBoard": "creó el tablero __board__", "act-createSwimlane": "creó el carril de flujo __swimlane__ en el tablero __board__", "act-createCard": "creada la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", @@ -49,6 +49,7 @@ "activity-archived": "%s se ha archivado", "activity-attached": "adjuntado(s) %s a %s", "activity-created": "ha creado %s", + "activity-changedListTitle": "lista renombrada como %s", "activity-customfield-created": "creó el campo personalizado %s", "activity-excluded": "ha excluido %s de %s", "activity-imported": "ha importado %s en %s desde %s", @@ -85,25 +86,27 @@ "add-card": "Añadir una tarjeta", "add-card-to-top-of-list": "Subir la tarjeta al principio de la lista", "add-card-to-bottom-of-list": "Bajar la tarjeta al final de la lista", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", - "setSwimlaneHeightPopup-title": "Set Swimlane Height", - "set-swimlane-height": "Set Swimlane Height", - "set-swimlane-height-value": "Swimlane Height (pixels)", - "swimlane-height-error-message": "Swimlane height must be a positive integer", + "setListWidthPopup-title": "Ajustar anchuras", + "set-list-width": "Ajustar anchuras", + "set-list-width-value": "Establecer anchos mín. y máx. (píxeles)", + "list-width-error-message": "Las anchuras de las listas deben ser enteros mayores de 100", + "keyboard-shortcuts-enabled": "Atajos de teclado habilitados. Haz clic para deshabilitarlos.", + "keyboard-shortcuts-disabled": "Atajos de teclado deshabilitados. Haz clic para habilitarlos.", + "setSwimlaneHeightPopup-title": "Ajustar la altura del carril", + "set-swimlane-height": "Ajustar la altura del carril", + "set-swimlane-height-value": "Altura de carril (píxeles)", + "swimlane-height-error-message": "La altura de carril debe ser un entero positivo", "add-swimlane": "Añadir un carril de flujo", "add-subtask": "Añadir subtarea", "add-checklist": "Añadir una lista de verificación", "add-checklist-item": "Añadir un elemento a la lista de verificación", - "close-add-checklist-item": "Close add an item to checklist form", - "close-edit-checklist-item": "Close edit an item to checklist form", + "close-add-checklist-item": "Cerrar el formulario para añadir un elemento a la lista de verificación", + "close-edit-checklist-item": "Cerrar el formulario de edición de un elemento de la lista de verificación", "convertChecklistItemToCardPopup-title": "Convertir en tarjeta", - "add-cover": "Add cover image to minicard", + "add-cover": "Añadir imagen de portada a la minitarjeta", "add-label": "Añadir una etiqueta", "add-list": "Añadir una lista", - "add-after-list": "Add After List", + "add-after-list": "Añadir después de la lista", "add-members": "Añadir miembros", "added": "Añadida el", "addMemberPopup-title": "Miembros", @@ -117,7 +120,7 @@ "and-n-other-card": "y __count__ tarjeta más", "and-n-other-card_plural": "y otras __count__ tarjetas", "apply": "Aplicar", - "app-is-offline": "Cargando, espera por favor. Refrescar esta página causará pérdida de datos. Si la carga no funciona, por favor comprueba que el servidor no se ha parado.", + "app-is-offline": "Cargando, espera por favor. Refrescar esta página causará la pérdida de datos. Si la carga no funciona, por favor comprueba que el servidor no se ha parado.", "app-try-reconnect": "Intente reconectar.", "archive": "Archivar", "archive-all": "Archivar todo", @@ -146,10 +149,10 @@ "avatar-too-big": "El avatar es demasiado grande (__size__ máx)", "back": "Atrás", "board-change-color": "Cambiar el color", - "board-change-background-image": "Change Background Image", - "board-background-image-url": "Background Image URL", - "add-background-image": "Add Background Image", - "remove-background-image": "Remove Background Image", + "board-change-background-image": "Cambiar imagen de fondo", + "board-background-image-url": "URL de la imagen de fondo", + "add-background-image": "Añadir imagen de fondo", + "remove-background-image": "Quitar imagen de fondo", "show-at-all-boards-page" : "Mostrar todos los tableros", "board-info-on-my-boards" : "Configuración de todos los tableros", "boardInfoOnMyBoardsPopup-title" : "Configuración de todos los tableros", @@ -160,11 +163,11 @@ "board-not-found": "Tablero no encontrado", "board-private-info": "Este tablero será <strong>privado</strong>.", "board-public-info": "Este tablero será <strong>público</strong>.", - "board-drag-drop-reorder-or-click-open": "Mueve y posiciona para reordenar los iconos de los tableros. Click en el icono del tablero para abrirlo", + "board-drag-drop-reorder-or-click-open": "Arrastra y suelta para reordenar los iconos del tablero. Click en el icono del tablero para abrirlo", "boardChangeColorPopup-title": "Cambiar el fondo del tablero", - "boardChangeBackgroundImagePopup-title": "Change Background Image", + "boardChangeBackgroundImagePopup-title": "Cambiar imagen de fondo", "allBoardsChangeColorPopup-title": "Cambiar el color", - "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeBackgroundImagePopup-title": "Cambiar imagen de fondo", "boardChangeTitlePopup-title": "Renombrar el tablero", "boardChangeVisibilityPopup-title": "Cambiar visibilidad", "boardChangeWatchPopup-title": "Cambiar vigilancia", @@ -214,10 +217,10 @@ "vote-against": "contrarios", "deleteVotePopup-title": "¿Borrar voto?", "vote-delete-pop": "El Borrado es permanente. Perderá todas las acciones asociadas con este voto.", - "cardStartPlanningPokerPopup-title": "Comenzar una Planning Poker", - "card-edit-planning-poker": "Editar la planificación del Poker", - "editPokerEndDatePopup-title": "Cambiar la fecha final para la planificación del Poker", - "poker-question": "Planificación del Poker", + "cardStartPlanningPokerPopup-title": "Comenzar un Planning Poker", + "card-edit-planning-poker": "Editar el Planning Poker", + "editPokerEndDatePopup-title": "Cambiar la fecha final de voto del Planning Poker", + "poker-question": "Planning Poker", "poker-one": "1", "poker-two": "2", "poker-three": "3", @@ -233,8 +236,8 @@ "poker-result-who": "¿Quien?", "poker-replay": "Reproducir", "set-estimation": "Fijar estimación", - "deletePokerPopup-title": "¿Borrar el póquer de planificación?", - "poker-delete-pop": "El borrado es permanente. Perderás todas las acciones asociadas a este póker de planificación.", + "deletePokerPopup-title": "¿Borrar el Planning Poker?", + "poker-delete-pop": "El borrado es permanente. Perderás todas las acciones asociadas a este Planning Poker.", "cardDeletePopup-title": "¿Eliminar la tarjeta?", "cardArchivePopup-title": "¿Archivar tarjeta?", "cardDetailsActionsPopup-title": "Acciones de la tarjeta", @@ -263,6 +266,9 @@ "checklists": "Lista de verificación", "click-to-star": "Haz clic para destacar este tablero.", "click-to-unstar": "Haz clic para dejar de destacar este tablero.", + "click-to-enable-auto-width": "Ancho de lista automático deshabilitado. Haz clic para habilitarlo.", + "click-to-disable-auto-width": "Ancho de lista automático habilitado. Haz clic para deshabilitarlo.", + "auto-list-width": "Ancho de lista automático", "clipboard": "el portapapeles o con arrastrar y soltar", "close": "Cerrar", "close-board": "Cerrar el tablero", @@ -294,6 +300,7 @@ "color-white": "blanco", "color-yellow": "amarilla", "unset-color": "Desmarcar", + "comments": "Comentarios", "comment": "Comentar", "comment-placeholder": "Escribir comentario", "comment-only": "Sólo comentarios", @@ -306,7 +313,7 @@ "worker-desc": "Solo puede mover tarjetas, asignarse a la tarjeta y comentar.", "computer": "el ordenador", "confirm-subtask-delete-popup": "¿Seguro que quieres eliminar la subtarea?", - "confirm-checklist-delete-popup": "¿Está seguro de que quiere eliminar la lista de tareas?", + "confirm-checklist-delete-popup": "¿Está seguro de querer eliminar la lista de tareas?", "subtaskDeletePopup-title": "¿Borrar subtarea?", "checklistDeletePopup-title": "¿Borrar la lista de tareas?", "copy-card-link-to-clipboard": "Copiar el enlace de la tarjeta al portapapeles", @@ -331,7 +338,7 @@ "custom-field-date": "Fecha", "custom-field-dropdown": "Lista desplegable", "custom-field-dropdown-none": "(nada)", - "custom-field-dropdown-options": "Opciones de la lista", + "custom-field-dropdown-options": "Opciones de listas", "custom-field-dropdown-options-placeholder": "Pulsa Intro para añadir más opciones", "custom-field-dropdown-unknown": "(desconocido)", "custom-field-number": "Número", @@ -376,6 +383,7 @@ "email-sent": "Correo enviado", "email-verifyEmail-subject": "Verifica tu dirección de correo en __siteName__", "email-verifyEmail-text": "Hola __user__,\n\nPara verificar tu cuenta de correo electrónico, haz clic en el siguiente enlace.\n\n__url__\n\nGracias.", + "enable-vertical-scrollbars": "Habilitar barras de desplazamiento verticales", "enable-wip-limit": "Habilitar el límite del trabajo en proceso", "error-board-doesNotExist": "El tablero no existe", "error-board-notAdmin": "Es necesario ser administrador de este tablero para hacer eso", @@ -406,7 +414,7 @@ "sort": "Ordenar", "sorted": "Ordenado", "remove-sort": "Eliminar el ordenamiento", - "sort-desc": "Click para ordenar la lista", + "sort-desc": "Clic para ordenar la lista", "list-sort-by": "Ordenar la lista por:", "list-label-modifiedAt": "Hora de último acceso", "list-label-title": "Nombre de la lista", @@ -443,7 +451,7 @@ "advanced-filter-description": "El filtrado avanzado permite escribir una cadena que contiene los siguientes operadores: == != <= >= && || ( ) Se utiliza un espacio como separador entre los operadores. Se pueden filtrar todos los campos personalizados escribiendo sus nombres y valores. Por ejemplo: Campo1 == Valor1. Nota: Si los campos o valores contienen espacios, deben encapsularse entre comillas simples. Por ejemplo: 'Campo 1' == 'Valor 1'. Para omitir los caracteres de control único (' \\\\/), se usa \\\\. Por ejemplo: Campo1 = I\\\\'m. También se pueden combinar múltiples condiciones. Por ejemplo: C1 == V1 || C1 == V2. Normalmente todos los operadores se interpretan de izquierda a derecha. Se puede cambiar el orden colocando paréntesis. Por ejemplo: C1 == V1 && ( C2 == V2 || C2 == V3 ). También se puede buscar en campos de texto usando expresiones regulares: C1 == /Tes.*/i", "fullname": "Nombre completo", "header-logo-title": "Volver a tu página de tableros", - "hide-system-messages": "Ocultar las notificaciones de actividad", + "show-activities": "Mostrar actividades", "headerBarCreateBoardPopup-title": "Crear tablero", "home": "Inicio", "import": "Importar", @@ -492,7 +500,7 @@ "list-move-cards": "Mover todas las tarjetas de esta lista", "list-select-cards": "Seleccionar todas las tarjetas de esta lista", "set-color-list": "Cambiar el color", - "listActionPopup-title": "Acciones de la lista", + "listActionPopup-title": "Acciones de listas", "settingsUserPopup-title": "Preferencias de usuario", "settingsTeamPopup-title": "Configuración del Equipo", "settingsOrgPopup-title": "Configuración de la Organización", @@ -502,7 +510,7 @@ "listImportCardsTsvPopup-title": "Importar CSV/TSV", "listMorePopup-title": "Más", "link-list": "Enlazar a esta lista", - "list-delete-pop": "Todas las acciones serán eliminadas del historial de actividades y no se podrá recuperar la lista. Esta acción no puede deshacerse.", + "list-delete-pop": "Se eliminarán todas las acciones del historial de actividades y no se podrá volver a abrir la lista. Esta acción no puede deshacerse.", "list-delete-suggest-archive": "Puedes mover una lista al Archivo para quitarla del tablero y preservar la actividad.", "lists": "Listas", "swimlanes": "Carriles", @@ -532,7 +540,7 @@ "normal": "Normal", "normal-desc": "Puedes ver y editar tarjetas. No puedes cambiar la configuración.", "not-accepted-yet": "La invitación no ha sido aceptada aún", - "notify-participate": "Receive updates to any cards you participate as creator or member", + "notify-participate": "Recibir actualizaciones de cualquier tarjeta en la que participes como creador o miembro", "notify-watch": "Recibir actuaizaciones de cualquier tablero, lista o tarjeta que estés vigilando", "optional": "opcional", "or": "o", @@ -550,7 +558,7 @@ "public": "Público", "public-desc": "Este tablero es público. Es visible para cualquiera a través del enlace, y se mostrará en los buscadores como Google. Sólo las personas añadidas al tablero pueden editarlo.", "quick-access-description": "Destaca un tablero para añadir un acceso directo en esta barra.", - "remove-cover": "Remove cover image from minicard", + "remove-cover": "Quitar imagen de portada de la minitarjeta", "remove-from-board": "Desvincular del tablero", "remove-label": "Eliminar la etiqueta", "listDeletePopup-title": "¿Eliminar la lista?", @@ -572,13 +580,14 @@ "select-board": "Seleccionar tablero", "set-wip-limit-value": "Cambiar el límite para el número máximo de tareas en esta lista.", "setWipLimitPopup-title": "Establecer el límite del trabajo en proceso", + "shortcut-add-self": "Añadirte a ti mismo a la tarjeta actual", "shortcut-assign-self": "Asignarte a ti mismo a la tarjeta actual", "shortcut-autocomplete-emoji": "Autocompletar emoji", "shortcut-autocomplete-members": "Autocompletar miembros", "shortcut-clear-filters": "Limpiar todos los filtros", "shortcut-close-dialog": "Cerrar el cuadro de diálogo", "shortcut-filter-my-cards": "Filtrar mis tarjetas", - "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-filter-my-assigned-cards": "Filtrar mis tarjetas asignadas", "shortcut-show-shortcuts": "Mostrar esta lista de atajos", "shortcut-toggle-filterbar": "Conmutar la barra lateral del filtro", "shortcut-toggle-searchbar": "Conmutar la barra lateral de búsqueda", @@ -595,12 +604,13 @@ "this-board": "este tablero", "this-card": "esta tarjeta", "spent-time-hours": "Tiempo consumido (horas)", - "overtime-hours": "Tiempo excesivo (horas)", + "overtime-hours": "Horas extras", "overtime": "Tiempo excesivo", "has-overtime-cards": "Hay tarjetas con el tiempo excedido", "has-spenttime-cards": "Se ha excedido el tiempo de las tarjetas", "time": "Hora", "title": "Título", + "toggle-assignees": "Alternar asignados 1-9 para la tarjeta (por orden de adición al tablero).", "toggle-labels": "Alterna las etiquetas 1-9 para la tarjeta. La selección múltiple añade las etiquetas 1-9", "remove-labels-multiselect": "La selección múltiple elimina las etiquetas 1-9", "tracking": "Siguiendo", @@ -614,12 +624,12 @@ "uploaded-avatar": "Avatar cargado", "custom-top-left-corner-logo-image-url": "Personalizar la URL del logotipo en la esquina superior izquierda", "custom-top-left-corner-logo-link-url": "Personalizar el enlace del logotipo de la esquina superior izquierda", - "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", + "custom-top-left-corner-logo-height": "Altura personalizada del logo de la esquina superior izquierda. Por defecto: 27", "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", - "custom-help-link-url": "Custom Help Link URL", + "custom-help-link-url": "Enlace URL de ayuda personalizada", "text-below-custom-login-logo": "Text below Custom Login Logo", - "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", + "automatic-linked-url-schemes": "Esquemas de URL personalizados que deberían ser clicables automáticamente. Un esquema de URL por línea.", "username": "Nombre de usuario", "import-usernames": "Importar Usuarios", "view-it": "Verla", @@ -646,7 +656,7 @@ "disable-forgot-password": "Disable Forgot Password", "invite": "Invitar", "invite-people": "Invitar a personas", - "to-boards": "A el(los) tablero(s)", + "to-boards": "Al (A los) tablero(s)", "email-addresses": "Direcciones de correo electrónico", "smtp-host-description": "Dirección del servidor SMTP para gestionar tus correos", "smtp-port-description": "Puerto usado por el servidor SMTP para mandar correos", @@ -721,7 +731,7 @@ "setListColorPopup-title": "Elegir un color", "assigned-by": "Asignado por", "requested-by": "Solicitado por", - "card-sorting-by-number": "Card sorting by number", + "card-sorting-by-number": "Orden de tarjetas por número", "board-delete-notice": "Se eliminarán todas las listas, tarjetas y acciones asociadas a este tablero. Esta acción no puede deshacerse.", "delete-board-confirm-popup": "Se eliminarán todas las listas, tarjetas, etiquetas y actividades, y no podrás recuperar los contenidos del tablero. Esta acción no puede deshacerse.", "boardDeletePopup-title": "¿Eliminar el tablero?", @@ -732,7 +742,7 @@ "queue": "Cola", "subtask-settings": "Preferencias de las subtareas", "card-settings": "Preferencias de la tarjeta", - "minicard-settings": "Minicard Settings", + "minicard-settings": "Configuración de minitarjeta", "boardSubtaskSettingsPopup-title": "Preferencias de las subtareas del tablero", "boardCardSettingsPopup-title": "Preferencias de la tarjeta", "boardMinicardSettingsPopup-title": "Minicard Settings", @@ -740,9 +750,9 @@ "deposit-subtasks-list": "Lista de destino para subtareas depositadas aquí:", "show-parent-in-minicard": "Mostrar el padre en una minitarjeta:", "description-on-minicard": "Description on minicard", - "cover-attachment-on-minicard": "Cover image on minicard", - "badge-attachment-on-minicard": "Count of attachments on minicard", - "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "cover-attachment-on-minicard": "Imagen de portada de la minitarjeta", + "badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta", + "card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta", "prefix-with-full-path": "Prefijo con ruta completa", "prefix-with-parent": "Prefijo con el padre", "subtext-with-full-path": "Subtexto con ruta completa", @@ -776,7 +786,7 @@ "r-added-to": "Añadido a", "r-removed-from": "eliminado de", "r-the-board": "el tablero", - "r-list": "la lista", + "r-list": "lista", "set-filter": "Filtrar", "r-moved-to": "Movido a", "r-moved-from": "Movido desde", @@ -851,12 +861,12 @@ "r-d-remove-checklist": "Eliminar lista de verificación", "r-by": "por", "r-add-checklist": "Añadir una lista de verificación", - "r-with-items": "con items", + "r-with-items": "con elementos", "r-items-list": "item1,item2,item3", "r-add-swimlane": "Agregar el carril", "r-swimlane-name": "nombre del carril", "r-board-note": "Nota: deje un campo vacío para que coincida con todos los valores posibles", - "r-checklist-note": "Nota: los ítems de la lista tienen que escribirse como valores separados por coma.", + "r-checklist-note": "Nota: los elementos de la lista tienen que escribirse como valores separados por coma.", "r-when-a-card-is-moved": "Cuando una tarjeta es movida a otra lista", "r-set": "Cambiar", "r-update": "Actualizar", @@ -867,7 +877,7 @@ "r-df-received-at": "recibido", "r-to-current-datetime": "a la fecha/hora actual", "r-remove-value-from": "Eliminar el valor de", - "r-link-card": "Link card to", + "r-link-card": "Enlazar tarjeta a", "ldap": "LDAP", "oauth2": "OAuth2", "cas": "CAS", @@ -880,7 +890,7 @@ "hide-board-member-list": "Hide board member list on All Boards", "add-custom-html-after-body-start": "Añade HTML personalizado después de <body>", "add-custom-html-before-body-end": "Añade HTML personalizado después de </body>", - "error-undefined": "Algo no está bien", + "error-undefined": "Algo ha salido mal", "error-ldap-login": "Ocurrió un error al intentar acceder", "display-authentication-method": "Mostrar el método de autenticación", "oidc-button-text": "Customize the OIDC button text", @@ -906,15 +916,15 @@ "almostdue": "está próxima la hora de vencimiento actual %s", "pastdue": "se sobrepasó la hora de vencimiento actual%s", "duenow": "la hora de vencimiento actual %s es hoy", - "act-newDue": "__list__/__card__ tiene una 1ra notificación de vencimiento [__board__]", + "act-newDue": "__list__/__card__ tiene una primera notificación de vencimiento [__board__]", "act-withDue": "__list__/__card__ notificaciones de vencimiento [__board__]", "act-almostdue": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ está próximo", "act-pastdue": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ se sobrepasó", "act-duenow": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ es ahora", "act-atUserComment": "Se te mencionó en [__board__] __list__/__card__", - "delete-user-confirm-popup": "¿Seguro que quieres eliminar esta cuenta? Esta acción no puede deshacerse.", - "delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.", - "delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.", + "delete-user-confirm-popup": "¿Estás seguro de querer eliminar esta cuenta? Esta acción no puede deshacerse.", + "delete-team-confirm-popup": "¿Estás seguro de querer eliminar este equipo? Esta acción no puede deshacerse", + "delete-org-confirm-popup": "¿Estás seguro de querer eliminar esta organización? Esta acción no puede deshacerse.", "accounts-allowUserDelete": "Permitir a los usuarios eliminar su cuenta", "hide-minicard-label-text": "Ocultar el texto de la etiqueta de la minitarjeta", "show-desktop-drag-handles": "Mostrar los controles de arrastre del escritorio", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "No puede borrar esta tarjeta antes de borrar la tarjeta enlazada que tiene", "delete-linked-cards-before-this-list": "No puede borrar esta lista antes de borrar las tarjetas enlazadas que apuntan a tarjetas en esta lista", "hide-checked-items": "Ocultar elementos marcados", + "hide-finished-checklist": "Esconder la lista de tareas finalizada", "task": "Tarea", "create-task": "Crear Tarea", "ok": "Vale", @@ -963,7 +974,7 @@ "teams": "Equipos", "displayName": "Mostrar Nombre", "shortName": "Nombre Corto", - "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "autoAddUsersWithDomainName": "Añadir automáticamente usuarios con el nombre del dominio", "website": "Sitio web", "person": "Persona", "my-cards": "Mis Tarjetas", @@ -987,13 +998,13 @@ "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", "broken-cards": "Tarjetas Rotas", "board-title-not-found": "Tablero '%s' no encontrado.", - "swimlane-title-not-found": "Swimlane '%s' not found.", + "swimlane-title-not-found": "Carril '%s' no encontrado.", "list-title-not-found": "Lista '%s' no encontrada.", "label-not-found": "Etiqueta '%s' no encontrada.", "label-color-not-found": "Label color %s not found.", "user-username-not-found": "Usuario '%s' no encontrado.", "comment-not-found": "Card with comment containing text '%s' not found.", - "org-name-not-found": "Organization '%s' not found.", + "org-name-not-found": "Organización '%s' no encontrada.", "team-name-not-found": "Team '%s' not found.", "globalSearch-title": "Buscar todas las tarjetas", "no-cards-found": "Ninguna tarjeta encontrada", @@ -1002,9 +1013,9 @@ "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", "operator-board": "tablero", "operator-board-abbrev": "b", - "operator-swimlane": "swimlane", + "operator-swimlane": "carril", "operator-swimlane-abbrev": "s", - "operator-list": "la lista", + "operator-list": "lista", "operator-list-abbrev": "l", "operator-label": "etiqueta", "operator-label-abbrev": "#", @@ -1030,7 +1041,7 @@ "predicate-open": "abierto", "predicate-ended": "finalizó", "predicate-all": "todo", - "predicate-overdue": "overdue", + "predicate-overdue": "atrasado", "predicate-week": "semana", "predicate-month": "mes", "predicate-quarter": "cuarto", @@ -1053,45 +1064,45 @@ "operator-number-expected": "operator __operator__ expected a number, got '__value__'", "operator-sort-invalid": "sort of '%s' is invalid", "operator-status-invalid": "'%s' no es un estado válido", - "operator-has-invalid": "%s is not a valid existence check", + "operator-has-invalid": "%s no es una comprobación de existencia válida", "operator-limit-invalid": "%s no es un límite válido. El límite ha de ser un entero positivo.", "operator-debug-invalid": "%s is not a valid debug predicate", "next-page": "Página Siguiente", "previous-page": "Página Anterior", "heading-notes": "Notas", - "globalSearch-instructions-heading": "Buscar instrucciones.", - "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-heading": "Instrucciones de búsqueda", + "globalSearch-instructions-description": "Se pueden usar operadores para refinar la búsqueda. Los operadores se especifican escribiendo el nombre del operador y su valor separado por dos puntos. Por ejemplo, especificar `lista:Bloqueada` limitaría la búsqueda a tarjetas que conengan una lista llamada *Bloqueada*. Si el valor contiene espacios o caracteres especiales, debe escribirse entre comillas (por ejemplo: `__operator_list__:\"To Review\"`).", "globalSearch-instructions-operators": "Operadores disponibles:", - "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", + "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - tarjetas en tableros que coincidan con *<title>*", "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", - "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - tarjetas con comentarios que contengan *<text>*.", "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", - "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - abreviatura para `__operator_label__:<color>` o `__operator_label__:<name>`", "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", - "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - abreviatura para `user:<username>`", "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", - "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - cards where *<username>* is the card's creator", + "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - tarjetas donde *<username>* es el creador de la tarjeta", "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*", - "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*", - "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", + "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - las tarjetas pertenecientes al tablero asignadas al equipo *<name>*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - tarjetas que vencen dentro de *<n>* days. `__operator_due__:__predicate_overdue__ lista todas las tarjetas que han vencido.", "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", - "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - donde *<status>* puede ser uno de los siguientes:", "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", - "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", + "globalSearch-instructions-status-all": "`__predicate_all__` - todas las tarjetas archivadas o no archivadas", "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", - "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", - "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", - "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", - "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", - "globalSearch-instructions-notes-1": "Múltiple operadores pueden ser seleccionados.", - "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", - "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", + "globalSearch-instructions-status-private": "`__predicate_private__` - solo tarjetas de tableros privados", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - donde *<field>* puede ser `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` o `__predicate_member__`. Colocando un `-` delante de *<field>* busca la ausencia del valor en ese campo (por ejemplo, `has:-due` busca tarjetas sin fecha de vencimiento).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - donde *<sort-name>* puede ser `__predicate_due__`, `__predicate_created__` o `__predicate_modified__`. Para ordenar descendentemente, coloca un `-` delante del tipo de orden.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - donde *<n>* es un entero positivo que expresa el número de tarjetas que se mostrarán por página.", + "globalSearch-instructions-notes-1": "Se pueden especificar múltiples operadores.", + "globalSearch-instructions-notes-2": "Múltiples condiciones de operadores parecidos se tratan internamente con el operador lógico OR. Es decir, la búsqueda devolverá las tarjetas que coincidan con alguna de las condiciones:\n`__operator_list__:Disponible __operator_list__:Bloqueada` devolverá tarjetas contenidas en cualquier lista nombrada *Bloqueada* o *Disponible*.", + "globalSearch-instructions-notes-3": "Múltiples condiciones de operadores distintos se tratan internamente con el operador lógico AND. Es decir, la búsqueda devolverá las tarjetas que coincidan con TODAS las condiciones:\n`__operator_list__:Disponible __operator_label__:rojo` devuelve sólo las tarjetas en la lista *Disponible* con una etiqueta *roja*.", "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", - "globalSearch-instructions-notes-4": "La búsqueda de texto distingue entre mayúsculas y minúsculas.", + "globalSearch-instructions-notes-4": "Las búsquedas de texto no distinguen entre mayúsculas y minúsculas.", "globalSearch-instructions-notes-5": "Por defecto no se buscan las tarjetas archivadas.", "link-to-search": "Enlazar a esta búsqueda", "excel-font": "Arial", @@ -1100,32 +1111,32 @@ "label-names": "Nombres de las etiquetas", "archived-at": "archivado el", "sort-cards": "Ordenar tarjetas", - "sort-is-on": "Sort is on", + "sort-is-on": "Ordenamiento activado", "cardsSortPopup-title": "Ordenar tarjetas", "due-date": "Fecha de Vencimiento", "server-error": "Error del Servidor", - "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`", + "server-error-troubleshooting": "Por favor, envíe el error generado por el servidor.\nPara la instalación con snap, ejecute: `sudo snap logs wekan.wekan`\nPara la instalación con docker, ejecute: `sudo docker logs wekan-app`", "title-alphabetically": "Título (Alfabéticamente)", "created-at-newest-first": "Creación (Nuevos Primero)", "created-at-oldest-first": "Creación (Antiguos Primero)", "links-heading": "Enlaces", - "hide-system-messages-of-all-users": "Ocultar los mensajes de sistema de todos los usuarios", - "now-system-messages-of-all-users-are-hidden": "Los mensajes de sistema de todos los usuarios están ahora ocultos", + "hide-activities-of-all-boards": "No mostrar las actividades del tablero en todos los tableros", + "now-activities-of-all-boards-are-hidden": "Todas las actividades de todos los tableros están ahora ocultas", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", - "custom-field-stringtemplate": "String Template", + "custom-field-stringtemplate": "Plantilla de cadenas", "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", "custom-field-stringtemplate-separator": "Separator (use or   for a space)", "custom-field-stringtemplate-item-placeholder": "Pulsa intro para añadir más elementos", "creator": "Creador", - "creator-on-minicard": "Creator on minicard", + "creator-on-minicard": "Creador en minitarjeta", "filesReportTitle": "Informe sobre los archivos", "reports": "Informes", "rulesReportTitle": "Informe sobre las Reglas", "boardsReportTitle": "Informe sobre los Tableros", "cardsReportTitle": "Informe sobre las Tarjetas", "copy-swimlane": "Copy Swimlane", - "copySwimlanePopup-title": "Copy Swimlane", + "copySwimlanePopup-title": "Copiar carril", "display-card-creator": "Mostrar Creador de la Tarjeta", "wait-spinner": "Wait Spinner", "Bounce": "Bounce Wait Spinner", @@ -1139,7 +1150,7 @@ "maximize-card": "Maximizar Tarjeta", "minimize-card": "Minimizar Tarjeta", "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", - "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", + "delete-team-warning-message": "No se puede eliminar este equipo, hay al menos un usuario que pertenece a este equipo.", "subject": "Asunto", "details": "Detalles", "carbon-copy": "Carbon Copy (Cc:)", @@ -1164,9 +1175,9 @@ "remove-btn": "Eliminar", "filter-card-title-label": "Filtrar por el título de la tarjeta", "invite-people-success": "Invitation to register sent with success", - "invite-people-error": "Error while sending invitation to register", + "invite-people-error": "Error al enviar la invitación para registrarse", "can-invite-if-same-mailDomainName": "Email domain name", - "to-create-teams-contact-admin": "To create teams, please contact the administrator.", + "to-create-teams-contact-admin": "Para crear equipos, por favor contacte con el administrador.", "Node_heap_total_heap_size": "Node heap: total heap size", "Node_heap_total_heap_size_executable": "Node heap: total heap size executable", "Node_heap_total_physical_size": "Node heap: total physical size", @@ -1184,7 +1195,7 @@ "Node_memory_usage_external": "Node memory usage: external", "add-organizations": "Añadir organizaciones", "add-organizations-label": "Added organizations are displayed below:", - "remove-organization-from-board": "Are you sure you want to remove this organization from this board ?", + "remove-organization-from-board": "¿Estás seguro de querer quitar esta organización del tablero?", "to-create-organizations-contact-admin": "Para crear organizaciones, póngase en contacto con el administrador.", "custom-legal-notice-link-url": "URL personalizada de la página de aviso legal", "acceptance_of_our_legalNotice": "Al continuar, usted acepta nuestra", @@ -1193,22 +1204,25 @@ "checklistActionsPopup-title": "Acciones de la Lista de Tareas", "moveChecklist": "Mover Lista de Tareas", "moveChecklistPopup-title": "Mover Lista de Tareas", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Cada línea de texto se convierte en un nuevo elemento de la lista de verificación", + "newLineNewItem": "Una línea de texto = un elemento de la lista de verificación", + "newlineBecomesNewChecklistItemOriginOrder": "Cada línea de texto se convierte en un nuevo elemento de la lista de verificación, orden original", + "originOrder": "orden original", "copyChecklist": "Copiar Lista de Tareas", "copyChecklistPopup-title": "Copiar Lista de Tareas", "card-show-lists": "Mostrar Listas de Tarjetas", "subtaskActionsPopup-title": "Acciones de la Subtarea", "attachmentActionsPopup-title": "Acciones de Adhesión", "attachment-move-storage-fs": "Mover el archivo adjunto al sistema de archivos", - "attachment-move-storage-gridfs": "Move attachment to GridFS", + "attachment-move-storage-gridfs": "Mover adjunto a GridFS", "attachment-move-storage-s3": "Move attachment to S3", "attachment-move": "Mover el Adjunto", "move-all-attachments-to-fs": "Mover todos los archivos adjuntos al sistema de archivos", - "move-all-attachments-to-gridfs": "Move all attachments to GridFS", + "move-all-attachments-to-gridfs": "Mover todos los adjuntos a GridFS", "move-all-attachments-to-s3": "Move all attachments to S3", - "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", + "move-all-attachments-of-board-to-fs": "Mover todos los adjuntos del tablero al sistema de archivos", "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", - "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", + "move-all-attachments-of-board-to-s3": "Mover todos los adjuntos del tablero a S3", "path": "Ruta", "version-name": "Nombre de la versión", "size": "Tamaño", @@ -1220,7 +1234,7 @@ "remaining_time": "Tiempo restante", "speed": "Velocidad", "progress": "Progreso", - "password-again": "Password (again)", + "password-again": "Contraseña (repetir)", "if-you-already-have-an-account": "If you already have an account", "register": "Register", "forgot-password": "Forgot password", @@ -1232,19 +1246,27 @@ "max-avatar-filesize": "Máximo tamaño de archivo de avatar en bytes:", "allowed-avatar-filetypes": "Tipos de archivo permitidos para el avatar:", "invalid-file": "Si el nombre de archivo no es válido, la carga o el cambio de nombre es cancelado.", - "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", - "drag-board": "Drag board", - "translation-number": "The number of custom translation strings is:", - "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", - "newTranslationPopup-title": "New custom translation string", - "editTranslationPopup-title": "Edit custom translation string", - "settingsTranslationPopup-title": "Delete this custom translation string?", - "translation": "Translation", + "preview-pdf-not-supported": "Tu dispositivo no permite previsualizar PDF. Intenta descargarlo.", + "drag-board": "Arrastrar tablero", + "translation-number": "El número de cadenas de traducción personalizadas es:", + "delete-translation-confirm-popup": "¿Estás seguro de querer eliminar esta cadena de traducción personalizada? Esta acción no puede deshacerse.", + "newTranslationPopup-title": "Nueva cadena de traducción personalizada", + "editTranslationPopup-title": "Editar cadena de traducción personalizada", + "settingsTranslationPopup-title": "¿Borrar esta cadena de traducción personalizada?", + "translation": "Traducción", "text": "Texto", - "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", - "show-subtasks-field": "Show subtasks field", - "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "translation-text": "Texto de traducción", + "show-subtasks-field": "Mostrar campo de subtareas", + "show-week-of-year": "Mostrar semana del año (ISO 8601)", + "convert-to-markdown": "Convertir en Markdown", + "import-board-zip": "Añadir archivo .zip que contenga los archivos JSON del tablero y los nombres de las subcarpetas con adjuntos del tablero", + "collapse": "Contraer", + "uncollapse": "Expandir", + "hideCheckedChecklistItems": "Ocultar elementos marcados de la lista de verificación", + "hideAllChecklistItems": "Ocultar todos los elementos de la lista de verificación", + "support": "Soporte", + "supportPopup-title": "Soporte", + "accessibility-page-enabled": "Página de accesibilidad habilitada", + "accessibility-title": "Temas de accesibilidad", + "accessibility-content": "Contenido de accesibilidad" } diff --git a/imports/i18n/data/es_CO.i18n.json b/imports/i18n/data/es_CO.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/es_CO.i18n.json +++ b/imports/i18n/data/es_CO.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/et-EE.i18n.json b/imports/i18n/data/et-EE.i18n.json index 1e9b1011b..9c5651b0f 100644 --- a/imports/i18n/data/et-EE.i18n.json +++ b/imports/i18n/data/et-EE.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s kolis arhiivi", "activity-attached": "%s on lisatud %s-le", "activity-created": "loodud %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "loodud kohandatud väli %s", "activity-excluded": "välja arvatud %s alates %s", "activity-imported": "importis %s %s-i %s-st %s-i", @@ -85,10 +86,12 @@ "add-card": "Lisa kaart", "add-card-to-top-of-list": "Kaardi lisamine nimekirja tippu", "add-card-to-bottom-of-list": "Lisa kaart nimekirja lõppu", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Kontrollnimekirjad", "click-to-star": "Kliki, et seda tahvlit tähistada.", "click-to-unstar": "Klõpsake selle tahvli tärni eemaldamiseks.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Lõikeplaat või drag & drop", "close": "Sulge", "close-board": "Sulge juhatus", @@ -294,6 +300,7 @@ "color-white": "valge", "color-yellow": "kollane", "unset-color": "Unset", + "comments": "Comments", "comment": "Kuidas", "comment-placeholder": "Kirjutage kommentaar", "comment-only": "Ainult kommentaar", @@ -376,6 +383,7 @@ "email-sent": "Saadetud e-kiri", "email-verifyEmail-subject": "Kontrollida oma e-posti aadressi __siteName__", "email-verifyEmail-text": "Tere __user__,\n\nOma konto e-posti aadressi kinnitamiseks klõpsake lihtsalt alloleval lingil.\n\n__url__\n\nTänan teid.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "WIP piirangu lubamine", "error-board-doesNotExist": "Seda tahvlit ei ole olemas", "error-board-notAdmin": "Selleks peate olema selle foorumi administraator.", @@ -443,7 +451,7 @@ "advanced-filter-description": "Täpsem filter võimaldab kirjutada stringi, mis sisaldab järgmisi operaatoreid: == ( ) Operaatorite vahel kasutatakse eraldajana tühikut. Saate filtreerida kõiki kohandatud välju, sisestades nende nimed ja väärtused. Näiteks: Välja1 == Väärtus1. Märkus: Kui väljad või väärtused sisaldavad tühikuid, tuleb need kapseldada ühekordsetesse jutumärkidesse. Näiteks: \"Väli 1\" == \"Väärtus 1\". Üksikute kontrollmärkide (' \\\\/) vahelejätmiseks võite kasutada \\\\. Näiteks: Välja1 == I\\\\'m. Samuti saab kombineerida mitu tingimust. Näiteks: F1 == V1 || F1 == V2. Tavaliselt tõlgendatakse kõiki operaatoreid vasakult paremale. Sulgudes saab järjekorda muuta. Näiteks: F1 == V1 && ( F2 == V2 || F2 == V3 ). Samuti saab tekstivälju otsida regexi abil: F1 == /Tes.*/i", "fullname": "Täielik nimi", "header-logo-title": "Mine tagasi oma foorumite lehele.", - "hide-system-messages": "Süsteemi sõnumite peitmine", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Loo juhatus", "home": "Kodu", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Valige juhatus", "set-wip-limit-value": "Määrake selles nimekirjas olevate ülesannete maksimaalne arv.", "setWipLimitPopup-title": "Määrake WIP limiit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Määrake ennast praegusele kaardile", "shortcut-autocomplete-emoji": "Automaatselt täidetav emotikon", "shortcut-autocomplete-members": "Automaatselt täituvad liikmed", @@ -601,6 +610,7 @@ "has-spenttime-cards": "On veetnud aega kaardid", "time": "Aeg", "title": "Pealkiri", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Jälgimine", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Te ei saa seda kaarti kustutada enne, kui olete esmalt kustutanud seotud kaardi, millel on", "delete-linked-cards-before-this-list": "Te ei saa seda nimekirja kustutada enne, kui te kustutate kõigepealt lingitud kaardid, mis viitavad selles nimekirjas olevatele kaartidele.", "hide-checked-items": "Peida kontrollitud elemendid", + "hide-finished-checklist": "Hide finished checklist", "task": "Ülesanne", "create-task": "Loo ülesanne", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Loodud aadressil (uusim esimesena)", "created-at-oldest-first": "Loodud aadressil (vanim esimene)", "links-heading": "Lingid", - "hide-system-messages-of-all-users": "Peida kõikide kasutajate süsteemisõnumid", - "now-system-messages-of-all-users-are-hidden": "Nüüd on kõikide kasutajate süsteemisõnumid peidetud", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Liiguta ujula", "moveSwimlanePopup-title": "Liiguta ujula", "custom-field-stringtemplate": "String malli", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Tekst", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Kokkupõrge", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 4e17a4572..791c52b6e 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s biltegira eraman da", "activity-attached": "%s %s(e)ra erantsita", "activity-created": "%s sortuta", + "activity-changedListTitle": "izena aldatu zaio zerrendari: %s", "activity-customfield-created": "%s eremu pertsonalizatua sortu da", "activity-excluded": "%s %s(e)tik kanpo utzita", "activity-imported": "%s inportatuta %s(e)ra %s(e)tik", @@ -85,10 +86,12 @@ "add-card": "Gehitu txartela", "add-card-to-top-of-list": "Gehitu txartela zerrendaren goiko aldean", "add-card-to-bottom-of-list": "Gehitu txartela zerrendaren beheko aldean", - "setListWidthPopup-title": "Ezarri zerrendaren zabalera", - "set-list-width": "Ezarri zerrendaren zabalera", - "set-list-width-value": "Zerrendaren zabalera (pixelak)", - "list-width-error-message": "Zerrendaren zabalerak zenbaki oso positiboa izan behar du", + "setListWidthPopup-title": "Ezarri zabalerak", + "set-list-width": "Ezarri zabalerak", + "set-list-width-value": "Ezarri gutxieneko eta gehieneko zabalerak (pixel)", + "list-width-error-message": "Zerrenden zabalerak 100 baino handiagoak izan behar dira", + "keyboard-shortcuts-enabled": "Laster-teklak gaituta. Egin klik desgaitzeko.", + "keyboard-shortcuts-disabled": "Laster-teklak desgaituta. Egin klik gaitzeko.", "setSwimlaneHeightPopup-title": "Errailaren altuera ezarri", "set-swimlane-height": "Errailaren altuera ezarri", "set-swimlane-height-value": "Errailaren altuera (pixelak)", @@ -150,11 +153,11 @@ "board-background-image-url": "Atzeko planoko irudiaren URLa", "add-background-image": "Gehitu atzeko planoko irudia", "remove-background-image": "Kendu atzeko planoko irudia", - "show-at-all-boards-page" : "Show at All Boards page", + "show-at-all-boards-page" : "Erakutsi Arbel Guztien orrian", "board-info-on-my-boards" : "All Boards Settings", "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", "boardInfoOnMyBoards-title": "All Boards Settings", - "show-card-counter-per-list": "Show card count per list", + "show-card-counter-per-list": "Erakutsi txartel kopurua zerrenda bakoitzeko", "show-board_members-avatar": "Erakutsi arbeleko kideen avatarrak", "board-nb-stars": "%s izar", "board-not-found": "Ez da arbela aurkitu", @@ -210,14 +213,14 @@ "allowNonBoardMembers": "Baimendu saioa hasitako erabiltzaile guztiei", "vote-question": "Bozketaren galdera", "vote-public": "Erakutsi zeinek zer bozkatu duen", - "vote-for-it": "for it", - "vote-against": "against", + "vote-for-it": "horretarako", + "vote-against": "aurka", "deleteVotePopup-title": "Botoa ezabatu?", "vote-delete-pop": "Ezabatzea behin betirako da. Boto honekin lotutako ekintza guztiak galduko dira.", - "cardStartPlanningPokerPopup-title": "Start a Planning Poker", - "card-edit-planning-poker": "Edit Planning Poker", - "editPokerEndDatePopup-title": "Change Planning Poker vote end date", - "poker-question": "Planning Poker", + "cardStartPlanningPokerPopup-title": "Hasi Planifikazio Poker bat", + "card-edit-planning-poker": "Editatu Planifikazio Pokerra", + "editPokerEndDatePopup-title": "Aldatu Planifikazio Pokerraren botoaren amaiera data", + "poker-question": "Planifikazio Pokerra", "poker-one": "1", "poker-two": "2", "poker-three": "3", @@ -233,8 +236,8 @@ "poker-result-who": "Nor", "poker-replay": "Erreprodukzioa", "set-estimation": "Ezarri estimazioa", - "deletePokerPopup-title": "Delete planning poker?", - "poker-delete-pop": "Deleting is permanent. You will lose all actions associated with this planning poker.", + "deletePokerPopup-title": "Ezabatu Planifikazio Pokerra?", + "poker-delete-pop": "Ezabatzea betirako da. Planifikazio Poker honekin lotutako ekintza guztiak galduko dituzu.", "cardDeletePopup-title": "Ezabatu txartela?", "cardArchivePopup-title": "Gorde txartela?", "cardDetailsActionsPopup-title": "Txartel-ekintzak", @@ -263,6 +266,9 @@ "checklists": "Kontrol-zerrendak", "click-to-star": "Egin klik arbel honi izarra jartzeko", "click-to-unstar": "Egin klik arbel honi izarra kentzeko", + "click-to-enable-auto-width": "Zerrenda zabalera automatikoa desgaituta dago. Egin klik gaitzeko.", + "click-to-disable-auto-width": "Zerrenda zabalera automatikoa gaituta dago. Egin klik desgaitzeko.", + "auto-list-width": "Zerrenda zabalera automatikoa", "clipboard": "Kopiatu eta itsatsi edo arrastatu eta jaregin", "close": "Itxi", "close-board": "Itxi arbela", @@ -294,6 +300,7 @@ "color-white": "zuria", "color-yellow": "horia", "unset-color": "Zehaztu gabea", + "comments": "Iruzkinak", "comment": "Iruzkina", "comment-placeholder": "Idatzi iruzkin bat", "comment-only": "Iruzkinak besterik ez", @@ -376,6 +383,7 @@ "email-sent": "E-posta bidali da", "email-verifyEmail-subject": "Egiaztatu __siteName__ guneko zure e-posta helbidea.", "email-verifyEmail-text": "Kaixo __user__,\n\nZure e-posta kontua egiaztatzeko, egin klik beheko loturan.\n\n__url__\n\nEskerrik asko.", + "enable-vertical-scrollbars": "Gaitu korritze barra bertikalak", "enable-wip-limit": "WIP muga gaitu", "error-board-doesNotExist": "Arbel hau ez da existitzen", "error-board-notAdmin": "Arbel honetako kudeatzailea izan behar zara hori egin ahal izateko", @@ -443,7 +451,7 @@ "advanced-filter-description": "Iragazki aurreratuak operadoreak dituen kate bat idazteko aukera ematen du: == != <= >= && || ( ) Eragileen arteko bereizle gisa espazio bat erabiltzen da. Eremu pertsonalizatu guztiak iragazi ditzakezu haien izenak eta balioak idatziz. Adibidez: Eremua1 == Balioa1. Oharra: eremuek edo balioek zuriuneak badituzte, komatxo bakarrean bildu behar dituzu. Adibidez: 'Eremua 1' == 'Balioa 1'. Kontrol-karaktere bakarrak (' \\\\/) saltatzeko, \\\\ erabil dezakezu. Adibidez: Field1 == I\\\\'m. Gainera, hainbat baldintza konbina ditzakezu. Adibidez: F1 == V1 || F1 == V2. Normalean operadore guztiak ezkerretik eskuinera interpretatzen dira. Ordena alda dezakezu parentesi jarriz. Adibidez: F1 == V1 && ( F2 == V2 || F2 == V3 ). Testu-eremuak ere bilatu ditzakezu regex erabiliz: F1 == /Tes.*/i", "fullname": "Izen abizenak", "header-logo-title": "Itzuli zure arbelen orrira.", - "hide-system-messages": "Ezkutatu sistemako mezuak", + "show-activities": "Erakutsi jarduerak", "headerBarCreateBoardPopup-title": "Sortu arbela", "home": "Hasiera", "import": "Inportatu", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Zerrenda honetako atazen muga maximoa ezarri", "setWipLimitPopup-title": "WIP muga ezarri", + "shortcut-add-self": "Gehitu zeure burua uneko txartelera", "shortcut-assign-self": "Esleitu zure burua txartel honetara", "shortcut-autocomplete-emoji": "Automatikoki osatu emojia", "shortcut-autocomplete-members": "Automatikoki osatu kideak", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Erabilitako denbora txartelak ditu", "time": "Ordua", "title": "Izenburua", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Jarraitzen", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Ezin duzu txartel hau ezabatu estekatuta dituen txartelak ezabatu arte", "delete-linked-cards-before-this-list": "Ezin duzu zerrenda hau ezabatu honen txarteleei estekatutako txartelak ezabatu arte", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Ezkutatu amaitutako kontrol-zerrenda", "task": "Ataza", "create-task": "Sortu ataza", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Ez erakutsi arbeleko jarduerak arbel guztietan", + "now-activities-of-all-boards-are-hidden": "Orain arbel guztietako jarduera guztiak ezkutatuta daude", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "Kate txantiloia", @@ -1193,39 +1204,42 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", - "copyChecklist": "Copy Checklist", - "copyChecklistPopup-title": "Copy Checklist", - "card-show-lists": "Card Show Lists", - "subtaskActionsPopup-title": "Subtask Actions", - "attachmentActionsPopup-title": "Attachment Actions", - "attachment-move-storage-fs": "Move attachment to filesystem", - "attachment-move-storage-gridfs": "Move attachment to GridFS", - "attachment-move-storage-s3": "Move attachment to S3", - "attachment-move": "Move Attachment", - "move-all-attachments-to-fs": "Move all attachments to filesystem", - "move-all-attachments-to-gridfs": "Move all attachments to GridFS", - "move-all-attachments-to-s3": "Move all attachments to S3", - "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", - "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", - "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", + "newlineBecomesNewChecklistItem": "Testu-lerro bakoitza kontrol-zerrendako elementuetako bat bihurtzen da", + "newLineNewItem": "Testu-lerro bat = kontrol-zerrendako elementu bat", + "newlineBecomesNewChecklistItemOriginOrder": "Testu-lerro bakoitza kontrol-zerrendako elementuetako bat bihurtzen da, jatorrizko ordena", + "originOrder": "jatorrizko ordena", + "copyChecklist": "Kopiatu kontrol zerrrenda", + "copyChecklistPopup-title": "Kopiatu kontrol zerrenda", + "card-show-lists": "Aurkezpen zerrenden txartelak", + "subtaskActionsPopup-title": "Azpi-zereginen ekintzak", + "attachmentActionsPopup-title": "Eranskinen ekintzak", + "attachment-move-storage-fs": "Eraman eranskina fitxategi-sistemara", + "attachment-move-storage-gridfs": "Eraman eranskinak GridFSra", + "attachment-move-storage-s3": "Eraman eranskinak S3ra", + "attachment-move": "Mugitu eranskinak", + "move-all-attachments-to-fs": "Eraman eranskin guztiak fitxategi-sistemara", + "move-all-attachments-to-gridfs": "Eraman eranskin guztiak GridFSra", + "move-all-attachments-to-s3": "Eraman eranskin guztiak S3ra", + "move-all-attachments-of-board-to-fs": "Eraman taularen eranskin guztiak fitxategi-sistemara", + "move-all-attachments-of-board-to-gridfs": "Eraman arbelaren eranskin guztiak GridFSra", + "move-all-attachments-of-board-to-s3": "Eraman arbelaren eranskin guztiak S3ra", "path": "Path", - "version-name": "Version-Name", - "size": "Size", - "storage": "Storage", - "action": "Action", - "board-title": "Board Title", + "version-name": "Bertsioaren izena", + "size": "Tamaina", + "storage": "Biltegiratzea", + "action": "Ekintza", + "board-title": "Arbelaren titulua", "attachmentRenamePopup-title": "Aldatu izena", - "uploading": "Uploading", - "remaining_time": "Remaining time", - "speed": "Speed", - "progress": "Progress", + "uploading": "Igotzen", + "remaining_time": "Geratzen den denbora", + "speed": "Abiadura", + "progress": "Aurrerapena", "password-again": "Password (again)", - "if-you-already-have-an-account": "If you already have an account", - "register": "Register", - "forgot-password": "Forgot password", + "if-you-already-have-an-account": "Dagoeneko kontua baduzu", + "register": "Izena eman", + "forgot-password": "Ahaztu pasahitza", "minicardDetailsActionsPopup-title": "Txartelaren zehetasunak", - "Mongo_sessions_count": "Mongo sessions count", + "Mongo_sessions_count": "Mongo saioen kopurua", "change-visibility": "Aldatu ikusgaitasuna", "max-upload-filesize": "Kargatzeko fitxategien gehienezko tamaina bytetan:", "allowed-upload-filetypes": "Kargatzeko baimendutako fitxategi motak:", @@ -1242,9 +1256,17 @@ "translation": "Itzulpena", "text": "Testua", "translation-text": "itzulpenaren testua", - "show-at-minicard": "Erakutsi minitxartelean", - "show-checklist-at-minicard": "Erakutsi kontrol-zerrenda minitxartelean", "show-subtasks-field": "azpi-zereginen eremua bezala", + "show-week-of-year": "Erakutsi rrteko aste zenbakia (ISO 8601)", "convert-to-markdown": "Bihurtu markdown-era", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Gehitu taula JSON fitxategiak dituen .zip fitxategia eta eranskinak dituzten taularen izenen azpidirektorioak", + "collapse": "Tolestu", + "uncollapse": "Zabaldu", + "hideCheckedChecklistItems": "Ezkutatu egiaztatutako zerrendako elementuak", + "hideAllChecklistItems": "Ezkutatu kontrol-zerrendako elementu guztiak", + "support": "Laguntza", + "supportPopup-title": "Laguntza", + "accessibility-page-enabled": "Irisgarritasun orria gaituta", + "accessibility-title": "Irisgarritasun gaia", + "accessibility-content": "Irisgarritasun edukia" } diff --git a/imports/i18n/data/fa-IR.i18n.json b/imports/i18n/data/fa-IR.i18n.json index 26273f722..792856efd 100644 --- a/imports/i18n/data/fa-IR.i18n.json +++ b/imports/i18n/data/fa-IR.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s به آرشیو انتقال یافت", "activity-attached": "%s به %s پیوست شد", "activity-created": "%s ایجاد شد", + "activity-changedListTitle": "نام لیست به %s تغییر یافت", "activity-customfield-created": "فیلد سفارشی %s ایجاد شد", "activity-excluded": "%s از %s مستثنی گردید", "activity-imported": "%s از %s وارد %s شد", @@ -85,14 +86,16 @@ "add-card": "افزودن کارت", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", - "setSwimlaneHeightPopup-title": "Set Swimlane Height", - "set-swimlane-height": "Set Swimlane Height", - "set-swimlane-height-value": "Swimlane Height (pixels)", - "swimlane-height-error-message": "Swimlane height must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "setSwimlaneHeightPopup-title": "تنظیم ارتفاع مسیر", + "set-swimlane-height": "تنظیم ارتفاع مسیر", + "set-swimlane-height-value": "تنظیم ارتفاع مسیر ( پیکسل )", + "swimlane-height-error-message": "مقدار ارتقاع مسیر باید یک عدد مثبت باشد", "add-swimlane": "افزودن مسیر شنا", "add-subtask": "افزودن زیر وظیفه", "add-checklist": "افزودن چک‌لیست", @@ -100,10 +103,10 @@ "close-add-checklist-item": "Close add an item to checklist form", "close-edit-checklist-item": "Close edit an item to checklist form", "convertChecklistItemToCardPopup-title": "Convert to Card", - "add-cover": "Add cover image to minicard", + "add-cover": "اضافه کردن عکس کاور به مینی کارت", "add-label": "افزودن لیبل", "add-list": "افزودن لیست", - "add-after-list": "Add After List", + "add-after-list": "اضافه کردن به بعد از لیست", "add-members": "افزودن اعضا", "added": "اضافه گردید", "addMemberPopup-title": "اعضا", @@ -143,7 +146,7 @@ "attachmentDeletePopup-title": "آیا می خواهید ضمیمه را حذف کنید؟", "attachments": "ضمائم", "auto-watch": "اضافه شدن خودکار دیده‌بانی بردها زمانی که ایجاد می‌شوند", - "avatar-too-big": "The avatar is too large (__size__ max)", + "avatar-too-big": "عکس آواتار خیلی بزرگ است (__اندازه__ حداکثر)", "back": "بازگشت", "board-change-color": "تغییر رنگ", "board-change-background-image": "تغییر تصویر پس زمینه", @@ -263,6 +266,9 @@ "checklists": "چک‌لیست‌ها", "click-to-star": "با کلیک کردن ستاره بدهید", "click-to-unstar": "با کلیک کردن ستاره را کم کنید", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "ذخیره در حافظه ویا بردار-رهاکن", "close": "بستن", "close-board": "بستن برد", @@ -294,12 +300,13 @@ "color-white": "سفید", "color-yellow": "زرد", "unset-color": "بازنشانی", + "comments": "نظرها", "comment": "نظر", "comment-placeholder": "درج نظر", "comment-only": "فقط نظر", "comment-only-desc": "فقط می‌تواند روی کارت‌ها نظر دهد.", - "comment-delete": "Are you sure you want to delete the comment?", - "deleteCommentPopup-title": "Delete comment?", + "comment-delete": "آیا مطمئنید که می خواهید این نظر را پاک کنید؟", + "deleteCommentPopup-title": "نظر پاک شود؟", "no-comments": "هیچ کامنتی موجود نیست", "no-comments-desc": "نظرات و فعالیت ها را نمی توان دید.", "worker": "کارگر", @@ -376,6 +383,7 @@ "email-sent": "نامه الکترونیکی فرستاده شد", "email-verifyEmail-subject": "تایید آدرس الکترونیکی شما در __siteName__", "email-verifyEmail-text": "سلام __user__\nبه منظور تایید آدرس الکترونیکی حساب خود، آدرس زیر را دنبال نمایید، باتشکر:\n__url__.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "برد مورد نظر وجود ندارد", "error-board-notAdmin": "شما جهت انجام آن باید مدیر برد باشید", @@ -443,7 +451,7 @@ "advanced-filter-description": "فیلتر پیشرفته اجازه می دهد تا برای نوشتن رشته حاوی اپراتورهای زیر: ==! = <=> = && || () یک فضای به عنوان یک جداساز بین اپراتورها استفاده می شود. با تایپ کردن نام ها و مقادیر آنها می توانید برای تمام زمینه های سفارشی فیلتر کنید. به عنوان مثال: Field1 == Value1. نکته: اگر فیلدها یا مقادیر حاوی فضاها باشند، شما باید آنها را به یک نقل قول کپسول کنید. برای مثال: 'فیلد 1' == 'مقدار 1'. برای تک تک کاراکترهای کنترل (\\\\) که می توانید از آنها استفاده کنید، می توانید از \\\\ استفاده کنید. به عنوان مثال: Field1 == I\\\\'m. همچنین شما می توانید شرایط مختلف را ترکیب کنید. برای مثال: F1 == V1 || F1 == V2. به طور معمول همه اپراتورها از چپ به راست تفسیر می شوند. شما می توانید سفارش را با قرار دادن براکت تغییر دهید. برای مثال: F1 == V1 && (F2 == V2 || F2 == V3). همچنین می توانید فیلدهای متنی را با استفاده از regex جستجو کنید: F1 == /Tes.*/i", "fullname": "نام و نام خانوادگی", "header-logo-title": "بازگشت به صفحه بردها.", - "hide-system-messages": "عدم نمایش پیامهای سیستمی", + "show-activities": "نمایش فعالیت ها", "headerBarCreateBoardPopup-title": "ایجاد برد", "home": "خانه", "import": "وارد کردن", @@ -512,11 +520,11 @@ "memberMenuPopup-title": "تنظیمات اعضا", "members": "اعضا", "menu": "منو", - "move-selection": "حرکت مورد انتخابی", - "moveCardPopup-title": "حرکت کارت", + "move-selection": "انتقال مورد انتخابی", + "moveCardPopup-title": "انتقال کارت", "moveCardToBottom-title": "انتقال به پایین", "moveCardToTop-title": "انتقال به بالا", - "moveSelectionPopup-title": "حرکت مورد انتخابی", + "moveSelectionPopup-title": "انتقال مورد انتخابی", "multi-selection": "امکان چند انتخابی", "multi-selection-label": "تغییر لیبل انتخاب‌شده‌ها", "multi-selection-member": "تغییر عضو برای انتخاب‌شده‌ها", @@ -572,13 +580,14 @@ "select-board": "انتخاب برد", "set-wip-limit-value": "تعیین بیشینه تعداد وظایف در این فهرست", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "اضافه کردن خودتان به کارت", "shortcut-assign-self": "انتصاب خود به کارت فعلی", "shortcut-autocomplete-emoji": "تکمیل خودکار شکلکها", "shortcut-autocomplete-members": "تکمیل خودکار کاربرها", "shortcut-clear-filters": "حذف تمامی صافی‌ها ـ فیلترها ـ", "shortcut-close-dialog": "بستن محاوره", "shortcut-filter-my-cards": "کارت های من", - "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-filter-my-assigned-cards": "فیلتر کارت های اختصاص داده شده به من", "shortcut-show-shortcuts": "بالا آوردن میانبر این لیست", "shortcut-toggle-filterbar": "ضامن نوار جداکننده فیلتر", "shortcut-toggle-searchbar": "کلید نوار جستجوی جانبی", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "زمان", "title": "عنوان", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "پیگردی", @@ -740,9 +750,9 @@ "deposit-subtasks-list": "لیست برای ریزکار های افزوده شده", "show-parent-in-minicard": "نمایش خانواده در ریز کارت", "description-on-minicard": "Description on minicard", - "cover-attachment-on-minicard": "Cover image on minicard", - "badge-attachment-on-minicard": "Count of attachments on minicard", - "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "cover-attachment-on-minicard": "عکس کاور بر روی مینی کارت", + "badge-attachment-on-minicard": "شمارنده ضمائم بر روی مینی کارت", + "card-sorting-by-number-on-minicard": "مرتب سازی کارت با شماره بر روی مینی کارت", "prefix-with-full-path": "پیشوند با مسیر کامل", "prefix-with-parent": "پیشوند با خانواده", "subtext-with-full-path": "زیرنویس با مسیر کامل", @@ -886,9 +896,9 @@ "oidc-button-text": "Customize the OIDC button text", "default-authentication-method": "نوع اعتبارسنجی پیشفرض", "duplicate-board": "برد تکراری", - "org-number": "The number of organizations is: ", - "team-number": "The number of teams is: ", - "people-number": "The number of people is: ", + "org-number": "تعداد سازمان ها:", + "team-number": "تعداد تیم ها:", + "people-number": "تعداد افراد:", "swimlaneDeletePopup-title": "مسیر حذف شود؟", "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", "restore-all": "بازگردانی همه", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "پیش از این‌که کارت‌های لینک شده به این کارت را حذف نکنید، نمی‌توانید این کارت را حذف کنید.", "delete-linked-cards-before-this-list": "پیش از حذف کارت‌هایی که به کارت‌های این لیست لینک شده‌اند نمی‌توانید این لیست را حذف کنید.", "hide-checked-items": "مخفی کردن انتخاب‌شده‌ها", + "hide-finished-checklist": "پنهان کردن چک لیست های تمام شده", "task": "کار", "create-task": "ایجاد کار", "ok": "تأیید", @@ -992,7 +1003,7 @@ "label-not-found": "Label '%s' not found.", "label-color-not-found": "Label color %s not found.", "user-username-not-found": "Username '%s' not found.", - "comment-not-found": "Card with comment containing text '%s' not found.", + "comment-not-found": "کارتی که نظرتاش شمال باشد '%s' یافت نشد.", "org-name-not-found": "Organization '%s' not found.", "team-name-not-found": "Team '%s' not found.", "globalSearch-title": "جست و جو در همه برد ها", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "ساخته شده در تاریخ (با اولویت جدید تر)", "created-at-oldest-first": "ساخته شده در تاریخ (با اولویت قدیمی تر)", "links-heading": "پیوندها", - "hide-system-messages-of-all-users": "مخفی‌سازی پیام‌های تمام کاربران", - "now-system-messages-of-all-users-are-hidden": "اکنون پیام‌های همه کاربران مخفی است", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "انتقال مسیر", "moveSwimlanePopup-title": "انتقال مسیر", "custom-field-stringtemplate": "قالب رشته", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "هر خط از متن به یک آیتم از چک لیست تبدیل شود", + "newLineNewItem": "یک خط از متن = یک آیتم چک لیست", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "مرتب سازی اصلی", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1227,13 +1241,13 @@ "minicardDetailsActionsPopup-title": "Card Details", "Mongo_sessions_count": "Mongo sessions count", "change-visibility": "تغییر وضعیت نمایش", - "max-upload-filesize": "Max upload filesize in bytes:", - "allowed-upload-filetypes": "Allowed upload filetypes:", - "max-avatar-filesize": "Max avatar filesize in bytes:", + "max-upload-filesize": "حداکثر اندازه بارگزاری فایل به بایت:", + "allowed-upload-filetypes": "نوع فایل های مجاز برای بارگذاری:", + "max-avatar-filesize": "حداکثر اندازه بارگزاری آواتار به بایت:", "allowed-avatar-filetypes": "نوع فایل های مجاز", "invalid-file": "اگر نام فایل معتبر نباشد، آپلود یا تغییر نام لغو خواهد شد", "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", - "drag-board": "Drag board", + "drag-board": "کشیدن برد", "translation-number": "The number of custom translation strings is:", "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", "newTranslationPopup-title": "New custom translation string", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "متن", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "جمع کردن", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "پنهان کردن موارد انجام شده چک لیست", + "hideAllChecklistItems": "پنهان کردن همه موارد چک لیست", + "support": "پشتیبانی", + "supportPopup-title": "پشتیبانی", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/fa.i18n.json b/imports/i18n/data/fa.i18n.json index 26273f722..e7b0ce5bc 100644 --- a/imports/i18n/data/fa.i18n.json +++ b/imports/i18n/data/fa.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s به آرشیو انتقال یافت", "activity-attached": "%s به %s پیوست شد", "activity-created": "%s ایجاد شد", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "فیلد سفارشی %s ایجاد شد", "activity-excluded": "%s از %s مستثنی گردید", "activity-imported": "%s از %s وارد %s شد", @@ -85,10 +86,12 @@ "add-card": "افزودن کارت", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "چک‌لیست‌ها", "click-to-star": "با کلیک کردن ستاره بدهید", "click-to-unstar": "با کلیک کردن ستاره را کم کنید", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "ذخیره در حافظه ویا بردار-رهاکن", "close": "بستن", "close-board": "بستن برد", @@ -294,6 +300,7 @@ "color-white": "سفید", "color-yellow": "زرد", "unset-color": "بازنشانی", + "comments": "Comments", "comment": "نظر", "comment-placeholder": "درج نظر", "comment-only": "فقط نظر", @@ -376,6 +383,7 @@ "email-sent": "نامه الکترونیکی فرستاده شد", "email-verifyEmail-subject": "تایید آدرس الکترونیکی شما در __siteName__", "email-verifyEmail-text": "سلام __user__\nبه منظور تایید آدرس الکترونیکی حساب خود، آدرس زیر را دنبال نمایید، باتشکر:\n__url__.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "برد مورد نظر وجود ندارد", "error-board-notAdmin": "شما جهت انجام آن باید مدیر برد باشید", @@ -443,7 +451,7 @@ "advanced-filter-description": "فیلتر پیشرفته اجازه می دهد تا برای نوشتن رشته حاوی اپراتورهای زیر: ==! = <=> = && || () یک فضای به عنوان یک جداساز بین اپراتورها استفاده می شود. با تایپ کردن نام ها و مقادیر آنها می توانید برای تمام زمینه های سفارشی فیلتر کنید. به عنوان مثال: Field1 == Value1. نکته: اگر فیلدها یا مقادیر حاوی فضاها باشند، شما باید آنها را به یک نقل قول کپسول کنید. برای مثال: 'فیلد 1' == 'مقدار 1'. برای تک تک کاراکترهای کنترل (\\\\) که می توانید از آنها استفاده کنید، می توانید از \\\\ استفاده کنید. به عنوان مثال: Field1 == I\\\\'m. همچنین شما می توانید شرایط مختلف را ترکیب کنید. برای مثال: F1 == V1 || F1 == V2. به طور معمول همه اپراتورها از چپ به راست تفسیر می شوند. شما می توانید سفارش را با قرار دادن براکت تغییر دهید. برای مثال: F1 == V1 && (F2 == V2 || F2 == V3). همچنین می توانید فیلدهای متنی را با استفاده از regex جستجو کنید: F1 == /Tes.*/i", "fullname": "نام و نام خانوادگی", "header-logo-title": "بازگشت به صفحه بردها.", - "hide-system-messages": "عدم نمایش پیامهای سیستمی", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "ایجاد برد", "home": "خانه", "import": "وارد کردن", @@ -572,6 +580,7 @@ "select-board": "انتخاب برد", "set-wip-limit-value": "تعیین بیشینه تعداد وظایف در این فهرست", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "انتصاب خود به کارت فعلی", "shortcut-autocomplete-emoji": "تکمیل خودکار شکلکها", "shortcut-autocomplete-members": "تکمیل خودکار کاربرها", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "زمان", "title": "عنوان", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "پیگردی", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "پیش از این‌که کارت‌های لینک شده به این کارت را حذف نکنید، نمی‌توانید این کارت را حذف کنید.", "delete-linked-cards-before-this-list": "پیش از حذف کارت‌هایی که به کارت‌های این لیست لینک شده‌اند نمی‌توانید این لیست را حذف کنید.", "hide-checked-items": "مخفی کردن انتخاب‌شده‌ها", + "hide-finished-checklist": "Hide finished checklist", "task": "کار", "create-task": "ایجاد کار", "ok": "تأیید", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "ساخته شده در تاریخ (با اولویت جدید تر)", "created-at-oldest-first": "ساخته شده در تاریخ (با اولویت قدیمی تر)", "links-heading": "پیوندها", - "hide-system-messages-of-all-users": "مخفی‌سازی پیام‌های تمام کاربران", - "now-system-messages-of-all-users-are-hidden": "اکنون پیام‌های همه کاربران مخفی است", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "انتقال مسیر", "moveSwimlanePopup-title": "انتقال مسیر", "custom-field-stringtemplate": "قالب رشته", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "متن", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "جمع کردن", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/fi.i18n.json b/imports/i18n/data/fi.i18n.json index df2d1ac2d..4e11a001f 100644 --- a/imports/i18n/data/fi.i18n.json +++ b/imports/i18n/data/fi.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s siirretty Arkistoon", "activity-attached": "liitetty %s kohteeseen %s", "activity-created": "luotu %s", + "activity-changedListTitle": "listan nimeksi muutettu %s", "activity-customfield-created": "luotu mukautettu kenttä %s", "activity-excluded": "poistettu %s kohteesta %s", "activity-imported": "tuotu %s kohteeseen %s lähteestä %s", @@ -85,10 +86,12 @@ "add-card": "Lisää kortti", "add-card-to-top-of-list": "Lisää kortti listan alkuun", "add-card-to-bottom-of-list": "Lisää kortti listan loppuun", - "setListWidthPopup-title": "Aseta listan leveys", - "set-list-width": "Aseta listan leveys", - "set-list-width-value": "Listan leveys (pikseliä)", - "list-width-error-message": "Listan leveyden täytyy olla positiivinen kokonaisluku", + "setListWidthPopup-title": "Aseta leveydet", + "set-list-width": "Aseta leveydet", + "set-list-width-value": "Aseta minimi ja maksimi leveydet (pikseliä)", + "list-width-error-message": "Listan leveydet täytyy olla kokonaislukuja, suurempia kuin 100", + "keyboard-shortcuts-enabled": "Pikanäppäimet käytössä. Klikkaa poistaaksesi käytöstä.", + "keyboard-shortcuts-disabled": "Pikanäppäimet poistettu käytöstä. Klikkaa ottaaksesi käyttöön.", "setSwimlaneHeightPopup-title": "Aseta uimaradan korkeus", "set-swimlane-height": "Aseta uimaradan korkeus", "set-swimlane-height-value": "Uimaradan korkeus (pikseliä)", @@ -242,8 +245,8 @@ "cardMembersPopup-title": "Jäsenet", "cardMorePopup-title": "Lisää", "cardTemplatePopup-title": "Luo malli", - "cards": "Kortit", - "cards-count": "Kortit", + "cards": "Korttia", + "cards-count": "Korttia", "cards-count-one": "Kortti", "casSignIn": "CAS-kirjautuminen", "cardType-card": "Kortti", @@ -263,6 +266,9 @@ "checklists": "Tarkistuslistat", "click-to-star": "Klikkaa merkataksesi tämä taulu tähdellä.", "click-to-unstar": "Klikkaa poistaaksesi tähtimerkintä taululta.", + "click-to-enable-auto-width": "Automaattinen listan leveys ei ole käytössä. Klikkaa ottaaksesi käyttöön.", + "click-to-disable-auto-width": "Automaattinen listan leveys käytössä. Klikkaa poistaaksesi käytöstä.", + "auto-list-width": "Automaattinen listan leveys", "clipboard": "Leikepöytä tai raahaa ja pudota", "close": "Sulje", "close-board": "Sulje taulu", @@ -294,6 +300,7 @@ "color-white": "valkoinen", "color-yellow": "keltainen", "unset-color": "Poista asetus", + "comments": "Kommentit", "comment": "Kommentti", "comment-placeholder": "Kirjoita kommentti", "comment-only": "Vain kommentointi", @@ -376,6 +383,7 @@ "email-sent": "Sähköposti lähetetty", "email-verifyEmail-subject": "Varmista sähköpostiosoitteesi osoitteessa __url__", "email-verifyEmail-text": "Hei __user__,\n\nvahvistaaksesi sähköpostiosoitteesi, klikkaa alla olevaa linkkiä.\n\n__url__\n\nKiitos.", + "enable-vertical-scrollbars": "Ota pystysuuntaiset vierityspalkit käyttöön", "enable-wip-limit": "Ota käyttöön WIP-raja", "error-board-doesNotExist": "Tätä taulua ei ole olemassa", "error-board-notAdmin": "Tehdäksesi tämän sinun täytyy olla tämän taulun ylläpitäjä", @@ -443,7 +451,7 @@ "advanced-filter-description": "Edistynyt suodatin mahdollistaa merkkijonon, joka sisältää seuraavat operaattorit: == != <= >= && || ( ) Operaattorien välissä käytetään välilyöntiä. Voit suodattaa kaikki mukautetut kentät kirjoittamalla niiden nimet ja arvot. Esimerkiksi: Field1 == Value1. Huom: Jos kentillä tai arvoilla on välilyöntejä, sinun on sijoitettava ne yksittäisiin lainausmerkkeihin. Esimerkki: 'Kenttä 1' == 'Arvo 1'. Voit hypätä yksittäisen kontrollimerkkien (' \\\\/) yli käyttämällä \\\\. Esimerkki: Field1 = I\\\\'m. Voit myös yhdistää useita ehtoja. Esimerkiksi: F1 == V1 || F1 == V2. Yleensä kaikki operaattorit tulkitaan vasemmalta oikealle. Voit muuttaa järjestystä asettamalla sulkuja. Esimerkiksi: F1 == V1 && (F2 == V2 || F2 == V3). Voit myös etsiä tekstikentistä regexillä: F1 == /Tes.*/i", "fullname": "Koko nimi", "header-logo-title": "Palaa taulut sivullesi.", - "hide-system-messages": "Piilota järjestelmäviestit", + "show-activities": "Näytä toimet", "headerBarCreateBoardPopup-title": "Luo taulu", "home": "Koti", "import": "Tuo", @@ -572,6 +580,7 @@ "select-board": "Valitse taulu", "set-wip-limit-value": "Aseta tämän listan tehtävien enimmäismäärä", "setWipLimitPopup-title": "Aseta WIP-raja", + "shortcut-add-self": "Lisää itsesi nykyiselle kortille", "shortcut-assign-self": "Valitse itsesi nykyiselle kortille", "shortcut-autocomplete-emoji": "Automaattinen täydennys emojille", "shortcut-autocomplete-members": "Automaattinen täydennys jäsenille", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Sisältää käytetty aika -kortteja", "time": "Aika", "title": "Otsikko", + "toggle-assignees": "Muokkaa käsittelijöiden 1-9 näkyvyyttä kortilla (Taululle lisäys järjestyksessä).", "toggle-labels": "Muokkaa nimilappujen 1-9 näkyvyyttä kortilla. Monivalinta lisää nimilaput 1-9", "remove-labels-multiselect": "Monivalinta poistaa nimilaput 1-9", "tracking": "Ilmoitukset", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Et voi poistaa tätä korttia ennenkuin ensin poistat linkitetyn kortin jolla on", "delete-linked-cards-before-this-list": "Et voi poistaa tätä listaa ennenkuin poistat linkitetyt kortit jotka osoittavat kortteihin tässä listassa", "hide-checked-items": "Piilota ruksatut kohdat", + "hide-finished-checklist": "Piilota valmistuneet tarkistuslistat", "task": "Tehtävä", "create-task": "Luo tehtävä", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Luotu (Uusin ensin)", "created-at-oldest-first": "Luotu (Vanhin ensin)", "links-heading": "Linkit", - "hide-system-messages-of-all-users": "Piilota kaikkien käyttäjien järjestelmäviestit", - "now-system-messages-of-all-users-are-hidden": "Nyt kaikkien käyttäjien järjestelmäviestit on piilotettu", + "hide-activities-of-all-boards": "Älä näytä taulun toimia kaikilla tauluilla", + "now-activities-of-all-boards-are-hidden": "Nyt kaikki toimet kaikilla tauluilla on piilotettu", "move-swimlane": "Siirrä uimarata", "moveSwimlanePopup-title": "Siirrä uimarata", "custom-field-stringtemplate": "Merkkijono malli", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Tarkistuslista toimet", "moveChecklist": "Siirrä tarkistuslista", "moveChecklistPopup-title": "Siirrä tarkistuslista", - "newlineBecomesNewChecklistItem": "Uusi rivi muuttuu uudeksi tarkistuslistakohdaksi", + "newlineBecomesNewChecklistItem": "Joka rivistä tekstiä tulee yksi tarkistuslistan kohdista", + "newLineNewItem": "Yksi rivi tekstiä = yksi tarkistuslistan kohta", + "newlineBecomesNewChecklistItemOriginOrder": "Joka rivistä tulee yksi tarkistuslistan kohdista, alkuperäinen järjestys", + "originOrder": "alkuperäinen järjestys", "copyChecklist": "Kopioi tarkistuslista", "copyChecklistPopup-title": "Kopioi tarkistuslista", "card-show-lists": "Näytä listat kortilla", @@ -1242,9 +1256,17 @@ "translation": "Käännös", "text": "Teksti", "translation-text": "Käännetty teksti", - "show-at-minicard": "Näytä minikortilla", - "show-checklist-at-minicard": "Näytä tarkistuslista minikortilla", "show-subtasks-field": "Näytä alitehtävät kenttä", + "show-week-of-year": "Näytä vuoden viikko numero (ISO 8601)", "convert-to-markdown": "Muuta markdowniksi", - "import-board-zip": "Lisää .zip tiedosto jossa on taulu JSON tiedostot, ja taulu nimi alihakemistot liitteineen" + "import-board-zip": "Lisää .zip tiedosto jossa on taulu JSON tiedostot, ja taulu nimi alihakemistot liitteineen", + "collapse": "Pienennä", + "uncollapse": "Suurenna", + "hideCheckedChecklistItems": "Piilota ruksatut tarkistuslistan kohdat", + "hideAllChecklistItems": "Piilota kaikki tarkistuslistan kohdat", + "support": "Tuki", + "supportPopup-title": "Tuki", + "accessibility-page-enabled": "Saavutettavuus sivu käytössä", + "accessibility-title": "Saavutettavuus otsikko", + "accessibility-content": "Saavutettavuus sisältö" } diff --git a/imports/i18n/data/fr-CH.i18n.json b/imports/i18n/data/fr-CH.i18n.json index 60aa50c17..d7595cf07 100644 --- a/imports/i18n/data/fr-CH.i18n.json +++ b/imports/i18n/data/fr-CH.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Le filtre avancé permet d'écrire une chaîne contenant les opérateur suivants : == != <= >= && || ( ). Les opérateurs doivent être séparés par des espaces. Vous pouvez filtrer tous les champs personnalisés en saisissant leur nom et leur valeur. Par exemple : champ1 == valeur1. Remarque : si des champs ou valeurs contiennent des espaces, vous devez les mettre entre apostrophes. Par exemple : 'champ 1' = 'valeur 1'. Pour échapper un caractère de contrôle (' \\\\/), vous pouvez utiliser \\\\. Par exemple : champ1 = I\\\\'m. Il est également possible de combiner plusieurs conditions. Par exemple : f1 == v1 || f2 == v2. Normalement, tous les opérateurs sont interprétés de gauche à droite. Vous pouvez changer l'ordre à l'aide de parenthèses. Par exemple : f1 == v1 and (f2 == v2 || f2 == v3). Vous pouvez également chercher parmi les champs texte en utilisant des expressions régulières : f1 == /Test.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/fr-FR.i18n.json b/imports/i18n/data/fr-FR.i18n.json index bf4f946e6..3737dfa6a 100644 --- a/imports/i18n/data/fr-FR.i18n.json +++ b/imports/i18n/data/fr-FR.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s a été archivé", "activity-attached": "a attaché %s à %s", "activity-created": "a créé %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "a créé le champ personnalisé %s", "activity-excluded": "a exclu %s de %s", "activity-imported": "a importé %s vers %s depuis %s", @@ -85,10 +86,12 @@ "add-card": "Ajouter une carte", "add-card-to-top-of-list": "Ajouter la carte en haut de la liste", "add-card-to-bottom-of-list": "Ajouter la carte en bas de la liste", - "setListWidthPopup-title": "Définir la largeur de la liste", - "set-list-width": "Définir la largeur de la liste", - "set-list-width-value": "Largeur de la liste (pixels)", - "list-width-error-message": "La largeur de la liste doit être un entier positif", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Définir la hauteur du couloir", "set-swimlane-height": "Définir la hauteur du couloir", "set-swimlane-height-value": "Hauteur du couloir (pixels)", @@ -175,7 +178,7 @@ "board-view": "Vue du tableau", "board-view-cal": "Calendrier", "board-view-swimlanes": "Couloirs", - "board-view-collapse": "Diminuer", + "board-view-collapse": "Réduire", "board-view-gantt": "Gantt", "board-view-lists": "Listes", "bucket-example": "Comme « todo list » par exemple", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Cliquez pour ajouter ce tableau aux favoris.", "click-to-unstar": "Cliquez pour retirer ce tableau des favoris.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Presse-papier ou glisser-déposer", "close": "Fermer", "close-board": "Fermer le tableau", @@ -294,6 +300,7 @@ "color-white": "blanc", "color-yellow": "jaune", "unset-color": "Enlever", + "comments": "Comments", "comment": "Commenter", "comment-placeholder": "Écrire un commentaire", "comment-only": "Commentaire uniquement", @@ -376,6 +383,7 @@ "email-sent": "Courriel envoyé", "email-verifyEmail-subject": "Vérifier votre adresse de courriel sur __siteName__", "email-verifyEmail-text": "Bonjour __user__,\n\nPour vérifier votre compte courriel, il suffit de cliquer sur le lien ci-dessous.\n\n__url__\n\nMerci.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Activer la limite WIP", "error-board-doesNotExist": "Ce tableau n'existe pas", "error-board-notAdmin": "Vous devez être administrateur de ce tableau pour faire cela", @@ -443,7 +451,7 @@ "advanced-filter-description": "Le filtre avancé permet d'écrire une chaîne contenant les opérateur suivants : == != <= >= && || ( ). Les opérateurs doivent être séparés par des espaces. Vous pouvez filtrer tous les champs personnalisés en saisissant leur nom et leur valeur. Par exemple : champ1 == valeur1. Remarque : si des champs ou valeurs contiennent des espaces, vous devez les mettre entre apostrophes. Par exemple : 'champ 1' == 'valeur 1'. Pour échapper un caractère de contrôle (' \\/), vous pouvez utiliser \\. Par exemple : champ1 == I\\'m. Il est également possible de combiner plusieurs conditions. Par exemple : f1 == v1 || f2 == v2. Normalement, tous les opérateurs sont interprétés de gauche à droite. Vous pouvez changer l'ordre à l'aide de parenthèses. Par exemple : F1 == V1 && ( F2 == V2 || F2 == V3 ). Vous pouvez également chercher parmi les champs texte en utilisant des expressions régulières : f1 == /Test.*/i", "fullname": "Nom complet", "header-logo-title": "Retourner à la page des tableaux", - "hide-system-messages": "Masquer les messages système", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Créer un tableau", "home": "Accueil", "import": "Importer", @@ -572,6 +580,7 @@ "select-board": "Sélectionner le tableau", "set-wip-limit-value": "Définit une limite maximale au nombre de cartes de cette liste", "setWipLimitPopup-title": "Définir la limite WIP", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Affecter cette carte à vous-même", "shortcut-autocomplete-emoji": "Auto-complétion des emoji", "shortcut-autocomplete-members": "Auto-complétion des participants", @@ -601,6 +610,7 @@ "has-spenttime-cards": "A des cartes avec du temps passé", "time": "Temps", "title": "Titre", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Bascule les étiquettes 1-9 pour les cartes. La sélection multiple ajoute les étiquettes 1-9", "remove-labels-multiselect": "La multi-sélection supprime les étiquettes 1-9", "tracking": "Suivi", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Vous ne pouvez pas supprimer cette carte avant d'avoir d'abord supprimé la carte liée qui a", "delete-linked-cards-before-this-list": "Vous ne pouvez pas supprimer cette liste avant d'avoir d'abord supprimé les cartes liées qui pointent vers des cartes de cette liste", "hide-checked-items": "Cacher les éléments cochés", + "hide-finished-checklist": "Hide finished checklist", "task": "Tâche", "create-task": "Créer une tâche", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Date de création (Plus récentes en premier)", "created-at-oldest-first": "Date de création (Plus anciennes en premier)", "links-heading": "Liens", - "hide-system-messages-of-all-users": "Masquer les messages système de tous les utilisateurs", - "now-system-messages-of-all-users-are-hidden": "Les messages système de tous les utilisateurs seront dorénavant masqués", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Déplacer le couloir", "moveSwimlanePopup-title": "Déplacer le couloir", "custom-field-stringtemplate": "Modèle de chaîne", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Actions sur la checklist", "moveChecklist": "Déplacer la checklist", "moveChecklistPopup-title": "Déplacer la checklist", - "newlineBecomesNewChecklistItem": "Chaque retour à la ligne produit un nouvel élément de checklist", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copier la checklist", "copyChecklistPopup-title": "Copier la checklist", "card-show-lists": "Afficher les listes sur la carte", @@ -1242,9 +1256,17 @@ "translation": "Traduction", "text": "Texte", "translation-text": "Texte traduit", - "show-at-minicard": "Afficher sur la mini-carte", - "show-checklist-at-minicard": "Afficher la check-list sur la mini-carte", "show-subtasks-field": "Afficher le champ des sous-tâches", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convertir en markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Ajouter un fichier .zip qui contient les fichiers JSON du tableau et les noms de sous-répertoires avec les pièces jointes", + "collapse": "Réduire", + "uncollapse": "Développer", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index e15bfaf9d..9cf32fbbf 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s a été archivé", "activity-attached": "a attaché %s à %s", "activity-created": "a créé %s", + "activity-changedListTitle": "a renommé la liste en 1%s", "activity-customfield-created": "a créé le champ personnalisé %s", "activity-excluded": "a exclu %s de %s", "activity-imported": "a importé %s vers %s depuis %s", @@ -85,10 +86,12 @@ "add-card": "Ajouter une carte", "add-card-to-top-of-list": "Ajouter la carte en haut de la liste", "add-card-to-bottom-of-list": "Ajouter la carte en bas de la liste", - "setListWidthPopup-title": "Définir la largeur de la liste", - "set-list-width": "Définir la largeur de la liste", - "set-list-width-value": "Largeur de la liste (pixels)", - "list-width-error-message": "La largeur de la liste doit être un entier positif", + "setListWidthPopup-title": "Définir les largeurs", + "set-list-width": "Définir les largeurs", + "set-list-width-value": "Définir les largeurs mini. & maxi. (pixels)", + "list-width-error-message": "Les largeurs de liste doivent être des entiers supérieurs à 100", + "keyboard-shortcuts-enabled": "Raccourcis clavier activés. Cliquer pour désactiver.", + "keyboard-shortcuts-disabled": "Raccourcis clavier désactivés. Cliquer pour activer.", "setSwimlaneHeightPopup-title": "Définir la hauteur du couloir", "set-swimlane-height": "Définir la hauteur du couloir", "set-swimlane-height-value": "Hauteur du couloir (pixels)", @@ -104,7 +107,7 @@ "add-label": "Ajouter une étiquette", "add-list": "Ajouter une liste", "add-after-list": "Ajouter après la liste", - "add-members": "Assigner des participants", + "add-members": "Ajouter des participants", "added": "Ajouté le", "addMemberPopup-title": "Participants", "memberPopup-title": "Préférence du participant", @@ -136,7 +139,7 @@ "templates": "Modèles", "template-container": "Conteneur de modèles", "add-template-container": "Ajouter un conteneur de modèles", - "assign-member": "Affecter un participant", + "assign-member": "Attribuer à un participant", "attached": "joint", "attachment": "Pièce jointe", "attachment-delete-pop": "La suppression d'une pièce jointe est définitive. Cela est irréversible.", @@ -175,7 +178,7 @@ "board-view": "Vue du tableau", "board-view-cal": "Calendrier", "board-view-swimlanes": "Couloirs", - "board-view-collapse": "Diminuer", + "board-view-collapse": "Réduire", "board-view-gantt": "Gantt", "board-view-lists": "Listes", "bucket-example": "Comme « todo list » par exemple", @@ -196,7 +199,7 @@ "card-edit-labels": "Gérer les étiquettes", "card-edit-members": "Gérer les participants", "card-labels-title": "Modifier les étiquettes de la carte.", - "card-members-title": "Assigner ou supprimer des participants à la carte.", + "card-members-title": "Ajouter ou supprimer des participants du tableau à la carte.", "card-start": "Début", "card-start-on": "Commence le", "cardAttachmentsPopup-title": "Ajouter depuis", @@ -263,6 +266,9 @@ "checklists": "Check-lists", "click-to-star": "Cliquez pour ajouter ce tableau aux favoris.", "click-to-unstar": "Cliquez pour retirer ce tableau des favoris.", + "click-to-enable-auto-width": "Largeur de liste auto. désactivée. Cliquer pour activer.", + "click-to-disable-auto-width": "Largeur de liste auto. activée. Cliquer pour désactiver.", + "auto-list-width": "Largeur de liste auto.", "clipboard": "Presse-papier ou glisser-déposer", "close": "Fermer", "close-board": "Fermer le tableau", @@ -294,6 +300,7 @@ "color-white": "blanc", "color-yellow": "jaune", "unset-color": "Enlever", + "comments": "Commentaires", "comment": "Commenter", "comment-placeholder": "Écrire un commentaire", "comment-only": "Commentaire uniquement", @@ -303,7 +310,7 @@ "no-comments": "Aucun commentaire", "no-comments-desc": "Ne peut pas voir les commentaires et les activités.", "worker": "Travailleur", - "worker-desc": "Peut seulement déplacer des cartes, s'assigner à une carte et la commenter.", + "worker-desc": "Peut seulement déplacer des cartes, s'attribuer une carte et la commenter.", "computer": "Ordinateur", "confirm-subtask-delete-popup": "Êtes-vous sûr de vouloir supprimer la sous-tâche ?", "confirm-checklist-delete-popup": "Êtes-vous sûr de vouloir supprimer la check-list ?", @@ -376,6 +383,7 @@ "email-sent": "Courriel envoyé", "email-verifyEmail-subject": "Vérifier votre adresse de courriel sur __siteName__", "email-verifyEmail-text": "Bonjour __user__,\n\nPour vérifier votre compte courriel, il suffit de cliquer sur le lien ci-dessous.\n\n__url__\n\nMerci.", + "enable-vertical-scrollbars": "Activer les barres de défilement verticales", "enable-wip-limit": "Activer la limite WIP", "error-board-doesNotExist": "Ce tableau n'existe pas", "error-board-notAdmin": "Vous devez être administrateur de ce tableau pour faire cela", @@ -429,8 +437,8 @@ "filter-no-label": "Aucune étiquette", "filter-member-label": "Filtrer par participant", "filter-no-member": "Aucun participant", - "filter-assignee-label": "Filtrer par personne assignée", - "filter-no-assignee": "Pas de personne assignée", + "filter-assignee-label": "Filtrer par intervenant", + "filter-no-assignee": "Pas d'intervenant", "filter-custom-fields-label": "Filtrer par champs personnalisés", "filter-no-custom-fields": "Pas de champs personnalisés", "filter-show-archive": "Montrer les listes archivées", @@ -443,7 +451,7 @@ "advanced-filter-description": "Le filtre avancé permet d'écrire une chaîne contenant les opérateur suivants : == != <= >= && || ( ). Les opérateurs doivent être séparés par des espaces. Vous pouvez filtrer tous les champs personnalisés en saisissant leur nom et leur valeur. Par exemple : champ1 == valeur1. Remarque : si des champs ou valeurs contiennent des espaces, vous devez les mettre entre apostrophes. Par exemple : 'champ 1' == 'valeur 1'. Pour échapper un caractère de contrôle (' \\/), vous pouvez utiliser \\. Par exemple : champ1 == I\\'m. Il est également possible de combiner plusieurs conditions. Par exemple : f1 == v1 || f2 == v2. Normalement, tous les opérateurs sont interprétés de gauche à droite. Vous pouvez changer l'ordre à l'aide de parenthèses. Par exemple : F1 == V1 && ( F2 == V2 || F2 == V3 ). Vous pouvez également chercher parmi les champs texte en utilisant des expressions régulières : f1 == /Test.*/i", "fullname": "Nom complet", "header-logo-title": "Retourner à la page des tableaux", - "hide-system-messages": "Masquer les messages système", + "show-activities": "Afficher les activités", "headerBarCreateBoardPopup-title": "Créer un tableau", "home": "Accueil", "import": "Importer", @@ -463,9 +471,9 @@ "import-board-instruction-about-errors": "Si une erreur survient en important le tableau, il se peut que l'import ait fonctionné, et que le tableau se trouve sur la page \"Tous les tableaux\".", "import-json-placeholder": "Collez ici les données JSON valides", "import-csv-placeholder": "Déposez ici vos données valides CSV/TSV", - "import-map-members": "Assigner des participants", - "import-members-map": "Le tableau que vous venez d'importer contient des participants. Veuillez assigner les participants que vous souhaitez importer à vos utilisateurs.", - "import-members-map-note": "Note: les participants ne concordant pas seront assignés à l'utilisateur courant.", + "import-map-members": "Faire correspondre les participants", + "import-members-map": "Le tableau que vous venez d'importer contient des participants. Veuillez faire correspondre les participants que vous souhaitez importer à vos utilisateurs.", + "import-members-map-note": "Note: les participants ne concordant pas seront attribués à l'utilisateur courant.", "import-show-user-mapping": "Contrôler l'assignation des participants", "import-user-select": "Sélectionnez l'utilisateur existant que vous voulez associer à ce participant", "importMapMembersAddPopup-title": "Sélectionner le participant", @@ -572,13 +580,14 @@ "select-board": "Sélectionner le tableau", "set-wip-limit-value": "Définit une limite maximale au nombre de cartes de cette liste", "setWipLimitPopup-title": "Définir la limite WIP", - "shortcut-assign-self": "Affecter cette carte à vous-même", + "shortcut-add-self": "S'ajouter à la carte courante", + "shortcut-assign-self": "S'attribuer cette carte", "shortcut-autocomplete-emoji": "Auto-complétion des emoji", "shortcut-autocomplete-members": "Auto-complétion des participants", "shortcut-clear-filters": "Retirer tous les filtres", "shortcut-close-dialog": "Fermer la boîte de dialogue", "shortcut-filter-my-cards": "Filtrer mes cartes", - "shortcut-filter-my-assigned-cards": "Filtrer mes cartes assignées", + "shortcut-filter-my-assigned-cards": "Filtrer mes cartes attribuées", "shortcut-show-shortcuts": "Afficher cette liste de raccourcis", "shortcut-toggle-filterbar": "Afficher/Masquer la barre latérale des filtres", "shortcut-toggle-searchbar": "Afficher/Masquer la barre latérale de recherche", @@ -601,7 +610,8 @@ "has-spenttime-cards": "A des cartes avec du temps passé", "time": "Temps", "title": "Titre", - "toggle-labels": "Bascule les étiquettes 1-9 pour les cartes. La sélection multiple ajoute les étiquettes 1-9", + "toggle-assignees": "Changer les intervenants 1-9 sur une carte (par ordre d'ajout au tableau)", + "toggle-labels": "Afficher/Masquer les étiquettes 1-9 sur les cartes. La sélection multiple ajoute les étiquettes 1-9", "remove-labels-multiselect": "La multi-sélection supprime les étiquettes 1-9", "tracking": "Suivi", "tracking-info": "Vous serez notifié de toute modification concernant les cartes pour lesquelles vous êtes impliqué en tant que créateur ou participant.", @@ -719,7 +729,7 @@ "setCardActionsColorPopup-title": "Choisissez une couleur", "setSwimlaneColorPopup-title": "Choisissez une couleur", "setListColorPopup-title": "Choisissez une couleur", - "assigned-by": "Assigné par", + "assigned-by": "Attribué par", "requested-by": "Demandé par", "card-sorting-by-number": "Tri numérique des cartes", "board-delete-notice": "La suppression est définitive. Vous perdrez toutes les listes, cartes et actions associées à ce tableau.", @@ -918,8 +928,8 @@ "accounts-allowUserDelete": "Autoriser les utilisateurs à supprimer leur compte", "hide-minicard-label-text": "Cacher l'étiquette de la mini-carte", "show-desktop-drag-handles": "Voir les poignées de déplacement du bureau", - "assignee": "Personne assignée", - "cardAssigneesPopup-title": "Personne assignée", + "assignee": "Intervenant", + "cardAssigneesPopup-title": "Intervenant", "addmore-detail": "Ajouter une description plus détaillée", "show-on-card": "Afficher sur la carte", "show-on-minicard": "Afficher sur la mini-carte", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Vous ne pouvez pas supprimer cette carte avant d'avoir d'abord supprimé la carte liée qui a", "delete-linked-cards-before-this-list": "Vous ne pouvez pas supprimer cette liste avant d'avoir d'abord supprimé les cartes liées qui pointent vers des cartes de cette liste", "hide-checked-items": "Cacher les éléments cochés", + "hide-finished-checklist": "Cacher la check-list terminée", "task": "Tâche", "create-task": "Créer une tâche", "ok": "OK", @@ -1012,7 +1023,7 @@ "operator-user-abbrev": "@", "operator-member": "participant", "operator-member-abbrev": "m", - "operator-assignee": "personne assignée", + "operator-assignee": "intervenant", "operator-assignee-abbrev": "a", "operator-creator": "créateur", "operator-status": "statut", @@ -1043,7 +1054,7 @@ "predicate-checklist": "check-list", "predicate-start": "début", "predicate-end": "fin", - "predicate-assignee": "personne assignée", + "predicate-assignee": "intervenant", "predicate-member": "participant", "predicate-public": "public", "predicate-private": "privé", @@ -1068,13 +1079,13 @@ "globalSearch-instructions-operator-comment": "`__operator_comment__:<texte>` - cartes dont le commentaire contient *<texte>*.", "globalSearch-instructions-operator-label": "`__operator_label__:<couleur>` `__operator_label__:<nom>` - cartes qui ont une étiquette correspondant à *<couleur>* ou à *<nom>*.", "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<nom|couleur>` - raccourci pour `__operator_label__:<couleur>` ou `__operator_label__:<nom>`", - "globalSearch-instructions-operator-user": "`__operator_user__:<nom>` - cartes où l'utilisateur <nom> est *assigné* ou est un *participant*.", + "globalSearch-instructions-operator-user": "`__operator_user__:<nom>` - cartes où l'utilisateur <nom> est *participant* ou *intervenant*.", "globalSearch-instructions-operator-at": "`__operator_user_abbrev__nom` - raccourci pour `__operator_user__:<nom>`", "globalSearch-instructions-operator-member": "`__operator_member__:<nom>` - cartes pour lesquelles l'utilisateur *<nom>* est *participant*", - "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<nom>` - cartes *assignées* à l'utilisateur *<nom>*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<nom>` - cartes *attribuées* à l'utilisateur *<nom>*", "globalSearch-instructions-operator-creator": "`__operator_creator__:<utilisateur>` - cartes dont le créateur est *<utilisateur>*", - "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cartes appartenant à un tableau assigné à l'organisation *<name>*", - "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cartes appartenant à un tableau assigné à l'équipe *<name>*", + "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cartes appartenant à un tableau attribué à l'organisation *<name>*", + "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cartes appartenant à un tableau attribué à l'équipe *<name>*", "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cartes qui arrive à échéance dans moins de *<n>* jours à partir d'aujourd'hui.\n`__operator_due__:__predicate_overdue__` liste toutes les cartes ayant passé la date d'échéance.", "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cartes qui ont été créées il y a *<n>* jours ou moins", "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cartes qui ont été modifiées il y a *<n>* jours ou moins", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Date de création (Plus récentes en premier)", "created-at-oldest-first": "Date de création (Plus anciennes en premier)", "links-heading": "Liens", - "hide-system-messages-of-all-users": "Masquer les messages système de tous les utilisateurs", - "now-system-messages-of-all-users-are-hidden": "Les messages système de tous les utilisateurs seront dorénavant masqués", + "hide-activities-of-all-boards": "Ne pas afficher les activités du tableau sur tous les tableaux", + "now-activities-of-all-boards-are-hidden": "Les activités de tous les tableaux seront dorénavant cachées", "move-swimlane": "Déplacer le couloir", "moveSwimlanePopup-title": "Déplacer le couloir", "custom-field-stringtemplate": "Modèle de chaîne", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Actions sur la check-list", "moveChecklist": "Déplacer la check-list", "moveChecklistPopup-title": "Déplacer la check-list", - "newlineBecomesNewChecklistItem": "Chaque retour à la ligne produit un nouvel élément de check-list", + "newlineBecomesNewChecklistItem": "Chaque ligne de texte devient un élément de la check-list", + "newLineNewItem": "Une ligne de texte = un élément de la check-list", + "newlineBecomesNewChecklistItemOriginOrder": "Chaque ligne de texte devient un élément de la check-list, l'ordre est respecté", + "originOrder": "ordre original", "copyChecklist": "Copier la check-list", "copyChecklistPopup-title": "Copier la check-list", "card-show-lists": "Afficher les listes sur la carte", @@ -1242,9 +1256,17 @@ "translation": "Traduction", "text": "Texte", "translation-text": "Texte traduit", - "show-at-minicard": "Afficher sur la mini-carte", - "show-checklist-at-minicard": "Afficher la check-list sur la mini-carte", "show-subtasks-field": "Afficher le champ des sous-tâches", + "show-week-of-year": "Afficher la semaine de l'année (ISO 8601)", "convert-to-markdown": "Convertir en markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Ajouter un fichier .zip qui contient les fichiers JSON du tableau et les noms de sous-répertoires avec les pièces jointes", + "collapse": "Réduire", + "uncollapse": "Développer", + "hideCheckedChecklistItems": "Cacher les éléments cochés de la check-list", + "hideAllChecklistItems": "Cacher tous les éléments de la check-list", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Page d'accessibilité activée", + "accessibility-title": "Sujet d'accessibilité", + "accessibility-content": "Contenu d'accessibilité" } diff --git a/imports/i18n/data/fy-NL.i18n.json b/imports/i18n/data/fy-NL.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/fy-NL.i18n.json +++ b/imports/i18n/data/fy-NL.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/fy.i18n.json b/imports/i18n/data/fy.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/fy.i18n.json +++ b/imports/i18n/data/fy.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/gl-ES.i18n.json b/imports/i18n/data/gl-ES.i18n.json index 0d8a16f3d..f2cd7a910 100644 --- a/imports/i18n/data/gl-ES.i18n.json +++ b/imports/i18n/data/gl-ES.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Engadir tarxeta", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "amarelo", "unset-color": "Unset", + "comments": "Comments", "comment": "Comentario", "comment-placeholder": "Escribir un comentario", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Nome completo", "header-logo-title": "Retornar á páxina dos seus taboleiros.", - "hide-system-messages": "Agochar as mensaxes do sistema", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Crear taboleiro", "home": "Inicio", "import": "Importar", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Hora", "title": "Título", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Seguimento", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/gl.i18n.json b/imports/i18n/data/gl.i18n.json index 32c7a64e1..9dfe8894e 100644 --- a/imports/i18n/data/gl.i18n.json +++ b/imports/i18n/data/gl.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Engadir tarxeta", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "amarelo", "unset-color": "Unset", + "comments": "Comments", "comment": "Comentario", "comment-placeholder": "Escribir un comentario", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Nome completo", "header-logo-title": "Retornar á páxina dos seus taboleiros.", - "hide-system-messages": "Agochar as mensaxes do sistema", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Crear taboleiro", "home": "Inicio", "import": "Importar", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Hora", "title": "Título", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Seguimento", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/gu-IN.i18n.json b/imports/i18n/data/gu-IN.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/gu-IN.i18n.json +++ b/imports/i18n/data/gu-IN.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/he-IL.i18n.json b/imports/i18n/data/he-IL.i18n.json index ccd0e8170..126686818 100644 --- a/imports/i18n/data/he-IL.i18n.json +++ b/imports/i18n/data/he-IL.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "המסנן המתקדם מאפשר לך לכתוב מחרוזת שמכילה את הפעולות הבאות: == != <= >= && || ( ) רווח מכהן כמפריד בין הפעולות. ניתן לסנן את כל השדות המותאמים אישית על ידי הקלדת שמם והערך שלהם. למשל: שדה1 == ערך1. לתשומת לבך: אם שדות או ערכים מכילים רווח, יש לעטוף אותם במירכא מכל צד. למשל: 'שדה 1' == 'ערך 1'. ניתן גם לשלב מגוון תנאים. למשל: F1 == V1 || F1 == V2. על פי רוב כל הפעולות מפוענחות משמאל לימין. ניתן לשנות את הסדר על ידי הצבת סוגריים. למשל: ( F1 == V1 && ( F2 == V2 || F2 == V3. כמו כן, ניתן לחפש בשדה טקסט באופן הבא: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index f8aa4eecd..3273295d4 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s הועבר לארכיון", "activity-attached": "%s צורף ל%s", "activity-created": "%s נוצר", + "activity-changedListTitle": "שם הרשימה השתנה לשם %s", "activity-customfield-created": "נוצר שדה בהתאמה אישית %s", "activity-excluded": "%s לא נכלל ב%s", "activity-imported": "%s ייובא מ%s אל %s", @@ -85,10 +86,12 @@ "add-card": "הוספת כרטיס", "add-card-to-top-of-list": "הוספת כרטיס לראש הרשימה", "add-card-to-bottom-of-list": "הוספת כרטיס לתחתית הרשימה", - "setListWidthPopup-title": "הגדרת רוחב רשימה", - "set-list-width": "הגדרת רוחב רשימה", - "set-list-width-value": "רוחב רשימה (פיקסלים)", - "list-width-error-message": "רוחב הרשימה חייב להיות מספר שלם וחיובי", + "setListWidthPopup-title": "הגדרת רוחבים", + "set-list-width": "הגדרת רוחבים", + "set-list-width-value": "הגדרת רוחבים מזעריים ומרביים (פיקסלים)", + "list-width-error-message": "רשימת הרוחבים חייבים להיות מספרים שלמים מעל 100", + "keyboard-shortcuts-enabled": "קיצורי מקלדת פעילים. לחיצה תשבית אותם.", + "keyboard-shortcuts-disabled": "קיצורי מקלדת מושבתים. לחיצה תפעיל אותם.", "setSwimlaneHeightPopup-title": "הגדרת גובה מסלול", "set-swimlane-height": "הגדרת גובה מסלול", "set-swimlane-height-value": "גובה מסלול (פיקסלים)", @@ -263,6 +266,9 @@ "checklists": "רשימות", "click-to-star": "יש ללחוץ להוספת הלוח למועדפים.", "click-to-unstar": "יש ללחוץ להסרת הלוח מהמועדפים.", + "click-to-enable-auto-width": "רוחב רשימה אוטומטי מושבת. לחיצה תפעיל אותו.", + "click-to-disable-auto-width": "רוחב רשימה אוטומטי מופעל. לחיצה תשבית אותו.", + "auto-list-width": "רוחב רשימה אוטומטי", "clipboard": "לוח גזירים או גרירה ושחרור", "close": "סגירה", "close-board": "סגירת לוח", @@ -294,6 +300,7 @@ "color-white": "לבן", "color-yellow": "צהוב", "unset-color": "בטל הגדרה", + "comments": "הערות", "comment": "לפרסם", "comment-placeholder": "כתיבת הערה", "comment-only": "תגובות בלבד", @@ -376,6 +383,7 @@ "email-sent": "הודעת הדוא״ל נשלחה", "email-verifyEmail-subject": "אימות כתובת הדוא״ל שלך באתר __siteName__", "email-verifyEmail-text": "__user__ שלום,\n\nלאימות כתובת הדוא״ל המשויכת לחשבונך, עליך פשוט ללחוץ על הקישור המופיע להלן.\n\n__url__\n\nתודה.", + "enable-vertical-scrollbars": "הפעלת פסי גלילה אנכיים", "enable-wip-limit": "הפעלת מגבלת „בעבודה”", "error-board-doesNotExist": "לוח זה אינו קיים", "error-board-notAdmin": "צריכות להיות לך הרשאות ניהול על לוח זה כדי לעשות זאת", @@ -443,7 +451,7 @@ "advanced-filter-description": "המסנן המתקדם מאפשר לך לכתוב מחרוזת שמכילה את הפעולות הבאות: == != <= >= && || ( ) רווח מכהן כמפריד בין הפעולות. ניתן לסנן את כל השדות המותאמים אישית על ידי הקלדת שמם והערך שלהם. למשל: שדה1 == ערך1. לתשומת לבך: אם שדות או ערכים מכילים רווח, יש לעטוף אותם במירכא מכל צד. למשל: 'שדה 1' == 'ערך 1'. ניתן גם לשלב מגוון תנאים. למשל: F1 == V1 || F1 == V2. על פי רוב כל הפעולות מפוענחות משמאל לימין. ניתן לשנות את הסדר על ידי הצבת סוגריים. למשל: ( F1 == V1 && ( F2 == V2 || F2 == V3. כמו כן, ניתן לחפש בשדה טקסט באופן הבא: F1 == /Tes.*/i", "fullname": "שם מלא", "header-logo-title": "חזרה לדף הלוחות שלך.", - "hide-system-messages": "הסתרת הודעות מערכת", + "show-activities": "הצגת פעילויות", "headerBarCreateBoardPopup-title": "יצירת לוח", "home": "בית", "import": "יבוא", @@ -572,6 +580,7 @@ "select-board": "בחירת לוח", "set-wip-limit-value": "הגדרת מגבלה למספר המרבי של משימות ברשימה זו", "setWipLimitPopup-title": "הגדרת מגבלת „בעבודה”", + "shortcut-add-self": "להוסיף את עצמך לכרטיס הנוכחי", "shortcut-assign-self": "להקצות אותי לכרטיס הנוכחי", "shortcut-autocomplete-emoji": "השלמה אוטומטית לאימוג׳י", "shortcut-autocomplete-members": "השלמה אוטומטית של חברים", @@ -601,6 +610,7 @@ "has-spenttime-cards": "יש כרטיסי זמן שהושקע", "time": "זמן", "title": "כותרת", + "toggle-assignees": "הצגת/הסרת מוקצים 1-‏9 בכרטיסים (לפי סדר ההוספה ללוח).", "toggle-labels": "החלפת מצב תוויות 1-‎9 לכרטיס. בחירה מרוכזת מוסיפה תוויות 1‏-9", "remove-labels-multiselect": "בחירה מרוכזת מסירה תוויות 1-‏9", "tracking": "מעקב", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "לא ניתן למחוק את הכרטיס הזה לפני שמוחקים את הכרטיס המקושר שיש לו", "delete-linked-cards-before-this-list": "לא ניתן למחוק את הרשימה הזו לפני שמוחקים את הכרטיסים שמצביעים לכרטיסים ברשימה הזו", "hide-checked-items": "הסתרת הפריטים שסומנו", + "hide-finished-checklist": "הסתרת רשימת מטלות שהושלמה", "task": "משימה", "create-task": "צירת משימה", "ok": "אישור", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "מועד יצירה (החדש ביותר בהתחלה)", "created-at-oldest-first": "מועד יצירה (הישן ביותר בהתחלה)", "links-heading": "קישורים", - "hide-system-messages-of-all-users": "להסתיר את הודעות המערכת של כל המשתמשים", - "now-system-messages-of-all-users-are-hidden": "כעת הודעות המערכת של כל המשתמשים מוסתרות", + "hide-activities-of-all-boards": "לא להציג את פעילויות הלוח בכל הלוחות", + "now-activities-of-all-boards-are-hidden": "עכשיו כל הפעילויות של כל הלוחות מוסתרות", "move-swimlane": "העברת מסלול", "moveSwimlanePopup-title": "העברת מסלול", "custom-field-stringtemplate": "תבנית מחרוזת", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "פעולות על רשימת מטלות", "moveChecklist": "העברת רשימת מטלות", "moveChecklistPopup-title": "העברת רשימת מטלות", - "newlineBecomesNewChecklistItem": "שורה חדשה הופכת לפריט חדש ברשימת המטלות", + "newlineBecomesNewChecklistItem": "כל שורה של טקסט הופכת לאחד מפריטי רשימת המטלות", + "newLineNewItem": "שורה אחת של טקסט = פריט רשימת מטלות אחד", + "newlineBecomesNewChecklistItemOriginOrder": "כל שורה של טקסט הופכת לאחד הפריטים ברשימת המטלות, לפי הסדר המקורי", + "originOrder": "סדר מקורי", "copyChecklist": "העתקת רשימת מטלות", "copyChecklistPopup-title": "העתקת רשימת מטלות", "card-show-lists": "הצגת רשימות על הכרטיס", @@ -1242,9 +1256,17 @@ "translation": "תרגום", "text": "טקסט", "translation-text": "טקסט תרגום", - "show-at-minicard": "הצגה בכרטיסון", - "show-checklist-at-minicard": "הצגת רשימת מטלות על הכרטיסון", "show-subtasks-field": "הצגת שדה תת־משימות", + "show-week-of-year": "הצגת שבוע בשנה (ISO 8601)", "convert-to-markdown": "המרה ל־Markdown", - "import-board-zip": "הוספת קובץ ‎.zip עם קובצי JSON של לוח, ותת־תיקיות בשם הלוח עם קבצים מצורפים" + "import-board-zip": "הוספת קובץ ‎.zip עם קובצי JSON של לוח, ותת־תיקיות בשם הלוח עם קבצים מצורפים", + "collapse": "צמצום", + "uncollapse": "ביטול צמצום", + "hideCheckedChecklistItems": "הסתרת פריטים שסומנו ברשימת הפריטים", + "hideAllChecklistItems": "הסתרת כל הפריטים ברשימת המטלות", + "support": "תמיכה", + "supportPopup-title": "תמיכה", + "accessibility-page-enabled": "עמוד הנגישות הופעל", + "accessibility-title": "נושא נגישות", + "accessibility-content": "תוכן נגישות" } diff --git a/imports/i18n/data/hi-IN.i18n.json b/imports/i18n/data/hi-IN.i18n.json index 878f7c3ba..4e08ed540 100644 --- a/imports/i18n/data/hi-IN.i18n.json +++ b/imports/i18n/data/hi-IN.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%sसंग्रह में ले जाया गया", "activity-attached": "संलग्न %s से %s", "activity-created": "बनाया %s", + "activity-changedListTitle": "सूची का नाम बदलकर %sकर दिया गया", "activity-customfield-created": "बनाया रिवाज क्षेत्र %s", "activity-excluded": "छोड़ा %s से %s", "activity-imported": "सूचित कर %s के अंदर %s से %s", @@ -85,14 +86,16 @@ "add-card": "कार्ड जोड़ें", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", - "setSwimlaneHeightPopup-title": "Set Swimlane Height", - "set-swimlane-height": "Set Swimlane Height", - "set-swimlane-height-value": "Swimlane Height (pixels)", - "swimlane-height-error-message": "Swimlane height must be a positive integer", + "setListWidthPopup-title": "चौड़ाई सेट करें", + "set-list-width": "चौड़ाई सेट करें", + "set-list-width-value": "न्यूनतम और अधिकतम चौड़ाई (पिक्सेल) सेट करें", + "list-width-error-message": "सूची चौड़ाई 100 से अधिक पूर्णांक होनी चाहिए", + "keyboard-shortcuts-enabled": "कुंजीपटल शॉर्टकट सक्षम किए गए. अक्षम करने के लिए क्लिक करें.", + "keyboard-shortcuts-disabled": "कुंजीपटल शॉर्टकट अक्षम है| सक्षम करने के लिए क्लिक करें।", + "setSwimlaneHeightPopup-title": "स्विमलेन ऊंचाई सेट करें |", + "set-swimlane-height": "स्विमलेन ऊंचाई सेट करें |", + "set-swimlane-height-value": "स्विमलेन ऊँचाई (पिक्सेल) |", + "swimlane-height-error-message": "स्विमलेन की ऊंचाई एक धनात्मक पूर्णांक होनी चाहिए", "add-swimlane": "तैरन जोड़ें", "add-subtask": "उप कार्य जोड़ें", "add-checklist": "चिह्नांकन-सूची जोड़ें", @@ -100,10 +103,10 @@ "close-add-checklist-item": "Close add an item to checklist form", "close-edit-checklist-item": "Close edit an item to checklist form", "convertChecklistItemToCardPopup-title": "Convert to Card", - "add-cover": "Add cover image to minicard", + "add-cover": "मिनीकार्ड में कवर छवि जोड़ें", "add-label": "नामपत्र जोड़ें", "add-list": "सूची जोड़ें", - "add-after-list": "Add After List", + "add-after-list": "सूची के बाद जोड़ें", "add-members": "सदस्य जोड़ें", "added": "जोड़ा गया", "addMemberPopup-title": "सदस्य", @@ -143,13 +146,13 @@ "attachmentDeletePopup-title": "मिटाएँ संलग्नक?", "attachments": "संलग्नक", "auto-watch": "स्वचालित रूप से देखो बोर्डों जब वे बनाए जाते हैं", - "avatar-too-big": "The avatar is too large (__size__ max)", + "avatar-too-big": "अवतार बहुत बड़ा है (__आकार__अधिकतम )", "back": "वापस", "board-change-color": "रंग बदलना", - "board-change-background-image": "Change Background Image", - "board-background-image-url": "Background Image URL", - "add-background-image": "Add Background Image", - "remove-background-image": "Remove Background Image", + "board-change-background-image": "पृष्ठभूमि छवि बदलें", + "board-background-image-url": "पृष्ठभूमि छवि URL", + "add-background-image": "पृष्ठभूमि छवि जोड़ें ", + "remove-background-image": "पृष्ठभूमि छवि निकालें", "show-at-all-boards-page" : "Show at All Boards page", "board-info-on-my-boards" : "All Boards Settings", "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", @@ -162,9 +165,9 @@ "board-public-info": "यह बोर्ड हो जाएगा <strong>सार्वजनिक</strong>.", "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.", "boardChangeColorPopup-title": "बोर्ड पृष्ठभूमि बदलें", - "boardChangeBackgroundImagePopup-title": "Change Background Image", + "boardChangeBackgroundImagePopup-title": "पृष्ठभूमि छवि बदलें", "allBoardsChangeColorPopup-title": "रंग बदलना", - "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeBackgroundImagePopup-title": "पृष्ठभूमि छवि बदलें", "boardChangeTitlePopup-title": "बोर्ड का नाम बदलें", "boardChangeVisibilityPopup-title": "दृश्यता बदलें", "boardChangeWatchPopup-title": "बदलें वॉच", @@ -263,6 +266,9 @@ "checklists": "जांच सूची", "click-to-star": "इस बोर्ड को स्टार करने के लिए क्लिक करें ।", "click-to-unstar": "इस बोर्ड को अनस्टार करने के लिए क्लिक करें।", + "click-to-enable-auto-width": "ऑटो सूची चौड़ाई अक्षम है। सक्षम करने के लिए क्लिक करें", + "click-to-disable-auto-width": "ऑटो सूची चौड़ाई अक्षम है। अक्षम करने के लिए क्लिक करें.", + "auto-list-width": "ऑटो सूची चौड़ाई", "clipboard": "क्लिपबोर्ड या खींचें और छोड़ें", "close": "बंद करे", "close-board": "बोर्ड बंद करे", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "पीला", "unset-color": "Unset", + "comments": "टिप्पणियाँ", "comment": "टिप्पणी", "comment-placeholder": "टिप्पणी लिखें", "comment-only": "केवल टिप्पणी करें", @@ -376,13 +383,14 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "नमस्ते __user __, \n\n अपना खाता ईमेल सत्यापित करने के लिए, बस नीचे दिए गए लिंक पर क्लिक करें। \n\n__url __ \n\n धन्यवाद।", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "यह बोर्ड does not exist", "error-board-notAdmin": "You need तक be व्यवस्थापक of यह बोर्ड तक do that", "error-board-notAMember": "You need तक be एक सदस्य of यह बोर्ड तक do that", "error-json-malformed": "Your text is not valid JSON", "error-json-schema": "आपके JSON डेटा में सही प्रारूप में सही जानकारी शामिल नहीं है", - "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ", + "error-csv-schema": "आपके CSV(कॉमा सेपरेटेड वैल्यू)/TSV (टैब सेपरेटेड वैल्यू) में सही फ़ॉर्मैट में उचित जानकारी शामिल नहीं है", "error-list-doesNotExist": "यह सूची does not exist", "error-user-doesNotExist": "यह user does not exist", "error-user-notAllowSelf": "You can not invite yourself", @@ -421,7 +429,7 @@ "filter-overdue": "Overdue", "filter-due-today": "Due today", "filter-due-this-week": "Due this week", - "filter-due-next-week": "Due next week", + "filter-due-next-week": "अगले सप्ताह होने वाला है", "filter-due-tomorrow": "Due tomorrow", "list-filter-label": "शीर्षक द्वारा निस्पंदन सूची", "filter-clear": "Clear filter", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows तक write एक string containing following operators: == != <= >= && || ( ) एक space is used as एक separator between the Operators. You can filter for संपूर्ण प्रचलन क्षेत्र by typing their names और values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need तक encapsulate them के अंदर single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) तक be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally संपूर्ण operators are interpreted से left तक right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back तक your बोर्डों page.", - "hide-system-messages": "Hide system messages", + "show-activities": "गतिविधियाँ दिखाएँ", "headerBarCreateBoardPopup-title": "बोर्ड निर्माण करना", "home": "Home", "import": "Import", @@ -550,7 +558,7 @@ "public": "Public", "public-desc": "यह बोर्ड is public. It's visible तक anyone साथ में the link और will show up अंदर में गूगल की तरह खोज इंजन । केवल लोग संकलित तक बोर्ड संपादित कर सकते हैं.", "quick-access-description": "Star एक बोर्ड तक जोड़ें एक shortcut अंदर में यह पट्टी .", - "remove-cover": "Remove cover image from minicard", + "remove-cover": "मिनीकार्ड से कवर छवि हटाएं", "remove-from-board": "हटाएँ से बोर्ड", "remove-label": "हटाएँ Label", "listDeletePopup-title": "मिटाएँ सूची ?", @@ -572,13 +580,14 @@ "select-board": "Select Board", "set-wip-limit-value": "Set एक limit for the maximum number of tasks अंदर में यह list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "अपने आप को वर्तमान कार्ड में जोड़ें", "shortcut-assign-self": "Assign yourself तक current कार्ड", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete सदस्य", "shortcut-clear-filters": "Clear संपूर्ण filters", "shortcut-close-dialog": "Close Dialog", "shortcut-filter-my-cards": "Filter my कार्ड", - "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-filter-my-assigned-cards": "मेरे असाइन किए गए कार्ड फ़िल्टर करें", "shortcut-show-shortcuts": "Bring up यह shortcuts list", "shortcut-toggle-filterbar": "Toggle Filter Sidebar", "shortcut-toggle-searchbar": "Toggle Search Sidebar", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time कार्ड", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -740,9 +750,9 @@ "deposit-subtasks-list": "Landing सूची for subtasks deposited here:", "show-parent-in-minicard": "Show parent अंदर में minicard:", "description-on-minicard": "Description on minicard", - "cover-attachment-on-minicard": "Cover image on minicard", - "badge-attachment-on-minicard": "Count of attachments on minicard", - "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "cover-attachment-on-minicard": "मिनकार्ड पर कवर छवि", + "badge-attachment-on-minicard": "मिनीकार्ड पर अटैचमेंट की गिनती", + "card-sorting-by-number-on-minicard": "मिनीकार्ड पर नंबर के आधार पर कार्ड सॉर्टिंग", "prefix-with-full-path": "Prefix साथ में full path", "prefix-with-parent": "Prefix साथ में parent", "subtext-with-full-path": "Subtext साथ में full path", @@ -855,7 +865,7 @@ "r-items-list": "item1,item2,item3", "r-add-swimlane": "Add swimlane", "r-swimlane-name": "swimlane name", - "r-board-note": "Note: leave a field empty to match every possible value. ", + "r-board-note": "ध्यान दें: हर संभव मान से मेल खाने के लिए एक फ़ील्ड खाली छोड़ दें।", "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", "r-when-a-card-is-moved": "जब एक कार्ड is स्थानांतरित तक another list", "r-set": "Set", @@ -886,9 +896,9 @@ "oidc-button-text": "Customize the OIDC button text", "default-authentication-method": "Default Authentication Method", "duplicate-board": "Duplicate Board", - "org-number": "The number of organizations is: ", - "team-number": "The number of teams is: ", - "people-number": "The number of people is: ", + "org-number": "संगठनों की संख्या है: ", + "team-number": "दल - टीमों की संख्या है: ", + "people-number": "व्यक्तियों की संख्या है: ", "swimlaneDeletePopup-title": "Delete Swimlane ?", "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", "restore-all": "Restore all", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "समाप्त चेकलिस्ट छुपाएं", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -963,7 +974,7 @@ "teams": "Teams", "displayName": "Display Name", "shortName": "Short Name", - "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "autoAddUsersWithDomainName": "डोमेन नाम के साथ उपयोगकर्ताओं को स्वचालित रूप से जोड़ें", "website": "Website", "person": "Person", "my-cards": "My Cards", @@ -1100,7 +1111,7 @@ "label-names": "Label Names", "archived-at": "archived at", "sort-cards": "Sort Cards", - "sort-is-on": "Sort is on", + "sort-is-on": "तरह - सॉर्ट-चालू है", "cardsSortPopup-title": "Sort Cards", "due-date": "Due Date", "server-error": "Server Error", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "सभी बोर्डों पर बोर्ड की गतिविधियों को न दिखाएं", + "now-activities-of-all-boards-are-hidden": "अब सभी बोर्डों की सभी गतिविधियां छिपी हुई हैं", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1118,7 +1129,7 @@ "custom-field-stringtemplate-separator": "Separator (use or   for a space)", "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", "creator": "Creator", - "creator-on-minicard": "Creator on minicard", + "creator-on-minicard": "मिनीकार्ड पर निर्माता", "filesReportTitle": "Files Report", "reports": "Reports", "rulesReportTitle": "Rules Report", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "पाठ की प्रत्येक पंक्ति चेकलिस्ट आइटम में से एक बन जाती है", + "newLineNewItem": "पाठ की एक पंक्ति = एक चेकलिस्ट आइटम", + "newlineBecomesNewChecklistItemOriginOrder": "पाठ की प्रत्येक पंक्ति चेकलिस्ट आइटम, मूल क्रम में से एक बन जाती है", + "originOrder": "मूल क्रम", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1227,24 +1241,32 @@ "minicardDetailsActionsPopup-title": "Card Details", "Mongo_sessions_count": "Mongo sessions count", "change-visibility": "दृश्यता बदलें", - "max-upload-filesize": "Max upload filesize in bytes:", - "allowed-upload-filetypes": "Allowed upload filetypes:", - "max-avatar-filesize": "Max avatar filesize in bytes:", - "allowed-avatar-filetypes": "Allowed avatar filetypes:", - "invalid-file": "If filename is invalid, upload or rename is cancelled.", - "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", - "drag-board": "Drag board", - "translation-number": "The number of custom translation strings is:", - "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", - "newTranslationPopup-title": "New custom translation string", - "editTranslationPopup-title": "Edit custom translation string", - "settingsTranslationPopup-title": "Delete this custom translation string?", - "translation": "Translation", + "max-upload-filesize": "बाइट्स में फ़ाइल आकार अधिकतम अपलोड करें:", + "allowed-upload-filetypes": "अपलोड करने की अनुमति दी गई फ़ाइल प्रकार:", + "max-avatar-filesize": "बाइट्स में अधिकतम अवतार फ़ाइल आकार:", + "allowed-avatar-filetypes": "अनुमत अवतार फ़ाइलप्रकार:", + "invalid-file": "अगर फ़ाइल नाम अमान्य है, तो अपलोड या नाम बदलना रद्द कर दिया जाता है.", + "preview-pdf-not-supported": "आपका डिवाइस PDF का पूर्वावलोकन करने का समर्थन नहीं करता है। इसके बजाय डाउनलोड करने का प्रयास करें।", + "drag-board": "बोर्ड खींचें", + "translation-number": "कस्टम अनुवाद स्ट्रिंग्स की संख्या है:", + "delete-translation-confirm-popup": "क्या आप वाकई इस कस्टम अनुवाद स्ट्रिंग को हटाना चाहते हैं? कोई पूर्ववत नहीं है।", + "newTranslationPopup-title": "नई कस्टम अनुवाद स्ट्रिंग", + "editTranslationPopup-title": "कस्टम अनुवाद स्ट्रिंग संपादित करें", + "settingsTranslationPopup-title": "इस कस्टम अनुवाद स्ट्रिंग को हटाएँ?", + "translation": "अनुवाद", "text": "Text", - "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", - "show-subtasks-field": "Show subtasks field", - "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "translation-text": "अनुवाद पाठ", + "show-subtasks-field": "उप-कार्य फ़ील्ड दिखाएँ", + "show-week-of-year": "Show week of year (ISO 8601)", + "convert-to-markdown": "मार्कडाउन में कनवर्ट करें", + "import-board-zip": ".zip फ़ाइल जोड़ें जिसमें बोर्ड JSON फ़ाइलें हैं, और अनुलग्नकों के साथ बोर्ड नाम उपनिर्देशिकाएँ हैं", + "collapse": "संक्षिप्त करें", + "uncollapse": "असंकुचित करें", + "hideCheckedChecklistItems": "चेक किए गए चेकलिस्ट आइटम छुपाएं", + "hideAllChecklistItems": "सभी चेकलिस्ट आइटम छुपाएं", + "support": "समर्थन या सहायता", + "supportPopup-title": "समर्थन या सहायता", + "accessibility-page-enabled": "अभिगम्यता पृष्ठ सक्षम किया गया", + "accessibility-title": " सुलभता विषय", + "accessibility-content": "सुलभता सामग्री" } diff --git a/imports/i18n/data/hi.i18n.json b/imports/i18n/data/hi.i18n.json index 87005943e..f6e2a64a3 100644 --- a/imports/i18n/data/hi.i18n.json +++ b/imports/i18n/data/hi.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%sसंग्रह में ले जाया गया", "activity-attached": "संलग्न %s से %s", "activity-created": "बनाया %s", + "activity-changedListTitle": "सूची का नाम बदलकर %s कर दिया गया", "activity-customfield-created": "बनाया रिवाज क्षेत्र %s", "activity-excluded": "छोड़ा %s से %s", "activity-imported": "सूचित कर %s के अंदर %s से %s", @@ -85,14 +86,16 @@ "add-card": "कार्ड जोड़ें", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", - "setSwimlaneHeightPopup-title": "Set Swimlane Height", - "set-swimlane-height": "Set Swimlane Height", - "set-swimlane-height-value": "Swimlane Height (pixels)", - "swimlane-height-error-message": "Swimlane height must be a positive integer", + "setListWidthPopup-title": "चौड़ाई सेट करें", + "set-list-width": "चौड़ाई सेट करें", + "set-list-width-value": "न्यूनतम और अधिकतम चौड़ाई सेट करें (पिक्सेल)", + "list-width-error-message": "सूची की चौड़ाई 100 से अधिक पूर्णांक होनी चाहिए", + "keyboard-shortcuts-enabled": "कीबोर्ड शॉर्टकट सक्षम किए गए। अक्षम करने के लिए क्लिक करें।", + "keyboard-shortcuts-disabled": "कीबोर्ड शॉर्टकट अक्षम किए गए। सक्षम करने के लिए क्लिक करें।", + "setSwimlaneHeightPopup-title": "स्विमलेन की ऊंचाई सेट करें", + "set-swimlane-height": "स्विमलेन की ऊंचाई सेट करें", + "set-swimlane-height-value": "स्विमलेन की ऊंचाई (पिक्सेल)", + "swimlane-height-error-message": "स्विमलेन की ऊंचाई एक धनात्मक पूर्णांक होनी चाहिए", "add-swimlane": "तैरन जोड़ें", "add-subtask": "उप कार्य जोड़ें", "add-checklist": "चिह्नांकन-सूची जोड़ें", @@ -100,10 +103,10 @@ "close-add-checklist-item": "Close add an item to checklist form", "close-edit-checklist-item": "Close edit an item to checklist form", "convertChecklistItemToCardPopup-title": "Convert to Card", - "add-cover": "Add cover image to minicard", + "add-cover": "मिनीकार्ड में कवर छवि जोड़ें", "add-label": "नामपत्र जोड़ें", "add-list": "सूची जोड़ें", - "add-after-list": "Add After List", + "add-after-list": "सूची के बाद जोड़ें", "add-members": "सदस्य जोड़ें", "added": "जोड़ा गया", "addMemberPopup-title": "सदस्य", @@ -143,13 +146,13 @@ "attachmentDeletePopup-title": "मिटाएँ संलग्नक?", "attachments": "संलग्नक", "auto-watch": "स्वचालित रूप से देखो बोर्डों जब वे बनाए जाते हैं", - "avatar-too-big": "The avatar is too large (__size__ max)", + "avatar-too-big": "अवतार बहुत बड़ा है (__आकार__ अधिकतम)", "back": "वापस", "board-change-color": "रंग बदलना", - "board-change-background-image": "Change Background Image", - "board-background-image-url": "Background Image URL", - "add-background-image": "Add Background Image", - "remove-background-image": "Remove Background Image", + "board-change-background-image": "पृष्ठभूमि छवि बदलें", + "board-background-image-url": "पृष्ठभूमि छवि URL", + "add-background-image": "पृष्ठभूमि छवि जोड़ें", + "remove-background-image": "पृष्ठभूमि छवि हटाएं", "show-at-all-boards-page" : "Show at All Boards page", "board-info-on-my-boards" : "All Boards Settings", "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", @@ -162,9 +165,9 @@ "board-public-info": "यह बोर्ड हो जाएगा <strong>सार्वजनिक</strong>.", "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.", "boardChangeColorPopup-title": "बोर्ड पृष्ठभूमि बदलें", - "boardChangeBackgroundImagePopup-title": "Change Background Image", + "boardChangeBackgroundImagePopup-title": "पृष्ठभूमि छवि बदलें", "allBoardsChangeColorPopup-title": "रंग बदलना", - "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeBackgroundImagePopup-title": "पृष्ठभूमि छवि बदलें", "boardChangeTitlePopup-title": "बोर्ड का नाम बदलें", "boardChangeVisibilityPopup-title": "दृश्यता बदलें", "boardChangeWatchPopup-title": "बदलें वॉच", @@ -263,6 +266,9 @@ "checklists": "जांच सूची", "click-to-star": "इस बोर्ड को स्टार करने के लिए क्लिक करें ।", "click-to-unstar": "इस बोर्ड को अनस्टार करने के लिए क्लिक करें।", + "click-to-enable-auto-width": "स्वचालित सूची चौड़ाई अक्षम। सक्षम करने के लिए क्लिक करें।", + "click-to-disable-auto-width": "ऑटो सूची चौड़ाई सक्षम। अक्षम करने के लिए क्लिक करें.", + "auto-list-width": "स्वचालित सूची चौड़ाई", "clipboard": "क्लिपबोर्ड या खींचें और छोड़ें", "close": "बंद करे", "close-board": "बोर्ड बंद करे", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "पीला", "unset-color": "Unset", + "comments": "टिप्पणियाँ", "comment": "टिप्पणी", "comment-placeholder": "टिप्पणी लिखें", "comment-only": "केवल टिप्पणी करें", @@ -376,13 +383,14 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "नमस्ते __user __, \n\n अपना खाता ईमेल सत्यापित करने के लिए, बस नीचे दिए गए लिंक पर क्लिक करें। \n\n__url __ \n\n धन्यवाद।", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "यह बोर्ड does not exist", "error-board-notAdmin": "You need तक be व्यवस्थापक of यह बोर्ड तक do that", "error-board-notAMember": "You need तक be एक सदस्य of यह बोर्ड तक do that", "error-json-malformed": "Your text is not valid JSON", "error-json-schema": "आपके JSON डेटा में सही प्रारूप में सही जानकारी शामिल नहीं है", - "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ", + "error-csv-schema": "आपकी CSV (कोमा सेपरेटेड वैल्यू)/TSV (टैब सेपरेटेड वैल्यू) में सही प्रारूप में उचित जानकारी शामिल नहीं है", "error-list-doesNotExist": "यह सूची does not exist", "error-user-doesNotExist": "यह user does not exist", "error-user-notAllowSelf": "You can not invite yourself", @@ -421,7 +429,7 @@ "filter-overdue": "Overdue", "filter-due-today": "Due today", "filter-due-this-week": "Due this week", - "filter-due-next-week": "Due next week", + "filter-due-next-week": "अगले सप्ताह तक देय", "filter-due-tomorrow": "Due tomorrow", "list-filter-label": "शीर्षक द्वारा निस्पंदन सूची", "filter-clear": "Clear filter", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows तक write एक string containing following operators: == != <= >= && || ( ) एक space is used as एक separator between the Operators. You can filter for संपूर्ण प्रचलन क्षेत्र by typing their names और values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need तक encapsulate them के अंदर single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) तक be skipped, you can use \\\\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally संपूर्ण operators are interpreted से left तक right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back तक your बोर्डों page.", - "hide-system-messages": "Hide system messages", + "show-activities": "गतिविधियाँ दिखाएं", "headerBarCreateBoardPopup-title": "बोर्ड निर्माण करना", "home": "Home", "import": "Import", @@ -550,7 +558,7 @@ "public": "Public", "public-desc": "यह बोर्ड is public. It's visible तक anyone साथ में the link और will show up अंदर में गूगल की तरह खोज इंजन । केवल लोग संकलित तक बोर्ड संपादित कर सकते हैं.", "quick-access-description": "Star एक बोर्ड तक जोड़ें एक shortcut अंदर में यह पट्टी .", - "remove-cover": "Remove cover image from minicard", + "remove-cover": "मिनीकार्ड से कवर छवि हटाएं", "remove-from-board": "हटाएँ से बोर्ड", "remove-label": "हटाएँ Label", "listDeletePopup-title": "मिटाएँ सूची ?", @@ -572,13 +580,14 @@ "select-board": "Select Board", "set-wip-limit-value": "Set एक limit for the maximum number of tasks अंदर में यह list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "वर्तमान कार्ड में स्वयं को जोड़ें", "shortcut-assign-self": "Assign yourself तक current कार्ड", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete सदस्य", "shortcut-clear-filters": "Clear संपूर्ण filters", "shortcut-close-dialog": "Close Dialog", "shortcut-filter-my-cards": "Filter my कार्ड", - "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-filter-my-assigned-cards": "मेरे असाइन किए गए कार्ड को फ़िल्टर करें", "shortcut-show-shortcuts": "Bring up यह shortcuts list", "shortcut-toggle-filterbar": "Toggle Filter Sidebar", "shortcut-toggle-searchbar": "Toggle Search Sidebar", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time कार्ड", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -740,9 +750,9 @@ "deposit-subtasks-list": "Landing सूची for subtasks deposited here:", "show-parent-in-minicard": "Show parent अंदर में minicard:", "description-on-minicard": "Description on minicard", - "cover-attachment-on-minicard": "Cover image on minicard", - "badge-attachment-on-minicard": "Count of attachments on minicard", - "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "cover-attachment-on-minicard": "मिनीकार्ड पर कवर छवि", + "badge-attachment-on-minicard": "मिनीकार्ड पर अटैचमेंट की गिनती", + "card-sorting-by-number-on-minicard": "मिनीकार्ड पर संख्या के अनुसार कार्ड क्रमबद्ध करें", "prefix-with-full-path": "Prefix साथ में full path", "prefix-with-parent": "Prefix साथ में parent", "subtext-with-full-path": "Subtext साथ में full path", @@ -855,7 +865,7 @@ "r-items-list": "item1,item2,item3", "r-add-swimlane": "Add swimlane", "r-swimlane-name": "swimlane name", - "r-board-note": "Note: leave a field empty to match every possible value. ", + "r-board-note": "ध्यान दें: प्रत्येक संभव मान से मेल खाने के लिए एक फ़ील्ड खाली छोड़ दें।", "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", "r-when-a-card-is-moved": "जब एक कार्ड is स्थानांतरित तक another list", "r-set": "Set", @@ -886,9 +896,9 @@ "oidc-button-text": "Customize the OIDC button text", "default-authentication-method": "Default Authentication Method", "duplicate-board": "Duplicate Board", - "org-number": "The number of organizations is: ", - "team-number": "The number of teams is: ", - "people-number": "The number of people is: ", + "org-number": "संगठनों की संख्या है:", + "team-number": "टीमों की संख्या है:", + "people-number": "लोगों की संख्या है:", "swimlaneDeletePopup-title": "Delete Swimlane ?", "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", "restore-all": "Restore all", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "पूर्ण चेकलिस्ट छिपाएं", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -963,7 +974,7 @@ "teams": "Teams", "displayName": "Display Name", "shortName": "Short Name", - "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "autoAddUsersWithDomainName": "डोमेन नाम वाले उपयोगकर्ताओं को स्वचालित रूप से जोड़ें", "website": "Website", "person": "Person", "my-cards": "My Cards", @@ -1100,7 +1111,7 @@ "label-names": "Label Names", "archived-at": "archived at", "sort-cards": "Sort Cards", - "sort-is-on": "Sort is on", + "sort-is-on": "सॉर्ट चालू है", "cardsSortPopup-title": "Sort Cards", "due-date": "Due Date", "server-error": "Server Error", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "सभी बोर्डों पर बोर्ड गतिविधियाँ न दिखाएं", + "now-activities-of-all-boards-are-hidden": "अब सभी बोर्डों की सभी गतिविधियाँ छिपा दी गई हैं", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1118,7 +1129,7 @@ "custom-field-stringtemplate-separator": "Separator (use or   for a space)", "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", "creator": "Creator", - "creator-on-minicard": "Creator on minicard", + "creator-on-minicard": "मिनीकार्ड पर निर्माता", "filesReportTitle": "Files Report", "reports": "Reports", "rulesReportTitle": "Rules Report", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "पाठ की प्रत्येक पंक्ति चेकलिस्ट आइटम में से एक बन जाती है|", + "newLineNewItem": "एक पंक्ति = एक चेकलिस्ट आइटम", + "newlineBecomesNewChecklistItemOriginOrder": "पाठ की प्रत्येक पंक्ति चेकलिस्ट आइटम में बदल जाती है, मूल क्रम", + "originOrder": "मूल क्रम", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1227,24 +1241,32 @@ "minicardDetailsActionsPopup-title": "Card Details", "Mongo_sessions_count": "Mongo sessions count", "change-visibility": "दृश्यता बदलें", - "max-upload-filesize": "Max upload filesize in bytes:", - "allowed-upload-filetypes": "Allowed upload filetypes:", - "max-avatar-filesize": "Max avatar filesize in bytes:", - "allowed-avatar-filetypes": "Allowed avatar filetypes:", - "invalid-file": "If filename is invalid, upload or rename is cancelled.", - "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", - "drag-board": "Drag board", - "translation-number": "The number of custom translation strings is:", - "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", - "newTranslationPopup-title": "New custom translation string", - "editTranslationPopup-title": "Edit custom translation string", - "settingsTranslationPopup-title": "Delete this custom translation string?", - "translation": "Translation", + "max-upload-filesize": "बाइट्स में फ़ाइल आकार अधिकतम अपलोड करें:", + "allowed-upload-filetypes": "अनुमत अपलोड फ़ाइल प्रकार:", + "max-avatar-filesize": "अधिकतम अवतार फ़ाइल आकार बाइट्स में:", + "allowed-avatar-filetypes": "अनुमत अवतार फ़ाइल प्रकार:", + "invalid-file": "यदि फ़ाइल का नाम अमान्य है, तो अपलोड या नाम बदलना रद्द कर दिया जाएगा।", + "preview-pdf-not-supported": "आपका डिवाइस PDF का पूर्वावलोकन समर्थित नहीं करता है। इसके बजाय डाउनलोड करने का प्रयास करें।", + "drag-board": "बोर्ड खींचें", + "translation-number": "कस्टम अनुवाद स्ट्रिंग्स की संख्या है:", + "delete-translation-confirm-popup": "क्या आप सुनिश्चित हैं कि आप इस कस्टम अनुवाद स्ट्रिंग को हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं होगी।", + "newTranslationPopup-title": "नई कस्टम अनुवाद स्ट्रिंग", + "editTranslationPopup-title": "कस्टम अनुवाद स्ट्रिंग संपादित करें", + "settingsTranslationPopup-title": "इस कस्टम अनुवाद स्ट्रिंग को हटाएं?", + "translation": "अनुवाद", "text": "Text", - "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", - "show-subtasks-field": "Show subtasks field", - "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "translation-text": "अनुवाद पाठ", + "show-subtasks-field": "उप-कार्य फ़ील्ड दिखाएँ", + "show-week-of-year": "Show week of year (ISO 8601)", + "convert-to-markdown": "मार्कडाउन में कन्वर्ट करें", + "import-board-zip": ".zip फ़ाइल जोड़ें जिसमें बोर्ड JSON फ़ाइलें और अनुलग्नकों वाले उपनिर्देशिका हों", + "collapse": "संक्षिप्त करें", + "uncollapse": "असंकुचित करें", + "hideCheckedChecklistItems": "चेक की गई चेकलिस्ट आइटम छिपाएं", + "hideAllChecklistItems": "सभी चेकलिस्ट आइटम छिपाएं", + "support": "सहायता", + "supportPopup-title": "सहायता", + "accessibility-page-enabled": "अभिगम्यता पृष्ठ सक्षम किया गया", + "accessibility-title": "एक्सेसिबिलिटी टॉपिक", + "accessibility-content": "अभिगम्यता सामग्री" } diff --git a/imports/i18n/data/hr.i18n.json b/imports/i18n/data/hr.i18n.json index 9bc7898e2..06cfc183e 100644 --- a/imports/i18n/data/hr.i18n.json +++ b/imports/i18n/data/hr.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s prebačen je u Arhivu", "activity-attached": "dodao/la je %s u %s", "activity-created": "kreirao/la je %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "kreirao/la je prilagođeno polje %s", "activity-excluded": "izdvojio/la je %s iz %s", "activity-imported": "uvezeno %s u %s iz %s", @@ -85,10 +86,12 @@ "add-card": "Dodaj karticu", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Liste provjere", "click-to-star": "Kliknite da biste ovu ploču označili zvjezdicom.", "click-to-unstar": "Kliknite da biste uklonili zvjezdicu s ove ploče.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Međuspremnik ili povucite i ispustite", "close": "Zatvori", "close-board": "Zatvori ploču", @@ -294,6 +300,7 @@ "color-white": "bijela", "color-yellow": "žuta", "unset-color": "Unset", + "comments": "Comments", "comment": "Komentiraj", "comment-placeholder": "Napiši komentar", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email je poslan", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Dodaj ploču", "home": "Početna", "import": "Uvoz", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Vrijeme", "title": "Naziv", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Tekst", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/hu.i18n.json b/imports/i18n/data/hu.i18n.json index c0d28b947..f128893be 100644 --- a/imports/i18n/data/hu.i18n.json +++ b/imports/i18n/data/hu.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s áthelyezve az Archívumba", "activity-attached": "%s mellékletet csatolt a kártyához: %s", "activity-created": "%s létrehozva", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "létrehozta a(z) %s egyéni mezőt", "activity-excluded": "%s kizárva innen: %s", "activity-imported": "%s importálva ebbe: %s, innen: %s", @@ -85,10 +86,12 @@ "add-card": "Kártya hozzáadása", "add-card-to-top-of-list": "Kártya hozzáadás a Lista elejére", "add-card-to-bottom-of-list": "Kártya hozzáadás a Lista végére", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Ellenőrző-listák", "click-to-star": "Kattints a tábla csillagozásához.", "click-to-unstar": "Kattints a tábla csillagának eltávolításához.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Vágólap vagy fogd és vidd", "close": "Bezárás", "close-board": "Tábla bezárása", @@ -294,6 +300,7 @@ "color-white": "fehér", "color-yellow": "sárga", "unset-color": "Nincs megadva", + "comments": "Comments", "comment": "Megjegyzés", "comment-placeholder": "Megjegyzés írása", "comment-only": "Csak megjegyzés", @@ -376,6 +383,7 @@ "email-sent": "E-mail elküldve", "email-verifyEmail-subject": "Igazolja vissza az e-mail címét a következő oldalon: __siteName__", "email-verifyEmail-text": "Kedves __user__!\n\nAz e-mail fiók visszaigazolásához egyszerűen kattints a lenti hivatkozásra.\n\n__url__\n\nKöszönjük.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "WIP korlát engedélyezése", "error-board-doesNotExist": "Ez a tábla nem létezik", "error-board-notAdmin": "A tábla adminisztrátorának kell lennie, hogy ezt megtehesse", @@ -443,7 +451,7 @@ "advanced-filter-description": "A speciális szűrőben megadhatsz egy olyan szöveget, mely az alábbi operátorokat tartalmazza:\n<= >= && || ( )\nSzóközzel választhatod el az operátorokat.\nSzűrhetsz az minden egyedi mezőre a nevére és értékére hivatkozva. \nPl.: Mező1 == Érték1\nMegjegyzés: Ha a mezők vagy értékek szóközöket is tartalmaznak, idézőjelek közé kell zárnod. \nPl.: 'Mező 1' == 'Érték 1'\nKontroll-karaktereket ( ' \\\\/ ) vissza-perjellel írhatsz: \\\\ Pl.: Johnny\\\\'s\nTovábbá kombinálhatsz több feltételt. Pl.: F1 == V1 || F1 == V2\nAlapesetben az ellenőrzés sorrendje: Jobbról->Balra. Ezt felülbírálhatod zárójelekkel. Pl.: F1 == V1 && ( F2 == V2 || F2 == V3 )\nRegex keresést is használhatsz: F1 == /Tes.*/i", "fullname": "Teljes név", "header-logo-title": "Vissza a táblák oldalára.", - "hide-system-messages": "Rendszerüzenetek elrejtése", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Tábla létrehozása", "home": "Kezdőlap", "import": "Importálás", @@ -572,6 +580,7 @@ "select-board": "Válassz Táblát", "set-wip-limit-value": "Korlát beállítása a listán lévő feladatok legnagyobb számához", "setWipLimitPopup-title": "WIP korlát beállítása", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Önmagad hozzárendelése a jelenlegi kártyához", "shortcut-autocomplete-emoji": "Emodzsi automatikus kiegészítése", "shortcut-autocomplete-members": "Tagok automatikus kiegészítése", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Van eltöltött-idő kártyája", "time": "Idő", "title": "Cím", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Követés", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Nem törölheted addig ezt a Kártyát, amíg nem törlöd előbb a kapcsolt Kártyákat", "delete-linked-cards-before-this-list": "Nem törölheted addig ezt a Listát, amíg le nem törölted azokat a Kártyákat, amik ezen Lista Kártyáira mutatnak.", "hide-checked-items": "Kijelölt elemek elrejtése", + "hide-finished-checklist": "Hide finished checklist", "task": "Feladat", "create-task": "Új feladat", "ok": "Rendben", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Létrehozva (Legújabb elől)", "created-at-oldest-first": "Létrehozva (Legrégebbi elől)", "links-heading": "Linkek", - "hide-system-messages-of-all-users": "Minden rendszerüzenet elrejtése minden felhasználónál", - "now-system-messages-of-all-users-are-hidden": "Most már minden rendszerüzenet rejtve lett minden felhasználónál.", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Úszósáv mozhatása", "moveSwimlanePopup-title": "Úszósáv mozhatása", "custom-field-stringtemplate": "Szöveg Sablon", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Szöveg", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Összecsukás", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/hy.i18n.json b/imports/i18n/data/hy.i18n.json index d8861a8b5..801a30eaa 100644 --- a/imports/i18n/data/hy.i18n.json +++ b/imports/i18n/data/hy.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/id.i18n.json b/imports/i18n/data/id.i18n.json index 600176e48..7be0542bf 100644 --- a/imports/i18n/data/id.i18n.json +++ b/imports/i18n/data/id.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s dipindah ke arsip", "activity-attached": "dilampirkan %s ke %s", "activity-created": "dibuat %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "tidak termasuk %s dari %s", "activity-imported": "diimpor %s kedalam %s dari %s", @@ -85,10 +86,12 @@ "add-card": "Tambah Kartu", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Atur lebar daftar", - "set-list-width": "Atur lebar daftar", - "set-list-width-value": "Lebar daftar (pixel)", - "list-width-error-message": "Lebar daftar harus dalam sebuah bilangan bulat posiif", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Atur Tinggi Swimlane ", "set-swimlane-height": "Atur Tinggi Swimlane ", "set-swimlane-height-value": "Tinggi Swimlane (pixel)", @@ -263,6 +266,9 @@ "checklists": "Daftar Periksa", "click-to-star": "Klik untuk tandai bintang panel ini", "click-to-unstar": "Klik untuk tidak memberi bintang pada panel ini", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard atau drag & drop", "close": "Tutup", "close-board": "Tutup Panel", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "kuning", "unset-color": "Unset", + "comments": "Comments", "comment": "Komentar", "comment-placeholder": "Write Comment", "comment-only": "Hanya komentar", @@ -376,6 +383,7 @@ "email-sent": "Email terkirim", "email-verifyEmail-subject": "Verifikasi surel Anda pada __siteName__", "email-verifyEmail-text": "Halo __user__,\n\nUntuk memverifikasi surel Anda, silakan klik tautan berikut.\n\n__url__\n\nTerima kasih.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Panel ini tidak ada", "error-board-notAdmin": "Anda harus admin dari panel ini untuk melakukan itu", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Nama Lengkap", "header-logo-title": "Kembali ke laman panel anda", - "hide-system-messages": "Sembunyikan pesan-pesan sistem", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Buat Panel", "home": "Beranda", "import": "Impor", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Tetapkan batas untuk jumlah tugas maksimum dalam daftar ini", "setWipLimitPopup-title": "Tetapkan Batas WIP", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Masukkan diri anda sendiri ke kartu ini", "shortcut-autocomplete-emoji": "Pelengkap Otomatis emoji", "shortcut-autocomplete-members": "Autocomplete partisipan", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Waktu", "title": "Judul", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Pelacakan", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Kamu tidak dapat menghapus kartu ini sebelum menghapus kartu tertaut yang telah", "delete-linked-cards-before-this-list": "Kamu tidak dapat menghapus daftar ini sebelum menghapus kartu tertaut yang mengarah ke kartu dalam daftar ini", "hide-checked-items": "Sembunyikan item yang dicentang", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Terjemahan", "text": "Text", "translation-text": "Terjemahan teks", - "show-at-minicard": "Tampilkan di kartu kecil", - "show-checklist-at-minicard": "Tampilkan daftar periksa di kartu kecil", "show-subtasks-field": "Tampilkan bagian tugas bidang", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Mengubah ke markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Ciutkan", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ig.i18n.json b/imports/i18n/data/ig.i18n.json index 165e6100c..22476d20d 100644 --- a/imports/i18n/data/ig.i18n.json +++ b/imports/i18n/data/ig.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/it.i18n.json b/imports/i18n/data/it.i18n.json index 9520910ca..b2e922d94 100644 --- a/imports/i18n/data/it.i18n.json +++ b/imports/i18n/data/it.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s spostato nell'archivio", "activity-attached": "allegato %s a %s", "activity-created": "creato %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "%s creato come campo personalizzato", "activity-excluded": "escluso %s da %s", "activity-imported": "importato %s in %s da %s", @@ -85,10 +86,12 @@ "add-card": "Aggiungi scheda", "add-card-to-top-of-list": "Aggiungi Scheda in cima alla Lista", "add-card-to-bottom-of-list": "Aggiungi Scheda in fondo alla Lista", - "setListWidthPopup-title": "Impostare la larghezza della lista", - "set-list-width": "Impostare la larghezza della lista", - "set-list-width-value": "Larghezza della lista (in pixel)", - "list-width-error-message": "La larghezza della lista deve essere un intero positivo", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Impostare l'altezza della corsia", "set-swimlane-height": "Impostare l'altezza della corsia", "set-swimlane-height-value": "Altezza della corsia (in pixel)", @@ -263,6 +266,9 @@ "checklists": "Checklist", "click-to-star": "Clicca per stellare questa bacheca", "click-to-unstar": "Clicca per togliere la stella da questa bacheca.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Appunti o trascinamento", "close": "Chiudi", "close-board": "Chiudi bacheca", @@ -294,6 +300,7 @@ "color-white": "bianco", "color-yellow": "giallo", "unset-color": "Non impostato", + "comments": "Comments", "comment": "Commenta", "comment-placeholder": "Scrivi un commento...", "comment-only": "Solo commenti", @@ -376,6 +383,7 @@ "email-sent": "Email inviata", "email-verifyEmail-subject": "Verifica il tuo indirizzo email su __siteName__", "email-verifyEmail-text": "Ciao __user__,\n\nPer verificare il tuo account email, clicca sul link seguente:\n\n__url__\n\nGrazie.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Attiva limite Work In Progress", "error-board-doesNotExist": "Questa bacheca non esiste", "error-board-notAdmin": "Devi essere admin di questa bacheca per poterlo fare", @@ -443,7 +451,7 @@ "advanced-filter-description": "Il filtro avanzato permette di scrivere una stringa contenente i seguenti operatori: == != <= >= && || ( ) Uno spazio è usato come separatore tra gli operatori. Si può filtrare per tutti i campi personalizzati, scrivendo i loro nomi e valori. Per esempio: Campo1 == Valore1. Nota: Se i campi o i valori contengono spazi, è necessario incapsularli all'interno di apici singoli. Per esempio: 'Campo 1' == 'Valore 1'. Per i singoli caratteri di controllo (' \\\\/) che devono essere ignorati, si può usare \\\\. Per esempio: C1 == Campo1 == L'\\\\ho. Si possono anche combinare condizioni multiple. Per esempio: C1 == V1 || C1 ==V2. Di norma tutti gli operatori vengono letti da sinistra a destra. Si può cambiare l'ordine posizionando delle parentesi. Per esempio: C1 == V1 && ( C2 == V2 || C2 == V3) . Inoltre è possibile cercare nei campi di testo usando le espressioni regolari (n.d.t. regex): F1 ==/Tes.*/i", "fullname": "Nome completo", "header-logo-title": "Torna alla pagina delle tue bacheche.", - "hide-system-messages": "Nascondi i messaggi di sistema", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Crea bacheca", "home": "Home", "import": "Importa", @@ -572,6 +580,7 @@ "select-board": "Seleziona bacheca", "set-wip-limit-value": "Seleziona un limite per il massimo numero di attività in questa lista", "setWipLimitPopup-title": "Imposta limite Work In Progress", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assegna te stesso alla scheda corrente", "shortcut-autocomplete-emoji": "Autocompletamento emoji", "shortcut-autocomplete-members": "Autocompletamento membri", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Ci sono schede con tempo impiegato", "time": "Ora", "title": "Titolo", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Monitoraggio", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Non puoi eliminare questa scheda prima di avere eliminato una scheda collegata che ha", "delete-linked-cards-before-this-list": "Non puoi eliminare questa lista prima di avere eliminato le schede collegate che puntano su schede in questa lista", "hide-checked-items": "Nascondi articoli controllati", + "hide-finished-checklist": "Hide finished checklist", "task": "Compito", "create-task": "Crea compito", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Data di creazione (dalla più nuova)", "created-at-oldest-first": "Data di creazione (dalla più vecchia)", "links-heading": "Link", - "hide-system-messages-of-all-users": "Nascondi messaggi di sistema di tutti gli utenti", - "now-system-messages-of-all-users-are-hidden": "Messaggi di sistema di tutti gli utenti nascosti", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Sposta swimlane", "moveSwimlanePopup-title": "Sposta swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Azioni checklist", "moveChecklist": "Sposta checklist", "moveChecklistPopup-title": "Sposta checklist", - "newlineBecomesNewChecklistItem": "Nuove linee diventano elementi della checklist", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copia checklist", "copyChecklistPopup-title": "Copia checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Traduzione", "text": "Testo", "translation-text": "Testo della traduzione", - "show-at-minicard": "Mostra sulla Minicard", - "show-checklist-at-minicard": "Mostra la checklist sulla minicard", "show-subtasks-field": "Mostra campo delle sottoattività", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Converti in markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Comprimi", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index 49fbe4a16..60edd6d3f 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "リスト名を %s に変更しました", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "リストの幅を設定", - "set-list-width": "リストの幅を設定", - "set-list-width-value": "リストの幅(ピクセル)", - "list-width-error-message": "リストの幅は正の整数を入力してください", + "setListWidthPopup-title": "幅を設定", + "set-list-width": "幅を設定", + "set-list-width-value": "最小幅と最大幅を設定(pixel)", + "list-width-error-message": "リストの幅は100以上を指定してください", + "keyboard-shortcuts-enabled": "キーボードショートカットは有効です。クリックすると無効になります。", + "keyboard-shortcuts-disabled": "キーボードショートカットは無効です。クリックすると有効になります。", "setSwimlaneHeightPopup-title": "スイムレーンの高さを設定", "set-swimlane-height": "スイムレーンの高さを設定", "set-swimlane-height-value": "スイムレーンの高さ(ピクセル)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "リスト幅自動調整が無効です。クリックすると有効になります。", + "click-to-disable-auto-width": "リスト幅自動調整が有効です。クリックすると無効になります。", + "auto-list-width": "リスト幅自動調整", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "コメント", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "縦スクロールバーを有効にする", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "高度なフィルタでは次のような演算子を使用できます:== != <= >= && || ( )\n半角スペースは演算子の区切り文字として使用します。\n\nフィールド名や値を使用したフィルタが可能です。\n例:Field1 == Value1\n\n注意:フィールド名や値にスペースが含まれる場合、それらをシングルクォーテーションで囲む必要があります。\n例:'Field 1' == 'Value 1'\n\n単体の制御文字 (' \\\\/) は無視されますので、\\\\を使用することができます。\n例:Field1 == I\\\\'m\n\n複数の条件を組み合わせることもできます。\n例:F1 == V1 || F1 == V2\n\n基本的にすべての演算子は左から右に評価されます。\n丸カッコを使用することで順序を変更できます。\n例:F1 == V1 && ( F2 == V2 || F2 == V3 )\n\nテキストフィールドでは正規表現を使用した検索もできます。\n例:F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "アクティビティを表示", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "現在のカードに自分を追加", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "カードの割り当て先1-9を切り替える(ボードへの追加順)", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "完了したチェックリストを非表示", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "すべてのボードでボードアクティビティを表示しない", + "now-activities-of-all-boards-are-hidden": "全ボードのすべてのアクティビティが非表示にされました", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "テキストの各行がチェックリスト項目の1つになります", + "newLineNewItem": "テキストの1行が1チェックリスト項目です", + "newlineBecomesNewChecklistItemOriginOrder": "テキストの各行がチェックリスト項目および元のオーダの1つになります", + "originOrder": "元のオーダ", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "翻訳", "text": "テキスト", "translation-text": "翻訳テキスト", - "show-at-minicard": "ミニカードで表示", - "show-checklist-at-minicard": "ミニカードでチェックリストを表示", "show-subtasks-field": "サブタスクフィールドを表示", + "show-week-of-year": "年内の暦週番号(ISO 8601準拠)", "convert-to-markdown": "マークダウンに変換", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "ボードJSONファイルを含む zip ファイルと、添付ファイルを含むボード名サブディレクトリを追加する", + "collapse": "Collapse", + "uncollapse": "展開", + "hideCheckedChecklistItems": "チェック済みチェックリスト項目を非表示", + "hideAllChecklistItems": "すべてのチェックリスト項目を非表示", + "support": "サポート", + "supportPopup-title": "サポート", + "accessibility-page-enabled": "アクセシビリティページが有効", + "accessibility-title": "アクセシビリティトピック", + "accessibility-content": "アクセシビリティコンテンツ" } diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index 3c59e4034..bf2161a68 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%sをアーカイブしました", "activity-attached": "%s を %s に添付しました", "activity-created": "%s を作成しました", + "activity-changedListTitle": "リスト名を %s に変更しました", "activity-customfield-created": "カスタムフィールド %s を作成しました", "activity-excluded": "%s を %s から除外しました", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "カードを追加", "add-card-to-top-of-list": "カードをリストの先頭に追加", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "リストの幅を設定", - "set-list-width": "リストの幅を設定", - "set-list-width-value": "リストの幅(ピクセル)", - "list-width-error-message": "リストの幅は正の整数を入力してください", + "setListWidthPopup-title": "幅を設定", + "set-list-width": "幅を設定", + "set-list-width-value": "最小幅と最大幅を設定(pixel)", + "list-width-error-message": "リストの幅は100以上を指定してください", + "keyboard-shortcuts-enabled": "キーボードショートカットは有効です。クリックすると無効になります。", + "keyboard-shortcuts-disabled": "キーボードショートカットは無効です。クリックすると有効になります。", "setSwimlaneHeightPopup-title": "スイムレーンの高さを設定", "set-swimlane-height": "スイムレーンの高さを設定", "set-swimlane-height-value": "スイムレーンの高さ(ピクセル)", @@ -263,6 +266,9 @@ "checklists": "チェックリスト", "click-to-star": "ボードにスターをつける", "click-to-unstar": "ボードからスターを外す", + "click-to-enable-auto-width": "リスト幅自動調整が無効です。クリックすると有効になります。", + "click-to-disable-auto-width": "リスト幅自動調整が有効です。クリックすると無効になります。", + "auto-list-width": "リスト幅自動調整", "clipboard": "クリップボードもしくはドラッグ&ドロップ", "close": "閉じる", "close-board": "ボードを閉じる", @@ -294,6 +300,7 @@ "color-white": "白", "color-yellow": "黄", "unset-color": "設定しない", + "comments": "コメント", "comment": "コメント", "comment-placeholder": "コメントを書く", "comment-only": "コメントのみ", @@ -376,6 +383,7 @@ "email-sent": "メールを送信しました", "email-verifyEmail-subject": "あなたの __siteName__ のメールアドレスを確認する", "email-verifyEmail-text": "こんにちは、__user__さん。\n\nメールアドレスを認証するために、以下のリンクをクリックしてください。\n\n__url__\n\nよろしくお願いします。", + "enable-vertical-scrollbars": "縦スクロールバーを有効にする", "enable-wip-limit": "仕掛中制限を有効化", "error-board-doesNotExist": "ボードがありません", "error-board-notAdmin": "操作にはボードの管理者権限が必要です", @@ -443,7 +451,7 @@ "advanced-filter-description": "高度なフィルタでは次のような演算子を使用できます:== != <= >= && || ( )\n半角スペースは演算子の区切り文字として使用します。\n\nフィールド名や値を使用したフィルタが可能です。\n例:Field1 == Value1\n\n注意:フィールド名や値にスペースが含まれる場合、それらをシングルクォーテーションで囲む必要があります。\n例:'Field 1' == 'Value 1'\n\n単体の制御文字 (' \\\\/) は無視されますので、\\\\を使用することができます。\n例:Field1 == I\\\\'m\n\n複数の条件を組み合わせることもできます。\n例:F1 == V1 || F1 == V2\n\n基本的にすべての演算子は左から右に評価されます。\n丸カッコを使用することで順序を変更できます。\n例:F1 == V1 && ( F2 == V2 || F2 == V3 )\n\nテキストフィールドでは正規表現を使用した検索もできます。\n例:F1 == /Tes.*/i", "fullname": "フルネーム", "header-logo-title": "自分のボードページに戻る。", - "hide-system-messages": "システムメッセージを隠す", + "show-activities": "アクティビティを表示", "headerBarCreateBoardPopup-title": "ボードの作成", "home": "ホーム", "import": "インポート", @@ -572,6 +580,7 @@ "select-board": "ボードを選択", "set-wip-limit-value": "このリスト中のタスクの最大数を設定", "setWipLimitPopup-title": "仕掛中制限設定", + "shortcut-add-self": "現在のカードに自分を追加", "shortcut-assign-self": "自分をこのカードに割り当てる", "shortcut-autocomplete-emoji": "絵文字の補完", "shortcut-autocomplete-members": "メンバーの補完", @@ -601,6 +610,7 @@ "has-spenttime-cards": "作業時間ありのカード", "time": "時間", "title": "タイトル", + "toggle-assignees": "カードの割り当て先1-9を切り替える(ボードへの追加順)", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "複数選択でラベル1-9を削除します", "tracking": "トラッキング", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "カード内にある、リンクされているカードを削除しなければ、このカードは削除できません", "delete-linked-cards-before-this-list": "リスト内にある、他のカードを参照しているカードを削除しなければ、このリストは削除できません", "hide-checked-items": "チェックした項目を隠す", + "hide-finished-checklist": "完了したチェックリストを非表示", "task": "タスク", "create-task": "タスクを作成", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "作成日(新しいものから)", "created-at-oldest-first": "作成日(古いものから)", "links-heading": "リンク", - "hide-system-messages-of-all-users": "全ユーザーのシステムメッセージを非表示にする", - "now-system-messages-of-all-users-are-hidden": "現在全ユーザーのシステムメッセージが非表示になっています", + "hide-activities-of-all-boards": "すべてのボードでボードアクティビティを表示しない", + "now-activities-of-all-boards-are-hidden": "全ボードのすべてのアクティビティが非表示にされました", "move-swimlane": "スイムレーンを移動する", "moveSwimlanePopup-title": "スイムレーンを移動する", "custom-field-stringtemplate": "文字列テンプレート", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "チェックリストの操作", "moveChecklist": "チェックリストを移動", "moveChecklistPopup-title": "チェックリストを移動", - "newlineBecomesNewChecklistItem": "追加行が新しいチェックリスト項目になります", + "newlineBecomesNewChecklistItem": "テキストの各行がチェックリスト項目の1つになります", + "newLineNewItem": "テキストの1行が1チェックリスト項目です", + "newlineBecomesNewChecklistItemOriginOrder": "テキストの各行がチェックリスト項目および元のオーダの1つになります", + "originOrder": "元のオーダ", "copyChecklist": "チェックリストをコピー", "copyChecklistPopup-title": "チェックリストをコピー", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "翻訳", "text": "テキスト", "translation-text": "翻訳テキスト", - "show-at-minicard": "ミニカードで表示", - "show-checklist-at-minicard": "ミニカードでチェックリストを表示", "show-subtasks-field": "サブタスクフィールドを表示", + "show-week-of-year": "年内の暦週番号(ISO 8601準拠)", "convert-to-markdown": "マークダウンに変換", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "ボードJSONファイルを含む zip ファイルと、添付ファイルを含むボード名サブディレクトリを追加する", + "collapse": "折りたたむ", + "uncollapse": "展開", + "hideCheckedChecklistItems": "チェック済みチェックリスト項目を非表示", + "hideAllChecklistItems": "すべてのチェックリスト項目を非表示", + "support": "サポート", + "supportPopup-title": "サポート", + "accessibility-page-enabled": "アクセシビリティページが有効", + "accessibility-title": "アクセシビリティトピック", + "accessibility-content": "アクセシビリティコンテンツ" } diff --git a/imports/i18n/data/ka.i18n.json b/imports/i18n/data/ka.i18n.json index be287f50e..a77558487 100644 --- a/imports/i18n/data/ka.i18n.json +++ b/imports/i18n/data/ka.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "მიბმულია %s %s-დან", "activity-created": "შექმნილია %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "ბარათის დამატება", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "კატალოგი", "click-to-star": "დააჭირეთ დაფის ვარსკვლავით მოსანიშნად", "click-to-unstar": "დააკლიკეთ დაფიდან ვარსკვლავის მოსახსნელად.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard ან drag & drop", "close": "დახურვა", "close-board": "დაფის დახურვა", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "ყვითელი", "unset-color": "Unset", + "comments": "Comments", "comment": "კომენტარი", "comment-placeholder": "დაწერეთ კომენტარი", "comment-only": "მხოლოდ კომენტარები", @@ -376,6 +383,7 @@ "email-sent": "ელ.ფოსტა გაგზავნილია", "email-verifyEmail-subject": "შეამოწმეთ ელ.ფოსტის მისამართი __siteName-ზე__", "email-verifyEmail-text": "გამარჯობა __user__,\n\nანგარიშის ელ.ფოსტის შესამოწმებლად დააკლიკეთ ქვედა ბმულს.\n\n__url__\n\nმადლობა.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "გავააქტიუროთ WIP ლიმიტი", "error-board-doesNotExist": "მსგავსი დაფა არ არსებობს", "error-board-notAdmin": "ამის გასაკეთებლად საჭიროა იყოთ დაფის ადმინისტრატორი", @@ -443,7 +451,7 @@ "advanced-filter-description": "გაფართოებული ფილტრაცია, უფლებას გაძლევთ დაწეროთ მწკრივი რომლებიც შეიცავენ შემდეგ ოპერაციებს : == != <= >= && || ( ) space გამოიყენება როგორც გამმიჯნავი ოპერაციებს შორის. თქვენ შეგიძლიათ გაფილტროთ მომხმარებლის ველი მათი სახელებისა და ღირებულებების მიხედვით. მაგალითად: Field1 == Value1. გაითვალისწინეთ რომ თუ ველი ან ღირებულება შეიცავს space-ს თქვენ დაგჭირდებათ მათი მოთავსება ერთ ციტატაში მაგ: 'Field 1' == 'Value 1'. ერთი კონტროლის სიმბოლოებისთვის (' \\\\/) გამოტოვება, შეგიძლიათ გამოიყენოთ \\\\. მაგ: Field1 == I\\\\'m. აგრეთვე თქვენ შეგიძლიათ შეურიოთ რამოდენიმე კომბინაცია. მაგალითად: F1 == V1 || F1 == V2. როგორც წესი ყველა ოპერაცია ინტერპრეტირებულია მარცხნიდან მარჯვნივ. თქვენ შეგიძლიათ შეცვალოთ რიგითობა ფრჩხილების შეცვლით მაგალითად: F1 == V1 && ( F2 == V2 || F2 == V3 ). აგრეთვე შეგიძლიათ მოძებნოთ ტექსტის ველები რეგექსით F1 == /Tes.*/i", "fullname": "სახელი და გვარი", "header-logo-title": "დაბრუნდით უკან დაფების გვერდზე.", - "hide-system-messages": "დამალეთ სისტემური შეტყობინებები", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "დაფის შექმნა", "home": "სახლი", "import": "იმპორტირება", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "დააყენეთ შეზღუდვა დავალებების მაქსიმალურ რაოდენობაზე", "setWipLimitPopup-title": "დააყენეთ WIP ლიმიტი", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "მონიშნეთ საკუთარი თავი აღნიშნულ ბარათზე", "shortcut-autocomplete-emoji": "emoji-ის ავტომატური შევსება", "shortcut-autocomplete-members": "მომხმარებლების ავტომატური შევსება", @@ -601,6 +610,7 @@ "has-spenttime-cards": "აქვს გახარჯული დროის ბარათები", "time": "დრო", "title": "სათაური", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "მონიტორინგი", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "ტექსტი", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/km.i18n.json b/imports/i18n/data/km.i18n.json index 9606df9b0..85b7fe364 100644 --- a/imports/i18n/data/km.i18n.json +++ b/imports/i18n/data/km.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "មានកាតដែលបានចំណាយពេល", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ko-KR.i18n.json b/imports/i18n/data/ko-KR.i18n.json index 1dd00ad55..f8aae6451 100644 --- a/imports/i18n/data/ko-KR.i18n.json +++ b/imports/i18n/data/ko-KR.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "목록 너비 설정", - "set-list-width": "목록 너비 설정", - "set-list-width-value": "목록 너비 (픽셀)", - "list-width-error-message": "목록 너비는 양수여야 합니다", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Swimlane 높이 설정", "set-swimlane-height": "Swimlane 높이 설정", "set-swimlane-height-value": "Swimlane 높이 (픽셀)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "번역", "text": "Text", "translation-text": "번역 문구", - "show-at-minicard": "미니카드에 보이기", - "show-checklist-at-minicard": "미니카드에 확인목록 보이기", "show-subtasks-field": "하위할일 항목 보이기", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ko.i18n.json b/imports/i18n/data/ko.i18n.json index b1b893235..b87872f87 100644 --- a/imports/i18n/data/ko.i18n.json +++ b/imports/i18n/data/ko.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s가 저장소로 이동되었습니다.", "activity-attached": "%s를 %s에 첨부함", "activity-created": "%s 생성됨", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "생성된 사용자 정의 필드 %s", "activity-excluded": "%s를 %s에서 제외함", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "카드 추가", "add-card-to-top-of-list": "리스트 맨앞에 카드를 추가함", "add-card-to-bottom-of-list": "리스트 맨뒤에 카드를 추가함", - "setListWidthPopup-title": "목록 너비 설정", - "set-list-width": "목록 너비 설정", - "set-list-width-value": "목록 너비 (픽셀)", - "list-width-error-message": "목록 너비는 양수여야 합니다", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Swimlane 높이 설정", "set-swimlane-height": "Swimlane 높이 설정", "set-swimlane-height-value": "Swimlane 높이 (픽셀)", @@ -263,6 +266,9 @@ "checklists": "체크리스트", "click-to-star": "보드에 별 추가.", "click-to-unstar": "보드에 별 삭제.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "클립보드 또는 드래그 앤 드롭", "close": "닫기", "close-board": "보드 닫기", @@ -294,6 +300,7 @@ "color-white": "흰색", "color-yellow": "옐로우", "unset-color": "Unset", + "comments": "Comments", "comment": "댓글", "comment-placeholder": "댓글 입력", "comment-only": "댓글만 입력 가능", @@ -376,6 +383,7 @@ "email-sent": "이메일 전송", "email-verifyEmail-subject": "이메일 인증: __siteName__", "email-verifyEmail-text": "안녕하세요. __user__님,\n\n당신의 계정과 이메일을 활성하려면 아래 링크를 클릭하십시오.\n\n__url__\n\n감사합니다.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "WIP 제한 활성화", "error-board-doesNotExist": "보드가 없습니다.", "error-board-notAdmin": "이 작업은 보드의 관리자만 실행할 수 있습니다.", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "실명", "header-logo-title": "보드 페이지로 돌아가기.", - "hide-system-messages": "시스템 메시지 숨기기", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "보드 생성", "home": "홈", "import": "가져오기", @@ -572,6 +580,7 @@ "select-board": "보드 선택", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "현재 카드에 자신을 지정하세요.", "shortcut-autocomplete-emoji": "이모티콘 자동완성", "shortcut-autocomplete-members": "멤버 자동완성", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "시간", "title": "제목", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "카드에 대해 1-9 라벨로 전환합니다. 복수-선택은 1-9 라벨을 추가합니다", "remove-labels-multiselect": "복수-선택은 1-9 라벨을 제거합니다", "tracking": "추적", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "선택된 항목 숨기기", + "hide-finished-checklist": "Hide finished checklist", "task": "과제", "create-task": "과제 생성", "ok": "확인", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "생성 (새로운 것이 먼저)", "created-at-oldest-first": "생성 (오래된 것이 먼저)", "links-heading": "링크", - "hide-system-messages-of-all-users": "모든 사용자의 시스템 메시지 숨기기", - "now-system-messages-of-all-users-are-hidden": "이제 모든 사용자의 시스템 메시지가 숨겨졌습니다", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "문자열 템플릿", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "확인목록 동작", "moveChecklist": "체크리스트 이동", "moveChecklistPopup-title": "체크리스트 이동", - "newlineBecomesNewChecklistItem": "줄바꿈이 새 확인목록 항목이 됨", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "체크리스트 복사", "copyChecklistPopup-title": "체크리스트 복사", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "번역", "text": "텍스트", "translation-text": "번역 문구", - "show-at-minicard": "미니카드에 보이기", - "show-checklist-at-minicard": "미니카드에 확인목록 보이기", "show-subtasks-field": "하위할일 항목 보이기", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "접기", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/lt.i18n.json b/imports/i18n/data/lt.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/lt.i18n.json +++ b/imports/i18n/data/lt.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/lv.i18n.json b/imports/i18n/data/lv.i18n.json index 3c67d962c..650821321 100644 --- a/imports/i18n/data/lv.i18n.json +++ b/imports/i18n/data/lv.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s pārvietoja uz arhīvu", "activity-attached": "pievienoja %s pie %s", "activity-created": "izveidoja%s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "izveidoja lauku %s", "activity-excluded": "izslēdza%s no%s", "activity-imported": "importēja %s iekš %s no %s", @@ -85,10 +86,12 @@ "add-card": "Pievienot kartiņu", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Kontrolsaraksti", "click-to-star": "Spied lai atzīmēt ar zvaigzni.", "click-to-unstar": "Spied lai noņemtu zvaigzni.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Starpliktuve vai drag & drop", "close": "Aizvērt", "close-board": "Aizvērt dēli", @@ -294,6 +300,7 @@ "color-white": "balts", "color-yellow": "dzeltens", "unset-color": "Atiestatīt", + "comments": "Comments", "comment": "Komentēt", "comment-placeholder": "Rakstīt komentāru", "comment-only": "Tikai komentēt", @@ -376,6 +383,7 @@ "email-sent": "E-pasts nosūtīts", "email-verifyEmail-subject": "Apstipriniet savu e-pasta adresi priekš __siteName__", "email-verifyEmail-text": "Sveiki, __user__,\n\nLai apstiprinātu savu e-pasta adresi, vienkārši spiediet uz saites zemāk.\n\n__url__\n\nPaldies.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Ieslēgt WIP limitu", "error-board-doesNotExist": "Šis dēlis neeksistē", "error-board-notAdmin": "Jums jābūt dēļa administratoram, lai veiktu šo darbību", @@ -443,7 +451,7 @@ "advanced-filter-description": "Papildu filtri ļauj meklēt ar šādiem operatoriem: == != <= >= && || ( ) Starp operatoriem jāatstāj atstarpe. Lai filtrētu papildlaukus, norādiet tā nosaukumu un vērtību. Piemērs: Lauks1 == Vērtība1. Piezīme: ja lauki vai vērtības satur atstarpes, ievietojiet tekstu pēdiņās. Piemērs: 'Lauks 1' == 'Vērtība 1'. Lai ievadītu kontrolsimbolus (pēdiņās un slīpsvītras), pirms tiem ievadiet \\\\. Piemērs: Lauks1 == 'Rībēj\\\\' Rīga'. Papildus var kombinēt vairākus nosacījumus. Piemērs: L1 == V1 || L1 == V2. Parasti operatori tiek interpretēti no kreisās uz labo pusi. Secību var mainīt ar iekavām. Piemērs: L1 == V1 && ( L2 == V2 || L2 == V3 ). Papildus teksta laukus var filtrēt ar RegEx: L1 == /Tes.*/i", "fullname": "Pilnais vārds un uzvārds", "header-logo-title": "Atpakaļ uz jūsu dēļiem", - "hide-system-messages": "Slēpt darbības", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Izveidot dēli", "home": "Sākums", "import": "Importēt", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Iestatīt maksimālo skaitu ar kartiņām šajā sarakstā", "setWipLimitPopup-title": "Uzlikt WIP ierobežojumu", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Pievienot sevi atvērtajai kartiņai", "shortcut-autocomplete-emoji": "Emoji automātiska pabeigšana", "shortcut-autocomplete-members": "Dalībnieku automātiska pabeigšana", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Kartiņas ar pavadīto laiku", "time": "Laiks", "title": "Nosaukums", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Sekošana", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Nevar dzēst šo kartiņu pirms priekšteča kartiņas dzēšnas, kurai", "delete-linked-cards-before-this-list": "Nevar dzēst sarakstu pirms saistīto kartiņu, kas norada uz šī saraksta kartiņām, dzēšanas", "hide-checked-items": "Slēpt atzīmētos elementus", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Teksts", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Sakļaut", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/mk.i18n.json b/imports/i18n/data/mk.i18n.json index f2a3ed906..1dc8bd784 100644 --- a/imports/i18n/data/mk.i18n.json +++ b/imports/i18n/data/mk.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s е преместена во Архива", "activity-attached": "прикачи %s към %s", "activity-created": "създаде %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "създаде собствено поле %s", "activity-excluded": "изключи %s от %s", "activity-imported": "импортира %s в/във %s от %s", @@ -85,10 +86,12 @@ "add-card": "Додади Картичка", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Списъци със задачи", "click-to-star": "Click to star this board.", "click-to-unstar": "Натиснете, за да премахнете това табло от любими.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Клипборда или с драг & дроп", "close": "Затвори", "close-board": "Затвори Табла", @@ -294,6 +300,7 @@ "color-white": "бяло", "color-yellow": "жълто", "unset-color": "Unset", + "comments": "Comments", "comment": "Коментирај", "comment-placeholder": "Напиши коментар", "comment-only": "Само коментари", @@ -376,6 +383,7 @@ "email-sent": "Имейлът е изпратен", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Включи WIP лимита", "error-board-doesNotExist": "Това табло не съществува", "error-board-notAdmin": "За да направите това трябва да сте администратор на това табло", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Име", "header-logo-title": "Назад към страницата с Вашите табла.", - "hide-system-messages": "Скриване на системните съобщения", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Креирај Табло", "home": "Почетна", "import": "Импорт", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Въведи WIP лимит", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Добави себе си към тази карта", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Има карти с изработено време", "time": "Време", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Следене", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Текст", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/mn.i18n.json b/imports/i18n/data/mn.i18n.json index 9a237a8a9..ce9e320da 100644 --- a/imports/i18n/data/mn.i18n.json +++ b/imports/i18n/data/mn.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Карт нэмэх", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Самбар үүсгэх", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json index 1187579aa..487628b10 100644 --- a/imports/i18n/data/ms-MY.i18n.json +++ b/imports/i18n/data/ms-MY.i18n.json @@ -1,5 +1,5 @@ { - "accept": "Accept", + "accept": "Terima", "act-activity-notify": "Activity Notification", "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "Namakan semula senarai kepada %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Tetapkan Lebar", + "set-list-width": "Tetapkan Lebar", + "set-list-width-value": "Tetapkan lebar minimum dan maksimum (piksel)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -102,20 +105,20 @@ "convertChecklistItemToCardPopup-title": "Convert to Card", "add-cover": "Add cover image to minicard", "add-label": "Add Label", - "add-list": "Add List", + "add-list": "Tambah Senarai", "add-after-list": "Add After List", - "add-members": "Add Members", - "added": "Added", - "addMemberPopup-title": "Members", - "memberPopup-title": "Member Settings", - "admin": "Admin", + "add-members": "Tambah Ahli", + "added": "Ditambah", + "addMemberPopup-title": "Ahli-ahli", + "memberPopup-title": "Tetapan Ahli", + "admin": "Pentadbir", "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", - "admin-announcement": "Announcement", + "admin-announcement": "Pengumuman", "admin-announcement-active": "Active System-Wide Announcement", - "admin-announcement-title": "Announcement from Administrator", - "all-boards": "All Boards", - "and-n-other-card": "And __count__ other card", - "and-n-other-card_plural": "And __count__ other cards", + "admin-announcement-title": "Pengumuman dari Pentadbir", + "all-boards": "Semua Papan", + "and-n-other-card": "Dan __count__ kad lain", + "and-n-other-card_plural": "Dan __count__ kad-kad lain", "apply": "Apply", "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.", "app-try-reconnect": "Try to reconnect.", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Tunjukkan Aktiviti", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,25 +966,26 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", "organizations": "Organizations", "teams": "Teams", - "displayName": "Display Name", - "shortName": "Short Name", + "displayName": "Nama Paparan", + "shortName": "Nama Ringkas", "autoAddUsersWithDomainName": "Automatically add users with the domain name", - "website": "Website", + "website": "Laman Sesawang", "person": "Person", - "my-cards": "My Cards", - "card": "Card", - "list": "List", - "board": "Board", + "my-cards": "Kad Saya", + "card": "Kad", + "list": "Senarai", + "board": "Papan", "context-separator": "/", "myCardsViewChange-title": "My Cards View", "myCardsViewChangePopup-title": "My Cards View", - "myCardsViewChange-choice-boards": "Boards", - "myCardsViewChange-choice-table": "Table", + "myCardsViewChange-choice-boards": "Papan", + "myCardsViewChange-choice-table": "Jadual", "myCardsSortChange-title": "My Cards Sort", "myCardsSortChangePopup-title": "My Cards Sort", "myCardsSortChange-choice-board": "By Board", @@ -982,8 +993,8 @@ "dueCards-title": "Due Cards", "dueCardsViewChange-title": "Due Cards View", "dueCardsViewChangePopup-title": "Due Cards View", - "dueCardsViewChange-choice-me": "Me", - "dueCardsViewChange-choice-all": "All Users", + "dueCardsViewChange-choice-me": "Saya", + "dueCardsViewChange-choice-all": "Semua Pengguna", "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", "broken-cards": "Broken Cards", "board-title-not-found": "Board '%s' not found.", @@ -993,27 +1004,27 @@ "label-color-not-found": "Label color %s not found.", "user-username-not-found": "Username '%s' not found.", "comment-not-found": "Card with comment containing text '%s' not found.", - "org-name-not-found": "Organization '%s' not found.", - "team-name-not-found": "Team '%s' not found.", - "globalSearch-title": "Search All Boards", - "no-cards-found": "No Cards Found", - "one-card-found": "One Card Found", - "n-cards-found": "%s Cards Found", + "org-name-not-found": "Organisasi '%s' tidak ditemui.", + "team-name-not-found": "Pasukan '%s' tidak ditemui.", + "globalSearch-title": "Cari di Semua Papan", + "no-cards-found": "Tiada Kad Ditemui", + "one-card-found": "Satu Kad Ditemui", + "n-cards-found": "%s Kad Ditemui", "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", - "operator-board": "board", - "operator-board-abbrev": "b", + "operator-board": "papan", + "operator-board-abbrev": "p", "operator-swimlane": "swimlane", "operator-swimlane-abbrev": "s", - "operator-list": "list", - "operator-list-abbrev": "l", + "operator-list": "senarai", + "operator-list-abbrev": "s", "operator-label": "label", "operator-label-abbrev": "#", - "operator-user": "user", + "operator-user": "pengguna", "operator-user-abbrev": "@", - "operator-member": "member", - "operator-member-abbrev": "m", - "operator-assignee": "assignee", - "operator-assignee-abbrev": "a", + "operator-member": "ahli", + "operator-member-abbrev": "a", + "operator-assignee": "pemberi tugas", + "operator-assignee-abbrev": "pt", "operator-creator": "creator", "operator-status": "status", "operator-due": "due", @@ -1022,31 +1033,31 @@ "operator-sort": "sort", "operator-comment": "comment", "operator-has": "has", - "operator-limit": "limit", + "operator-limit": "had", "operator-debug": "debug", "operator-org": "org", "operator-team": "team", "predicate-archived": "archived", "predicate-open": "open", "predicate-ended": "ended", - "predicate-all": "all", + "predicate-all": "semua", "predicate-overdue": "overdue", - "predicate-week": "week", - "predicate-month": "month", - "predicate-quarter": "quarter", - "predicate-year": "year", + "predicate-week": "minggu", + "predicate-month": "bulan", + "predicate-quarter": "suku", + "predicate-year": "tahun", "predicate-due": "due", "predicate-modified": "modified", "predicate-created": "created", "predicate-attachment": "attachment", - "predicate-description": "description", + "predicate-description": "huraian", "predicate-checklist": "checklist", - "predicate-start": "start", - "predicate-end": "end", + "predicate-start": "mula", + "predicate-end": "akhir", "predicate-assignee": "assignee", "predicate-member": "member", - "predicate-public": "public", - "predicate-private": "private", + "predicate-public": "umum", + "predicate-private": "peribadi", "predicate-selector": "selector", "predicate-projection": "projection", "operator-unknown-error": "%s is not an operator", @@ -1056,10 +1067,10 @@ "operator-has-invalid": "%s is not a valid existence check", "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", "operator-debug-invalid": "%s is not a valid debug predicate", - "next-page": "Next Page", - "previous-page": "Previous Page", - "heading-notes": "Notes", - "globalSearch-instructions-heading": "Search Instructions", + "next-page": "Halaman Seterusnya", + "previous-page": "Halaman Sebelumnya", + "heading-notes": "Nota-nota", + "globalSearch-instructions-heading": "Cari arahan", "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", "globalSearch-instructions-operators": "Available operators:", "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", @@ -1095,7 +1106,7 @@ "globalSearch-instructions-notes-5": "By default archived cards are not searched.", "link-to-search": "Link to this search", "excel-font": "Arial", - "number": "Number", + "number": "Nombor", "label-colors": "Label Colors", "label-names": "Label Names", "archived-at": "archived at", @@ -1109,16 +1120,16 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", "custom-field-stringtemplate-separator": "Separator (use or   for a space)", "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", - "creator": "Creator", - "creator-on-minicard": "Creator on minicard", + "creator": "Pencipta", + "creator-on-minicard": "Pencipta pada kad mini", "filesReportTitle": "Files Report", "reports": "Reports", "rulesReportTitle": "Rules Report", @@ -1141,27 +1152,27 @@ "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", "subject": "Subject", - "details": "Details", + "details": "Maklumat", "carbon-copy": "Carbon Copy (Cc:)", - "ticket": "Ticket", - "tickets": "Tickets", - "ticket-number": "Ticket Number", - "open": "Open", + "ticket": "Tiket", + "tickets": "Tiket-tiket", + "ticket-number": "Nombor Tiket", + "open": "Dibuka", "pending": "Pending", - "closed": "Closed", - "resolved": "Resolved", - "cancelled": "Cancelled", - "history": "History", + "closed": "Ditutup", + "resolved": "Selesai", + "cancelled": "Batalkan", + "history": "Sejarah", "request": "Request", "requests": "Requests", "help-request": "Help Request", "editCardSortOrderPopup-title": "Change Sorting", - "cardDetailsPopup-title": "Card Details", - "add-teams": "Add teams", + "cardDetailsPopup-title": "Maklumat Kad", + "add-teams": "Tambahkan Kumpulan", "add-teams-label": "Added teams are displayed below:", "remove-team-from-table": "Are you sure you want to remove this team from the board ?", - "confirm-btn": "Confirm", - "remove-btn": "Remove", + "confirm-btn": "Sahkan", + "remove-btn": "Hapus", "filter-card-title-label": "Filter by card title", "invite-people-success": "Invitation to register sent with success", "invite-people-error": "Error while sending invitation to register", @@ -1189,11 +1200,14 @@ "custom-legal-notice-link-url": "Custom legal notice page URL", "acceptance_of_our_legalNotice": "By continuing, you accept our", "legalNotice": "legal notice", - "copied": "Copied!", + "copied": "Disalin!", "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "aturan asal", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1209,21 +1223,21 @@ "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", - "path": "Path", - "version-name": "Version-Name", - "size": "Size", - "storage": "Storage", - "action": "Action", - "board-title": "Board Title", - "attachmentRenamePopup-title": "Rename", - "uploading": "Uploading", - "remaining_time": "Remaining time", + "path": "Haluan", + "version-name": "Versi-Nama", + "size": "Saiz", + "storage": "Simpanan", + "action": "Tindakan", + "board-title": "Tajuk Papan", + "attachmentRenamePopup-title": "Namakan Semula", + "uploading": "Memuat Naik", + "remaining_time": "Masa yang tersisa", "speed": "Speed", - "progress": "Progress", - "password-again": "Password (again)", - "if-you-already-have-an-account": "If you already have an account", - "register": "Register", - "forgot-password": "Forgot password", + "progress": "Perkembangan", + "password-again": "Kata laluan (semula)", + "if-you-already-have-an-account": "Jika anda sudah mempunyai akaun", + "register": "Daftar", + "forgot-password": "Lupa kata laluan", "minicardDetailsActionsPopup-title": "Card Details", "Mongo_sessions_count": "Mongo sessions count", "change-visibility": "Change Visibility", @@ -1239,12 +1253,20 @@ "newTranslationPopup-title": "New custom translation string", "editTranslationPopup-title": "Edit custom translation string", "settingsTranslationPopup-title": "Delete this custom translation string?", - "translation": "Translation", - "text": "Text", - "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", + "translation": "Terjemahan", + "text": "Teks", + "translation-text": "Teks terjemahan", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ms.i18n.json b/imports/i18n/data/ms.i18n.json index 725f8f71c..26ff502f0 100644 --- a/imports/i18n/data/ms.i18n.json +++ b/imports/i18n/data/ms.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%spindah kepada Arkib", "activity-attached": "lampirkan %skepada %s", "activity-created": "cipta %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Senarai semak", "click-to-star": "Klik untuk beri bintang", "click-to-unstar": "Klik untuk hapus bintang", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "papanklip atau seret-buang", "close": "Tutup", "close-board": "Tutup Papan", @@ -294,6 +300,7 @@ "color-white": "putih", "color-yellow": "kuning", "unset-color": "tiada tetapan", + "comments": "Comments", "comment": "Komen", "comment-placeholder": "Tulis Komen", "comment-only": "hanya komen", @@ -376,6 +383,7 @@ "email-sent": "Emel dihantar", "email-verifyEmail-subject": "Sila sahkan emel anda di __siteName__", "email-verifyEmail-text": "Salam Sejahtera __user__,\n\nUntuk mengesahkan akaun email anda, hanya perlu klik pautan di bawah.\n\n__url__\n\nTerima kasih.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Hidupkan Had WIP", "error-board-doesNotExist": "Papan tidak wujud", "error-board-notAdmin": "Anda perlu menjadi Admin Papan untuk tindakan itu", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Nama Penuh", "header-logo-title": "Kembali kepada laman Papan", - "hide-system-messages": "Sembunyikan Makluman Sistem", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Cipta Papan", "home": "Utama", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Pilih Papan", "set-wip-limit-value": "Set had maksimum untuk bilangan tugas pada senarai ini", "setWipLimitPopup-title": "Set had WIP", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Tugaskan diri sendiri pada kad ini.", "shortcut-autocomplete-emoji": "Emoji autolengkap", "shortcut-autocomplete-members": "Ahli autolengkap", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Ada kad luang masa", "time": "Masa", "title": "Tajuk", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Togol label 1-9 untuk kad. Pelbagai-pilihan tambah label 1-9", "remove-labels-multiselect": "Pelbagai-pilihan buang labem 1-9", "tracking": "Jejak", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Tarikh dicipta (dari yang terbaru)", "created-at-oldest-first": "Tarikh dicipta (dari yang terawal)", "links-heading": "Pautan", - "hide-system-messages-of-all-users": "Sembunyikan pesanan sistem untuk semua pengguna", - "now-system-messages-of-all-users-are-hidden": "Sekarang, pesanan sistem untuk semua pengguna disembunyikan.", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Pindah aliranrenang", "moveSwimlanePopup-title": "Pindah aliranrenang", "custom-field-stringtemplate": "Templat rentetan", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Teks", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Buka", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/nb.i18n.json b/imports/i18n/data/nb.i18n.json index d4546e85c..e65a1a5df 100644 --- a/imports/i18n/data/nb.i18n.json +++ b/imports/i18n/data/nb.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s flyttet til Arkivet", "activity-attached": "la %s til %s", "activity-created": "opprettet %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "Opprettet tilpasset felt%s", "activity-excluded": "ekskludert %s fra %s", "activity-imported": "importert %s til %s fra %s", @@ -85,10 +86,12 @@ "add-card": "Legg til Kort", "add-card-to-top-of-list": "Legg til Kort på Toppen av Listen", "add-card-to-bottom-of-list": "Legg til Kort på Bunnen av Listen", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Sjekklister", "click-to-star": "Favorittmerke Tavlen", "click-to-unstar": "Fjern favorittmerke Tavlen", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Utklippstavle eller Dra og Slipp", "close": "Lukk", "close-board": "Lukk Tavle", @@ -294,6 +300,7 @@ "color-white": "hvit", "color-yellow": "gul", "unset-color": "Slå av", + "comments": "Comments", "comment": "Lagre", "comment-placeholder": "Skriv kommentar", "comment-only": "Kun kommentar", @@ -376,6 +383,7 @@ "email-sent": "E-post sendt", "email-verifyEmail-subject": "Verifiser din e-postadresse på __siteName__", "email-verifyEmail-text": "Hei __user__,\n\nFor å verifisere e-postsdressen din, klikk på lenken under.\n\n__url__\n\nTakk.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Aktiver WIP-begrensning", "error-board-doesNotExist": "Denne tavlen finnes ikke", "error-board-notAdmin": "Du må være administrator for denne tavlen for å gjøre dette", @@ -443,7 +451,7 @@ "advanced-filter-description": "Avansert filter tillater skriving av søkestrenger med følgende operatorer:\n== != <= >= && || ( ) der et mellomrom benyttes som separatorer mellom operatorer.\nDu kan filtrere på alle tilpassede felt ved å skrive navn og verdier, for eksempel: Felt1 == Verdi1. \nMerknad: Dersom felt eller verdier inneholder mellomrom må disse inkluderes innenfor fnuffer, for eksempel; 'Felt 1' == 'Verdi 1'.\nFor å utelate enkelte karakterer (' \\\\/), kan du benytte \\\\. For eksempel: Field1 == I\\\\'m.\nI tillegg kan du kombinere forskjellige operatorer, for eksempel: F1 == V1 || F1 == V2.\nNormalt tolkes alle operatorene fra venstre til høyre. Du kan endre dette ved bruk av paranteser, for eksempel: F1 == V1 && ( F2 == V2 || F2 == V3 ). Videre kan du søke etter tekstfelt ved bruk av Regex, for eksempel: F1 == /Tes.*/i", "fullname": "Fullt navn", "header-logo-title": "Tilbake til dine tavler", - "hide-system-messages": "Skjul systemmeldinger", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Opprett Tavle", "home": "Hjem", "import": "Importer", @@ -572,6 +580,7 @@ "select-board": "Velg Tavle", "set-wip-limit-value": "Sett maksimalt antall oppgaver i denne listen", "setWipLimitPopup-title": "Sett WIP-begrensning", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Tildel deg selv til dette kortet", "shortcut-autocomplete-emoji": "Autokompletter emoji", "shortcut-autocomplete-members": "Autokompletter medlemmer", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Kort med forbrukt tid", "time": "Tid", "title": "Tittel", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Sporing", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Du kan ikke slette kortet før du har slettet tillinket kort som har", "delete-linked-cards-before-this-list": "Du kan ikke slette listen før du har slettet kort som er linket til kort i denne listen", "hide-checked-items": "Skjul utførte oppgaver", + "hide-finished-checklist": "Hide finished checklist", "task": "Oppgave", "create-task": "Opprett Oppgave", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Opprettet på (Nyeste Først)", "created-at-oldest-first": "Opprettet på (Eldste Først)", "links-heading": "Lenker", - "hide-system-messages-of-all-users": "Skjul systemmeldinger for alle brukere", - "now-system-messages-of-all-users-are-hidden": "Systemmeldinger er nå skjult for alle brukere", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Flytt Svømmebane", "moveSwimlanePopup-title": "Flytt Svømmebane", "custom-field-stringtemplate": "Mal Tekststreng", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Sjekkliste aksjoner", "moveChecklist": "Flytt sjekkliste", "moveChecklistPopup-title": "Flytt sjekkliste", - "newlineBecomesNewChecklistItem": "Ny linje gir nytt sjekklisteobjekt", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Kopier sjekkliste", "copyChecklistPopup-title": "Kopier sjekkliste", "card-show-lists": "Vis liste over kort", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Tekst", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Slå sammen", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/nl-NL.i18n.json b/imports/i18n/data/nl-NL.i18n.json index cef81a753..8d31397ed 100644 --- a/imports/i18n/data/nl-NL.i18n.json +++ b/imports/i18n/data/nl-NL.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s verplaatst naar Archief", "activity-attached": "%s bijgevoegd aan %s", "activity-created": "%s aangemaakt", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "maatwerkveld aangemaakt %s", "activity-excluded": "%s uitgesloten van %s", "activity-imported": "%s geïmporteerd in %s van %s", @@ -85,10 +86,12 @@ "add-card": "Kaart Toevoegen", "add-card-to-top-of-list": "Kaart Boven Aan de Lijst Toevoegen", "add-card-to-bottom-of-list": "Kaart Onder Aan de Lijst Toevoegen", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Klik om het bord als favoriet in te stellen", "click-to-unstar": "Klik om het bord uit favorieten weg te halen", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Vanuit clipboard of sleep het bestand hierheen", "close": "Sluiten", "close-board": "Sluit bord", @@ -294,6 +300,7 @@ "color-white": "wit", "color-yellow": "geel", "unset-color": "Ongedefinieerd", + "comments": "Comments", "comment": "Aantekening", "comment-placeholder": "Schrijf aantekening", "comment-only": "Alleen aantekeningen maken", @@ -376,6 +383,7 @@ "email-sent": "E-mail is verzonden", "email-verifyEmail-subject": "Verifieer je e-mailadres op __siteName__", "email-verifyEmail-text": "Hallo __user__,\n\nOm je e-mail te verifiëren vragen we je om op de link hieronder te klikken.\n\n__url__\n\nBedankt.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Activeer WIP limiet", "error-board-doesNotExist": "Dit bord bestaat niet.", "error-board-notAdmin": "Je moet een administrator zijn van dit bord om dat te doen.", @@ -443,7 +451,7 @@ "advanced-filter-description": "Met het Geavanceerd Filter kun je een tekst schrijven die de volgende operatoren mag bevatten: == != <= >= && || ( ) Een Spatie wordt als scheiding gebruikt tussen de verschillende operatoren. Je kunt filteren op alle Maatwerkvelden door hun namen en waarden in te tikken. Bijvoorbeeld: Veld1 == Waarde1. Let op: Als velden of waarden spaties bevatten dan moet je die tussen enkele aanhalingstekens zetten. Bijvoorbeeld: 'Veld 1' == 'Waarde 1'. Om controle karakters (' \\\\/) over te slaan gebruik je \\\\. Bijvoorbeeld: Veld1 == I\\\\'m. Je kunt ook meerdere condities combineren. Bijvoorbeeld: F1 == V1 || F1 == V2. Normalerwijze worden alle operatoren van links naar rechts verwerkt. Dit kun je veranderen door ronde haken te gebruiken. Bijvoorbeeld: F1 == V1 && ( F2 == V2 || F2 == V3 ). Je kunt ook met regex in tekstvelden zoeken. Bijvoorbeeld: F1 == /Tes.*/i", "fullname": "Volledige naam", "header-logo-title": "Ga terug naar jouw borden pagina.", - "hide-system-messages": "Verberg systeemberichten", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Bord aanmaken", "home": "Voorpagina", "import": "Importeer", @@ -572,6 +580,7 @@ "select-board": "Selecteer Bord", "set-wip-limit-value": "Zet een limiet voor het maximaal aantal taken in deze lijst", "setWipLimitPopup-title": "Zet een WIP limiet", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Voeg jezelf toe aan huidige kaart", "shortcut-autocomplete-emoji": "Emojis automatisch aanvullen", "shortcut-autocomplete-members": "Leden automatisch aanvullen", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Heeft tijd besteed aan kaarten", "time": "Tijd", "title": "Titel", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Schakel labels 1-9 in/uit voor kaart. Multi-selectie voegt labels 1-9 toe.", "remove-labels-multiselect": "Multi-selectie verwijderd labels 1-9", "tracking": "Volgen", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Je kunt deze kaart niet verwijderen voordat de gekoppelde kaart is verwijderd", "delete-linked-cards-before-this-list": "Je kunt deze lijst niet verwijderen voordat de gekoppelde kaarten verwijderd zijn die verwijzen naar kaarten in deze lijst", "hide-checked-items": "Verberg aangevinkte items", + "hide-finished-checklist": "Hide finished checklist", "task": "Taak", "create-task": "Taak aanmaken", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Aangemaakt op (Nieuwste Eerst)", "created-at-oldest-first": "Aangemaakt op (Oudste Eerst)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Verberg systeemberichten voor alle gebruikers", - "now-system-messages-of-all-users-are-hidden": "Systeemberichten zijn nu verborgen voor alle gebruikers", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Verplaats Swimlane", "moveSwimlanePopup-title": "Verplaats Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist acties", "moveChecklist": "Verplaats Checklist", "moveChecklistPopup-title": "Verplaats Checklist", - "newlineBecomesNewChecklistItem": "Nieuwe regel wordt nieuw checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Kopieer Checklist", "copyChecklistPopup-title": "Kopieer Checklist", "card-show-lists": "Kaart Toon Lijsten", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Tekst", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Klap in", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 3ecd6348e..b3a46543a 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s verplaatst naar Archief", "activity-attached": "%s bijgevoegd aan %s", "activity-created": "%s aangemaakt", + "activity-changedListTitle": "lijst hernoemd naar %s", "activity-customfield-created": "maatwerkveld aangemaakt %s", "activity-excluded": "%s uitgesloten van %s", "activity-imported": "%s geïmporteerd in %s van %s", @@ -85,10 +86,12 @@ "add-card": "Kaart Toevoegen", "add-card-to-top-of-list": "Kaart Boven Aan de Lijst Toevoegen", "add-card-to-bottom-of-list": "Kaart Onder Aan de Lijst Toevoegen", - "setListWidthPopup-title": "Stel Lijstbreedte in", - "set-list-width": "Stel Lijstbreedte in", - "set-list-width-value": "Lijstbreedte (pixels)", - "list-width-error-message": "Lijstbreedte moet positief geheel getal zijn", + "setListWidthPopup-title": "Stel Breedte in", + "set-list-width": "Stel Breedte in", + "set-list-width-value": "Stel Min. & Max. Breedtes in (pixels)", + "list-width-error-message": "Lijstbreedte moet minimaal 100 zijn", + "keyboard-shortcuts-enabled": "Sneltoetsen ingeschakeld. Klik om uit te schakelen.", + "keyboard-shortcuts-disabled": "Sneltoetsen uitgeschakeld. Klik om in te schakelen.", "setSwimlaneHeightPopup-title": "Stel Swimlane-hoogte in", "set-swimlane-height": "Stel Swimlane-hoogte in", "set-swimlane-height-value": "Swimlane-hoogte (pixels)", @@ -175,7 +178,7 @@ "board-view": "Bord overzicht", "board-view-cal": "Kalender", "board-view-swimlanes": "Swimlanes", - "board-view-collapse": "Klap in", + "board-view-collapse": "Inklappen", "board-view-gantt": "Gantt", "board-view-lists": "Lijsten", "bucket-example": "Zoals bijvoorbeeld een \"Bucket List\"", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Klik om het bord als favoriet in te stellen", "click-to-unstar": "Klik om het bord uit favorieten weg te halen", + "click-to-enable-auto-width": "Automatische lijstbreedte uitgeschakeld. Klik om in te schakelen.", + "click-to-disable-auto-width": "Automatische lijstbreedte ingeschakeld. Klik om uit te schakelen.", + "auto-list-width": "Automatische lijstbreedte", "clipboard": "Afbeelding Kopiëren & Plakken", "close": "Sluiten", "close-board": "Sluit bord", @@ -294,6 +300,7 @@ "color-white": "wit", "color-yellow": "geel", "unset-color": "Ongedefinieerd", + "comments": "Aantekeningen", "comment": "Aantekening Opslaan", "comment-placeholder": "Schrijf aantekening", "comment-only": "Alleen aantekeningen maken", @@ -376,6 +383,7 @@ "email-sent": "E-mail is verzonden", "email-verifyEmail-subject": "Verifieer je e-mailadres op __siteName__", "email-verifyEmail-text": "Hallo __user__,\n\nOm je e-mail te verifiëren vragen we je om op de link hieronder te klikken.\n\n__url__\n\nBedankt.", + "enable-vertical-scrollbars": "Schakel verticale scrollbars in", "enable-wip-limit": "Activeer WIP limiet", "error-board-doesNotExist": "Dit bord bestaat niet.", "error-board-notAdmin": "Je moet een administrator zijn van dit bord om dat te doen.", @@ -443,7 +451,7 @@ "advanced-filter-description": "Met het Geavanceerd Filter kun je een tekst schrijven die de volgende operatoren mag bevatten: == != <= >= && || ( ) Een Spatie wordt als scheiding gebruikt tussen de verschillende operatoren. Je kunt filteren op alle Maatwerkvelden door hun namen en waarden in te tikken. Bijvoorbeeld: Veld1 == Waarde1. Let op: Als velden of waarden spaties bevatten dan moet je die tussen enkele aanhalingstekens zetten. Bijvoorbeeld: 'Veld 1' == 'Waarde 1'. Om controle karakters (' \\\\/) over te slaan gebruik je \\\\. Bijvoorbeeld: Veld1 == I\\\\'m. Je kunt ook meerdere condities combineren. Bijvoorbeeld: F1 == V1 || F1 == V2. Normalerwijze worden alle operatoren van links naar rechts verwerkt. Dit kun je veranderen door ronde haken te gebruiken. Bijvoorbeeld: F1 == V1 && ( F2 == V2 || F2 == V3 ). Je kunt ook met regex in tekstvelden zoeken. Bijvoorbeeld: F1 == /Tes.*/i", "fullname": "Volledige naam", "header-logo-title": "Ga terug naar jouw borden pagina.", - "hide-system-messages": "Verberg systeemberichten", + "show-activities": "Toon Activiteiten", "headerBarCreateBoardPopup-title": "Bord aanmaken", "home": "Voorpagina", "import": "Importeer", @@ -572,6 +580,7 @@ "select-board": "Selecteer Bord", "set-wip-limit-value": "Zet een limiet voor het maximaal aantal taken in deze lijst", "setWipLimitPopup-title": "Zet een WIP limiet", + "shortcut-add-self": "Voeg jezelf toe aan huidige kaart", "shortcut-assign-self": "Voeg jezelf toe aan huidige kaart", "shortcut-autocomplete-emoji": "Emojis automatisch aanvullen", "shortcut-autocomplete-members": "Leden automatisch aanvullen", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Heeft tijd besteed aan kaarten", "time": "Tijd", "title": "Titel", + "toggle-assignees": "Schakel toegewezen personen 1-9 in/uit voor kaart (Op volgorde van toevoegen aan bord).", "toggle-labels": "Schakel labels 1-9 in/uit voor kaart. Multi-selectie voegt labels 1-9 toe.", "remove-labels-multiselect": "Multi-selectie verwijderd labels 1-9", "tracking": "Volgen", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Je kunt deze kaart niet verwijderen voordat de gelinkte kaart is verwijderd", "delete-linked-cards-before-this-list": "Je kunt deze lijst niet verwijderen voordat de gelinkte kaarten verwijderd zijn die verwijzen naar kaarten in deze lijst", "hide-checked-items": "Verberg aangevinkte items", + "hide-finished-checklist": "Verberg afgewerkte checklist", "task": "Taak", "create-task": "Taak aanmaken", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Aangemaakt op (Nieuwste Eerst)", "created-at-oldest-first": "Aangemaakt op (Oudste Eerst)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Verberg systeemberichten voor alle gebruikers", - "now-system-messages-of-all-users-are-hidden": "Systeemberichten zijn nu verborgen voor alle gebruikers", + "hide-activities-of-all-boards": "Verberg de bord-activietein op alle borden", + "now-activities-of-all-boards-are-hidden": "Nu zijn alle activiteiten op alle borden verbrorgen", "move-swimlane": "Verplaats Swimlane", "moveSwimlanePopup-title": "Verplaats Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist acties", "moveChecklist": "Verplaats Checklist", "moveChecklistPopup-title": "Verplaats Checklist", - "newlineBecomesNewChecklistItem": "Nieuwe regel wordt nieuw checklist item", + "newlineBecomesNewChecklistItem": "Elke regel tekst wordt een checklist item", + "newLineNewItem": "Eén regel tekst = één checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Elke regel tekst wordt één van de checklist items, op volgorde van invoeren", + "originOrder": "volgorde van invoeren", "copyChecklist": "Kopieer Checklist", "copyChecklistPopup-title": "Kopieer Checklist", "card-show-lists": "Kaart Toon Lijsten", @@ -1242,9 +1256,17 @@ "translation": "Vertaling", "text": "Tekst", "translation-text": "Te vertalen tekst", - "show-at-minicard": "Toon op minikaart", - "show-checklist-at-minicard": "Toon checklist op minikaart", "show-subtasks-field": "Toon subtakenveld", + "show-week-of-year": "Toon weeknummers (ISO 8601)", "convert-to-markdown": "Converteer naar markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Voeg .zip bestand toe met bord JSON bestanden, en bordnaam subdirectories met bijlagen.", + "collapse": "Inklappen", + "uncollapse": "Uitklappen", + "hideCheckedChecklistItems": "Verberg aangevinkte checklist items", + "hideAllChecklistItems": "Verberg alle checklist items", + "support": "Ondersteuning", + "supportPopup-title": "Ondersteuning", + "accessibility-page-enabled": "Toegankelijkheidspagina ingeschakeld", + "accessibility-title": "Toegankelijkheid onderwerp", + "accessibility-content": "Toegankelijkheid inhoud" } diff --git a/imports/i18n/data/oc.i18n.json b/imports/i18n/data/oc.i18n.json index 29fcf6bfb..cedf7a7d2 100644 --- a/imports/i18n/data/oc.i18n.json +++ b/imports/i18n/data/oc.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s desplaçat cap a Archius", "activity-attached": "as ligat %s a %s", "activity-created": "as creat %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "as creat lo camp personalizat %s", "activity-excluded": "as exclús %s de %s", "activity-imported": "as importat %s cap a %s dempuèi %s", @@ -85,10 +86,12 @@ "add-card": "Apondre una carta", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Apondre lo tablèu als favorits", "click-to-unstar": "Quitar lo tablèu dels favorits", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Copiar o far limpar", "close": "Tampar", "close-board": "Tampar lo tablèu", @@ -294,6 +300,7 @@ "color-white": "blanc", "color-yellow": "jaune", "unset-color": "pas reglat", + "comments": "Comments", "comment": "Comentari", "comment-placeholder": "Escrire un comentari", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Mail mandat", "email-verifyEmail-subject": "Vos cal verificar vòstra adreça corrièl del sit __siteName__", "email-verifyEmail-text": "Adieu __user__,\n\nPer verificar vòstra adreça corrièl, vos cal clicar sul ligam :\n\n__url__\n\nMercé.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Activar la WIP limit", "error-board-doesNotExist": "Aqueste tablèu existís pas", "error-board-notAdmin": "Devètz èsser un administrator del tablèu per far aquò", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Nom complet", "header-logo-title": "Retorn a vòstra pagina de tablèus", - "hide-system-messages": "Amagar los messatges sistèm", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Crear un tablèu", "home": "Acuèlh", "import": "Importar", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Temps", "title": "Títol", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Tèxte", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/or_IN.i18n.json b/imports/i18n/data/or_IN.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/or_IN.i18n.json +++ b/imports/i18n/data/or_IN.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/pa.i18n.json b/imports/i18n/data/pa.i18n.json index 1187579aa..821c0ba00 100644 --- a/imports/i18n/data/pa.i18n.json +++ b/imports/i18n/data/pa.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/pl-PL.i18n.json b/imports/i18n/data/pl-PL.i18n.json index aca2db945..68bae41a4 100644 --- a/imports/i18n/data/pl-PL.i18n.json +++ b/imports/i18n/data/pl-PL.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s została przeniesiona do Archiwum", "activity-attached": "dodał załącznik %s do %s", "activity-created": "utworzył(a) %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "utworzył(a) niestandardowe pole %s", "activity-excluded": "odłączył %s od %s", "activity-imported": "zaimportowano %s to %s z %s", @@ -85,10 +86,12 @@ "add-card": "Dodaj kartę", "add-card-to-top-of-list": "Dodaj kartę na początku listy", "add-card-to-bottom-of-list": "Dodaj kartę na końcu listy", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Czeklisty", "click-to-star": "Kliknij by odznaczyć tę tablicę.", "click-to-unstar": "Kliknij by usunąć odznaczenie tej tablicy.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Schowka lub poprzez przeciągnij & upuść", "close": "Zamknij", "close-board": "Zamknij tablicę", @@ -294,6 +300,7 @@ "color-white": "biała", "color-yellow": "żółta", "unset-color": "Nieustawiony", + "comments": "Comments", "comment": "Komentarz", "comment-placeholder": "Dodaj komentarz", "comment-only": "Tylko komentowanie", @@ -376,6 +383,7 @@ "email-sent": "Email wysłany", "email-verifyEmail-subject": "Zweryfikuj swój adres email na __siteName__", "email-verifyEmail-text": "Witaj __user__,\nAby zweryfikować adres email, kliknij w link poniżej.\n__url__\nDzięki.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Włącz limit kart na liście", "error-board-doesNotExist": "Ta tablica nie istnieje", "error-board-notAdmin": "Musisz być administratorem tej tablicy żeby to zrobić", @@ -443,7 +451,7 @@ "advanced-filter-description": "Zaawansowane filtry pozwalają na wykorzystanie ciągu znaków wraz z następującymi operatorami: == != <= >= && || (). Spacja jest używana jako separator pomiędzy operatorami. Możesz przefiltrowywać wszystkie niestandardowe pola wpisując ich nazwy lub wartości, na przykład: Pole1 == Wartość1.\nUwaga: Jeśli pola lub wartości zawierają spację, musisz je zawrzeć w pojedynczym cudzysłowie, na przykład: 'Pole 1' == 'Wartość 1'. Dla pojedynczych znaków, które powinny być pominięte, należy użyć \\\\, na przykład Pole1 == I\\\\'m. Możesz także wykorzystywać mieszane warunki, na przykład P1 == W1 || P1 == W2. Standardowo wszystkie operatory są interpretowane od lewej do prawej. Możesz także zmienić kolejność interpretacji wykorzystując nawiasy, na przykład P1 == W1 && (P2 == W2 || P2 == W3). Możesz także wyszukiwać tekstowo wykorzystując wyrażenia regularne, na przykład: P1 == /Tes.*/i", "fullname": "Pełna nazwa", "header-logo-title": "Wróć do swojej strony z tablicami.", - "hide-system-messages": "Ukryj wiadomości systemowe", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Utwórz tablicę", "home": "Strona główna", "import": "Importuj", @@ -572,6 +580,7 @@ "select-board": "Wybierz tablicę", "set-wip-limit-value": "Ustaw maksymalny limit kart na tej liście", "setWipLimitPopup-title": "Ustaw limit kart na liście", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Przypisz siebie do obecnej karty", "shortcut-autocomplete-emoji": "Autouzupełnianie emoji", "shortcut-autocomplete-members": "Autouzupełnianie użytkowników", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Ma karty z wykazanym czasem pracy", "time": "Czas", "title": "Tytuł", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Śledź", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętej karty, w której są", "delete-linked-cards-before-this-list": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętych kart, które wskazują na karty w tej liście", "hide-checked-items": "Ukryj ukończone", + "hide-finished-checklist": "Hide finished checklist", "task": "Zadanie", "create-task": "Utwórz zadanie", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "daty utworzenia (najpierw najnowsze)", "created-at-oldest-first": "daty utworzenia (najpierw najstarsze)", "links-heading": "Linki", - "hide-system-messages-of-all-users": "Ukryj powiadomienia systemowe wszystkich użytkowników", - "now-system-messages-of-all-users-are-hidden": "Odtąd powiadomienia systemowe wszystkich użytkowników będą ukryte", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Przenieś ścieżkę", "moveSwimlanePopup-title": "Przenieś ścieżkę", "custom-field-stringtemplate": "Wzór ciągu znaków", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Tekst", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Zwiń", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/pl.i18n.json b/imports/i18n/data/pl.i18n.json index 0e1e1b411..d14c356fd 100644 --- a/imports/i18n/data/pl.i18n.json +++ b/imports/i18n/data/pl.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s została przeniesiona do Archiwum", "activity-attached": "dodał załącznik %s do %s", "activity-created": "utworzył(a) %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "utworzył(a) niestandardowe pole %s", "activity-excluded": "odłączył %s od %s", "activity-imported": "zaimportowano %s to %s z %s", @@ -85,10 +86,12 @@ "add-card": "Dodaj kartę", "add-card-to-top-of-list": "Dodaj kartę na początku listy", "add-card-to-bottom-of-list": "Dodaj kartę na końcu listy", - "setListWidthPopup-title": "Ustaw szerokość listy", - "set-list-width": "Ustaw szerokość listy", - "set-list-width-value": "Szerokość listy (w pikselach)", - "list-width-error-message": "Szerokość listy musi mieć wartość dodatnią", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Ustaw wysokość ścieżki", "set-swimlane-height": "Ustaw wysokość ścieżki", "set-swimlane-height-value": "Wysokość ścieżki (w pikselach)", @@ -263,6 +266,9 @@ "checklists": "Czeklisty", "click-to-star": "Kliknij by odznaczyć tę tablicę.", "click-to-unstar": "Kliknij by usunąć odznaczenie tej tablicy.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Schowka lub poprzez przeciągnij & upuść", "close": "Zamknij", "close-board": "Zamknij tablicę", @@ -294,6 +300,7 @@ "color-white": "biała", "color-yellow": "żółta", "unset-color": "Nieustawiony", + "comments": "Komentarze", "comment": "Komentarz", "comment-placeholder": "Dodaj komentarz", "comment-only": "Tylko komentowanie", @@ -376,6 +383,7 @@ "email-sent": "Email wysłany", "email-verifyEmail-subject": "Zweryfikuj swój adres email na __siteName__", "email-verifyEmail-text": "Witaj __user__,\nAby zweryfikować adres email, kliknij w link poniżej.\n__url__\nDzięki.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Włącz limit kart na liście", "error-board-doesNotExist": "Ta tablica nie istnieje", "error-board-notAdmin": "Musisz być administratorem tej tablicy żeby to zrobić", @@ -443,7 +451,7 @@ "advanced-filter-description": "Zaawansowane filtry pozwalają na wykorzystanie ciągu znaków wraz z następującymi operatorami: == != <= >= && || (). Spacja jest używana jako separator pomiędzy operatorami. Możesz przefiltrowywać wszystkie niestandardowe pola wpisując ich nazwy lub wartości, na przykład: Pole1 == Wartość1.\nUwaga: Jeśli pola lub wartości zawierają spację, musisz je zawrzeć w pojedynczym cudzysłowie, na przykład: 'Pole 1' == 'Wartość 1'. Dla pojedynczych znaków, które powinny być pominięte, należy użyć \\\\, na przykład Pole1 == I\\\\'m. Możesz także wykorzystywać mieszane warunki, na przykład P1 == W1 || P1 == W2. Standardowo wszystkie operatory są interpretowane od lewej do prawej. Możesz także zmienić kolejność interpretacji wykorzystując nawiasy, na przykład P1 == W1 && (P2 == W2 || P2 == W3). Możesz także wyszukiwać tekstowo wykorzystując wyrażenia regularne, na przykład: P1 == /Tes.*/i", "fullname": "Pełna nazwa", "header-logo-title": "Wróć do swojej strony z tablicami.", - "hide-system-messages": "Ukryj wiadomości systemowe", + "show-activities": "Pokaż aktywności", "headerBarCreateBoardPopup-title": "Utwórz tablicę", "home": "Strona główna", "import": "Importuj", @@ -572,6 +580,7 @@ "select-board": "Wybierz tablicę", "set-wip-limit-value": "Ustaw maksymalny limit kart na tej liście", "setWipLimitPopup-title": "Ustaw limit kart na liście", + "shortcut-add-self": "Dodaj siebie do obecnej karty", "shortcut-assign-self": "Przypisz siebie do obecnej karty", "shortcut-autocomplete-emoji": "Autouzupełnianie emoji", "shortcut-autocomplete-members": "Autouzupełnianie użytkowników", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Ma karty z wykazanym czasem pracy", "time": "Czas", "title": "Tytuł", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Śledź", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętej karty, w której są", "delete-linked-cards-before-this-list": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętych kart, które wskazują na karty w tej liście", "hide-checked-items": "Ukryj ukończone", + "hide-finished-checklist": "Ukryj ukończoną listę", "task": "Zadanie", "create-task": "Utwórz zadanie", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "daty utworzenia (najpierw najnowsze)", "created-at-oldest-first": "daty utworzenia (najpierw najstarsze)", "links-heading": "Linki", - "hide-system-messages-of-all-users": "Ukryj powiadomienia systemowe wszystkich użytkowników", - "now-system-messages-of-all-users-are-hidden": "Odtąd powiadomienia systemowe wszystkich użytkowników będą ukryte", + "hide-activities-of-all-boards": "Nie pokazuj aktywności na wszystkich tablicach", + "now-activities-of-all-boards-are-hidden": "Teraz wszystkie aktywności wszystkich tablic są ukryte", "move-swimlane": "Przenieś ścieżkę", "moveSwimlanePopup-title": "Przenieś ścieżkę", "custom-field-stringtemplate": "Wzór ciągu znaków", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Każdy wiersz tekstu staje się jednym z elementów listy kontrolnej", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "pierwotna kolejność", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Tłumaczenie", "text": "Tekst", "translation-text": "Tekst tłumaczenia", - "show-at-minicard": "Pokaż na minikarcie", - "show-checklist-at-minicard": "Pokaż listę zadań na minikarcie", "show-subtasks-field": "Pokaż pole podzadania", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Zamień na markdown", - "import-board-zip": "Dodaj plik .zip z tablicą plików JSON, nazwą tablicy i podkatalogami z załącznikami" + "import-board-zip": "Dodaj plik .zip z tablicą plików JSON, nazwą tablicy i podkatalogami z załącznikami", + "collapse": "Zwiń", + "uncollapse": "Rozwiń", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index d3992cff2..a6b55afc6 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s foi Arquivado", "activity-attached": "anexou %s a %s", "activity-created": "criou %s", + "activity-changedListTitle": "lista renomeada para %s", "activity-customfield-created": "criado campo customizado %s", "activity-excluded": "excluiu %s de %s", "activity-imported": "importado %s em %s de %s", @@ -85,10 +86,12 @@ "add-card": "Adicionar Cartão", "add-card-to-top-of-list": "Adicionar Cartão no Topo da Lista", "add-card-to-bottom-of-list": "Adicionar Cartão no Final da Lista", - "setListWidthPopup-title": "Definir Largura da Lista", - "set-list-width": "Definir Largura da Lista", - "set-list-width-value": "Largura da Lista (pixels)", - "list-width-error-message": "Largura da Lista deve ser um inteiro positivo", + "setListWidthPopup-title": "Definir Largura", + "set-list-width": "Definir Largura", + "set-list-width-value": "Definir Largura Mínima e Máxima (pixeis)", + "list-width-error-message": "Largura de lista deve ser um número inteiro maior que 100", + "keyboard-shortcuts-enabled": "Atalhos de teclado habilitado. Clique para desabilitar.", + "keyboard-shortcuts-disabled": "Atalhos de teclado desabilitados. Clique para habilitar.", "setSwimlaneHeightPopup-title": "Definir Altura da Raia", "set-swimlane-height": "Definir Altura da Raia", "set-swimlane-height-value": "Altura da Raia (pixels)", @@ -263,6 +266,9 @@ "checklists": "Listas de verificação", "click-to-star": "Marcar quadro como favorito.", "click-to-unstar": "Remover quadro dos favoritos.", + "click-to-enable-auto-width": "Largura da lista automática desabilitada. Clique para habilitar.", + "click-to-disable-auto-width": "Largura de lista automática habilitada. Clique para desabilitar.", + "auto-list-width": "Largura de lista automática", "clipboard": "Área de Transferência ou arraste e solte", "close": "Fechar", "close-board": "Fechar Quadro", @@ -294,6 +300,7 @@ "color-white": "branco", "color-yellow": "amarelo", "unset-color": "Remover", + "comments": "Comentários", "comment": "Comentário", "comment-placeholder": "Escrever Comentário", "comment-only": "Somente comentários", @@ -376,6 +383,7 @@ "email-sent": "E-mail enviado", "email-verifyEmail-subject": "Verifique seu endereço de e-mail em __siteName__", "email-verifyEmail-text": "Olá __user__\nPara verificar sua conta de e-mail, clique no link abaixo.\n__url__\nObrigado.", + "enable-vertical-scrollbars": "Habilitar rolagem de tela vertical", "enable-wip-limit": "Ativar Limite WIP", "error-board-doesNotExist": "Este quadro não existe", "error-board-notAdmin": "Você precisa ser administrador desse quadro para fazer isto", @@ -443,7 +451,7 @@ "advanced-filter-description": "Filtros avançados permitem escrever uma \"string\" contendo os seguintes operadores: == != <= >= && || (). Um espaco é utilizado como separador entre os operadores. Você pode filtrar para todos os campos personalizados escrevendo os nomes e valores. Exemplo: Campo1 == Valor1. Nota^Se o campo ou valor tiver espaços você precisa encapsular eles em citações sozinhas. Exemplo: Campo1 == Eu\\\\sou. Também você pode combinar múltiplas condições. Exemplo: C1 == V1 || C1 == V2. Normalmente todos os operadores são interpretados da esquerda para direita. Você pode alterar a ordem colocando parênteses - como ma expressão matemática. Exemplo: C1 == V1 && (C2 == V2 || C2 == V3). Você tamb~em pode pesquisar campos de texto usando regex: C1 == /Tes.*/i", "fullname": "Nome Completo", "header-logo-title": "Voltar para a lista de quadros.", - "hide-system-messages": "Esconder mensagens de sistema", + "show-activities": "Mostrar Atividades", "headerBarCreateBoardPopup-title": "Criar Quadro", "home": "Início", "import": "Importar", @@ -572,6 +580,7 @@ "select-board": "Selecionar Quadro", "set-wip-limit-value": "Defina um limite máximo para o número de tarefas nesta lista", "setWipLimitPopup-title": "Definir Limite WIP", + "shortcut-add-self": "Adicionar-me ao cartão atual", "shortcut-assign-self": "Atribuir a si o cartão atual", "shortcut-autocomplete-emoji": "Autocompletar emoji", "shortcut-autocomplete-members": "Preenchimento automático de membros", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Gastou cartões de tempo", "time": "Tempo", "title": "Título", + "toggle-assignees": "Alternar administradores 1-9 para cartão (Por ordem de adição no quadro)", "toggle-labels": "Alternar etiquetas 1-9 para cartão. Multi-seleção adiciona etiquetas 1-9", "remove-labels-multiselect": "Multi-seleção remove etiquetas 1-9", "tracking": "Rastreamento", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Você não pode excluir este cartão antes de excluir primeiro o cartão vinculado que possui", "delete-linked-cards-before-this-list": "Você não pode excluir esta lista antes de excluir primeiro os cartões vinculados que estão apontando para os cartões nesta lista", "hide-checked-items": "Esconder itens marcados", + "hide-finished-checklist": "Esconder lista de verificação concluída", "task": "Tarefa", "create-task": "Criar Tarefa", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Criado em (o mais recente primeiro)", "created-at-oldest-first": "Criado em (o mais antigo primeiro)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Esconder mensagens do sistema para todos os usuários", - "now-system-messages-of-all-users-are-hidden": "Agora as mensagens do sistema para todos os usuários estão escondidas", + "hide-activities-of-all-boards": "Não mostrar as atividades do quadro em todos os quadros", + "now-activities-of-all-boards-are-hidden": "Agora todas as atividades de todos os quadros estão escondidas", "move-swimlane": "Mover Raia", "moveSwimlanePopup-title": "Mover Raia", "custom-field-stringtemplate": "Template de String", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Ações da Lista de verificação", "moveChecklist": "Mover Lista de verificação", "moveChecklistPopup-title": "Mover Lista de verificação", - "newlineBecomesNewChecklistItem": "Uma nova linha se torna um novo item da lista de verificação", + "newlineBecomesNewChecklistItem": "Cada linha de texto se tornará um item da lista de verificação", + "newLineNewItem": "Uma linha de texto = um item da lista de verificação", + "newlineBecomesNewChecklistItemOriginOrder": "Cada linha de texto se tornará um item da lista de verificação em ordem original", + "originOrder": "ordem original", "copyChecklist": "Copiar Lista de verificação", "copyChecklistPopup-title": "Copiar Lista de verificação", "card-show-lists": "Cartão mostra listas", @@ -1242,9 +1256,17 @@ "translation": "Tradução", "text": "Texto", "translation-text": "Texto de tradução", - "show-at-minicard": "Mostrar no mini cartão", - "show-checklist-at-minicard": "Mostrar lista de verificação no mini cartão", "show-subtasks-field": "Mostrar campo subtarefas", + "show-week-of-year": "Mostrar semana do ano (ISO8601)", "convert-to-markdown": "Converter para markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Adicione o arquivo .zip que contém arquivos JSON do quadro e subdiretórios de nomes do quadro com anexos", + "collapse": "Expandir", + "uncollapse": "Compactar", + "hideCheckedChecklistItems": "Esconder itens concluídos da lista de verificação", + "hideAllChecklistItems": "Esconder todos os itens da lista de verificação", + "support": "Suporte", + "supportPopup-title": "Suporte", + "accessibility-page-enabled": "Página de acessibilidade habilitada", + "accessibility-title": "Tópico de acessibilidade", + "accessibility-content": "Conteúdo de acessibilidade" } diff --git a/imports/i18n/data/pt.i18n.json b/imports/i18n/data/pt.i18n.json index 041ad6fad..5676223d3 100644 --- a/imports/i18n/data/pt.i18n.json +++ b/imports/i18n/data/pt.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s foi movido para o Arquivo", "activity-attached": "anexou %s a %s", "activity-created": "criou %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "criado o campo personalizado %s", "activity-excluded": "excluiu %s de %s", "activity-imported": "importou %s para %s de %s", @@ -85,10 +86,12 @@ "add-card": "Adicionar Cartão", "add-card-to-top-of-list": "Adicionar Cartão no Topo da Lista", "add-card-to-bottom-of-list": "Adicionar Cartão no Fundo da Lista", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Listas de verificação", "click-to-star": "Clique para marcar este quadro como favorito.", "click-to-unstar": "Clique para remover este quadro dos favoritos.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Área de Transferência ou arraste e solte", "close": "Fechar", "close-board": "Fechar o Quadro", @@ -294,6 +300,7 @@ "color-white": "branco", "color-yellow": "amarelo", "unset-color": "Remover", + "comments": "Comments", "comment": "Comentar", "comment-placeholder": "Escrever o Comentário", "comment-only": "Apenas comentários", @@ -376,6 +383,7 @@ "email-sent": "E-mail enviado", "email-verifyEmail-subject": "Verifique o seu endereço de e-mail em __siteName__", "email-verifyEmail-text": "Olá __user__\nPara verificar a sua conta de e-mail, clique na ligação abaixo.\n__url__\nObrigado.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Ativar Limite WIP", "error-board-doesNotExist": "Este quadro não existe", "error-board-notAdmin": "Precisa de ser administrador deste quadro para fazer isso", @@ -443,7 +451,7 @@ "advanced-filter-description": "Filtro Avançado permite escrever uma \"string\" contendo os seguintes operadores: == != <= >= && || ( ). Um espaço é usado como separador entre Operadores. Pode filtrar em todos os Campos Personalizados escreventos os seus nomes e valores. Por Exemplo: Campo1 == Valor1. Nota: Se os campos ou valores contiverem espaços, tem de os encapsular em apóstrofes. Por Exemplo: 'Campo 1' == 'Valor 1'. Para que caracteres de controlo únicos (' \\\\/) sejam ignorados, pode usar \\\\. Por exemplo: Campo1 == I\\\\'m. Pode também combinar múltiplas condições. Por Exemplo: F1 == V1 || F1 == V2. Normalmente todos os operadores são interpretados da esquerda para a direita. Pode alterar a ordem inserindo parênteses. Por Exemplo: F1 == V1 && ( F2 == V2 || F2 == V3 ). Pode também procurar em campos de texto utilizando uma expressão regular: F1 == /Tes.*/i", "fullname": "Nome Completo", "header-logo-title": "Voltar para a sua lista de quadros.", - "hide-system-messages": "Esconder mensagens de sistema", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Criar Quadro", "home": "Início", "import": "Importar", @@ -572,6 +580,7 @@ "select-board": "Selecione Quadro", "set-wip-limit-value": "Defina um limite máximo para o número de tarefas nesta lista", "setWipLimitPopup-title": "Definir Limite WIP", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Atribuir a si o cartão actual", "shortcut-autocomplete-emoji": "Autocompletar emoji", "shortcut-autocomplete-members": "Autocompletar membros", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Tem cartões com tempo gasto", "time": "Tempo", "title": "Título", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "A seguir", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Não pode apagar este cartão sem primeiro apagar o cartão ligado que tem", "delete-linked-cards-before-this-list": "Não pode apagar esta lista sem primeiro apagar cartões ligados que apontam para cartões nesta lista", "hide-checked-items": "Ocultar items marcados", + "hide-finished-checklist": "Hide finished checklist", "task": "Tarefa", "create-task": "Criar Tarefa", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Criado Em (Recentes Primeiro)", "created-at-oldest-first": "Criado Em (Antigos Primeiro)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Omitir mensagens de sistema de todos os utilizadores", - "now-system-messages-of-all-users-are-hidden": "Todas as mensagens de sistema são omitidas a todos os utilizadores", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Mover Pista", "moveSwimlanePopup-title": "Mover Pista", "custom-field-stringtemplate": "Texto Modelo", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Texto", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Colapsar", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/pt_PT.i18n.json b/imports/i18n/data/pt_PT.i18n.json index 8e21b8f85..9f6833efb 100644 --- a/imports/i18n/data/pt_PT.i18n.json +++ b/imports/i18n/data/pt_PT.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s foi movido para o Arquivo", "activity-attached": "anexou %s a %s", "activity-created": "criou %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "criado o campo personalizado %s", "activity-excluded": "excluiu %s de %s", "activity-imported": "importou %s para %s de %s", @@ -85,10 +86,12 @@ "add-card": "Adicionar Cartão", "add-card-to-top-of-list": "Adicionar Cartão no Topo da Lista", "add-card-to-bottom-of-list": "Adicionar Cartão no Fundo da Lista", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Listas de verificação", "click-to-star": "Clique para marcar este quadro como favorito.", "click-to-unstar": "Clique para remover este quadro dos favoritos.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Área de Transferência ou arraste e solte", "close": "Fechar", "close-board": "Fechar o Quadro", @@ -294,6 +300,7 @@ "color-white": "branco", "color-yellow": "amarelo", "unset-color": "Remover", + "comments": "Comments", "comment": "Comentar", "comment-placeholder": "Escrever o Comentário", "comment-only": "Apenas comentários", @@ -376,6 +383,7 @@ "email-sent": "E-mail enviado", "email-verifyEmail-subject": "Verifique o seu endereço de e-mail em __siteName__", "email-verifyEmail-text": "Olá __user__\nPara verificar a sua conta de e-mail, clique na ligação abaixo.\n__url__\nObrigado.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Ativar Limite WIP", "error-board-doesNotExist": "Este quadro não existe", "error-board-notAdmin": "Precisa de ser administrador deste quadro para fazer isso", @@ -443,7 +451,7 @@ "advanced-filter-description": "Filtro Avançado permite escrever uma \"string\" contendo os seguintes operadores: == != <= >= && || ( ). Um espaço é usado como separador entre Operadores. Pode filtrar em todos os Campos Personalizados escreventos os seus nomes e valores. Por Exemplo: Campo1 == Valor1. Nota: Se os campos ou valores contiverem espaços, tem de os encapsular em apóstrofes. Por Exemplo: 'Campo 1' == 'Valor 1'. Para que caracteres de controlo únicos (' \\\\/) sejam ignorados, pode usar \\\\. Por exemplo: Campo1 == I\\\\'m. Pode também combinar múltiplas condições. Por Exemplo: F1 == V1 || F1 == V2. Normalmente todos os operadores são interpretados da esquerda para a direita. Pode alterar a ordem inserindo parênteses. Por Exemplo: F1 == V1 && ( F2 == V2 || F2 == V3 ). Pode também procurar em campos de texto utilizando uma expressão regular: F1 == /Tes.*/i", "fullname": "Nome Completo", "header-logo-title": "Voltar para a sua lista de quadros.", - "hide-system-messages": "Esconder mensagens de sistema", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Criar Quadro", "home": "Início", "import": "Importar", @@ -572,6 +580,7 @@ "select-board": "Selecione Quadro", "set-wip-limit-value": "Defina um limite máximo para o número de tarefas nesta lista", "setWipLimitPopup-title": "Definir Limite WIP", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Atribuir a si o cartão actual", "shortcut-autocomplete-emoji": "Autocompletar emoji", "shortcut-autocomplete-members": "Autocompletar membros", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Tem cartões com tempo gasto", "time": "Tempo", "title": "Título", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "A seguir", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Não pode apagar este cartão sem primeiro apagar o cartão ligado que tem", "delete-linked-cards-before-this-list": "Não pode apagar esta lista sem primeiro apagar cartões ligados que apontam para cartões nesta lista", "hide-checked-items": "Ocultar items marcados", + "hide-finished-checklist": "Hide finished checklist", "task": "Tarefa", "create-task": "Criar Tarefa", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Criado Em (Recentes Primeiro)", "created-at-oldest-first": "Criado Em (Antigos Primeiro)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Omitir mensagens de sistema de todos os utilizadores", - "now-system-messages-of-all-users-are-hidden": "Todas as mensagens de sistema são omitidas a todos os utilizadores", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Mover Pista", "moveSwimlanePopup-title": "Mover Pista", "custom-field-stringtemplate": "Texto Modelo", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Texto", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Colapsar", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ro-RO.i18n.json b/imports/i18n/data/ro-RO.i18n.json index e2750cadb..53e48ec08 100644 --- a/imports/i18n/data/ro-RO.i18n.json +++ b/imports/i18n/data/ro-RO.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "s-a atașat %s la %s", "activity-created": "s-a creat %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "s-a exclus %s din %s", "activity-imported": "s-a importat %s în %s din %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Închide", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Titlu", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ro.i18n.json b/imports/i18n/data/ro.i18n.json index 05904171e..a0e0666e1 100644 --- a/imports/i18n/data/ro.i18n.json +++ b/imports/i18n/data/ro.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ru-UA.i18n.json b/imports/i18n/data/ru-UA.i18n.json index 397b1152e..78b62d375 100644 --- a/imports/i18n/data/ru-UA.i18n.json +++ b/imports/i18n/data/ru-UA.i18n.json @@ -1,151 +1,154 @@ { - "accept": "Принять", - "act-activity-notify": "Уведомление о действиях участников", - "act-addAttachment": "прикрепил вложение __attachment__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-deleteAttachment": "удалил вложение __attachment__ из карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-addSubtask": "добавил подзадачу __subtask__ для карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-addLabel": "добавил метку __label__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-addedLabel": "добавил метку __label__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-removeLabel": "Снята метка __label__ с карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-removedLabel": "Снята метка __label__ с карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-addChecklist": "добавил контрольный список __checklist__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-addChecklistItem": "добавил пункт __checklistItem__ в контрольный список __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-removeChecklist": "удалил контрольный список __checklist__ из карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-removeChecklistItem": "удалил пункт __checklistItem__ из контрольного списка __checkList__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-checkedItem": "отметил __checklistItem__ в контрольном списке __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-uncheckedItem": "снял __checklistItem__ в контрольном списке __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-completeChecklist": "завершил контрольный список __checklist__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-uncompleteChecklist": "вновь открыл контрольный список __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-addComment": "написал в карточке __card__: __comment__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-editComment": "изменил комментарий в карточке __card__: __comment__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-deleteComment": "удалил комментарий из карточки __card__: __comment__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-createBoard": "создал доску __board__", - "act-createSwimlane": "создал дорожку __swimlane__ на доске __board__", - "act-createCard": "создал карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-createCustomField": "создал новое поле __customField__ на доске __board__", - "act-deleteCustomField": "удалил поле __customField__ с доски __board__", - "act-setCustomField": "изменил значение поля __customField__: __customFieldValue__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-createList": "добавил список __list__ на доску __board__", - "act-addBoardMember": "добавил участника __member__ на доску __board__", - "act-archivedBoard": "Доска __board__ перемещена в Архив", - "act-archivedCard": "Карточка __card__ из списка __list__ с дорожки __swimlane__ доски __board__ перемещена в Архив", - "act-archivedList": "Список __list__ на дорожке __swimlane__ доски __board__ перемещен в Архив", - "act-archivedSwimlane": "Дорожка __swimlane__ на доске __board__ перемещена в Архив", - "act-importBoard": "импортировал доску __board__", - "act-importCard": "импортировал карточку __card__ в список __list__ на дорожку __swimlane__ доски __board__", - "act-importList": "импортировал список __list__ на дорожку __swimlane__ доски __board__", - "act-joinMember": "добавил участника __member__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "act-moveCard": "переместил карточку __card__ на доске __board__ из списка __oldList__ с дорожки __oldSwimlane__ в список __list__ на дорожку __swimlane__", - "act-moveCardToOtherBoard": "переместил карточку __card__ из списка __oldList__ с дорожки __oldSwimlane__ доски __oldBoard__ в список __list__ на дорожку __swimlane__ доски __board__", - "act-removeBoardMember": "удалил участника __member__ с доски __board__", - "act-restoredCard": "восстановил карточку __card__ в список __list__ на дорожку __swimlane__ доски __board__", - "act-unjoinMember": "удалил участника __member__ из карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__", + "accept": "Accept", + "act-activity-notify": "Activity Notification", + "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-createCustomField": "created custom field __customField__ at board __board__", + "act-deleteCustomField": "deleted custom field __customField__ at board __board__", + "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createList": "added list __list__ to board __board__", + "act-addBoardMember": "added member __member__ to board __board__", + "act-archivedBoard": "Board __board__ moved to Archive", + "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive", + "act-importBoard": "imported board __board__", + "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__", + "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", + "act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-removeBoardMember": "removed member __member__ from board __board__", + "act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-withBoardTitle": "__board__", "act-withCardTitle": "[__board__] __card__", - "actions": "Действия", - "activities": "История действий", - "activity": "Действия участников", - "activity-added": "добавил %s на %s", - "activity-archived": "%s теперь в Архиве", - "activity-attached": "прикрепил %s к %s", - "activity-created": "создал %s", - "activity-customfield-created": "создал настраиваемое поле %s", - "activity-excluded": "исключил %s из %s", - "activity-imported": "импортировал %s в %s из %s", - "activity-imported-board": "импортировал %s из %s", - "activity-joined": "присоединился к %s", - "activity-moved": "переместил %s из %s в %s", - "activity-on": "%s", - "activity-removed": "удалил %s из %s", - "activity-sent": "отправил %s в %s", - "activity-unjoined": "вышел из %s", - "activity-subtask-added": "добавил подзадачу в %s", - "activity-checked-item": "отметил %s в контрольном списке %s в %s", - "activity-unchecked-item": "снял %s в контрольном списке %s в %s", - "activity-checklist-added": "добавил контрольный список в %s", - "activity-checklist-removed": "удалил контрольный список из %s", - "activity-checklist-completed": "завершил контрольный список %s в %s", - "activity-checklist-uncompleted": "вновь открыл контрольный список %s в %s", - "activity-checklist-item-added": "добавил пункт в контрольный список '%s' в карточке %s", - "activity-checklist-item-removed": "удалил пункт из контрольного списка '%s' в карточке %s", - "add": "Создать", - "activity-checked-item-card": "отметил %s в контрольном списке %s", - "activity-unchecked-item-card": "снял %s в контрольном списке %s", - "activity-checklist-completed-card": "завершил контрольный список __checklist__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", - "activity-checklist-uncompleted-card": "вновь открыл контрольный список %s", - "activity-editComment": "отредактировал комментарий %s", - "activity-deleteComment": "удалил комментарий %s", - "activity-receivedDate": "отредактировал дату получения на %sс %s", - "activity-startDate": "отредактировал дату начала на %sс %s", - "activity-dueDate": "отредактировал срок исполнения на %s с %s", - "activity-endDate": "отредактировал дату завершения на %s с %s", - "add-attachment": "Добавить вложение", - "add-board": "Добавить доску", - "add-template": "Добавить шаблон", - "add-card": "Добавить карточку", - "add-card-to-top-of-list": "Добавить карточку в начало списка", - "add-card-to-bottom-of-list": "Добавить карточку в конец списка", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "actions": "Actions", + "activities": "Activities", + "activity": "Activity", + "activity-added": "added %s to %s", + "activity-archived": "%s moved to Archive", + "activity-attached": "attached %s to %s", + "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", + "activity-customfield-created": "created custom field %s", + "activity-excluded": "excluded %s from %s", + "activity-imported": "imported %s into %s from %s", + "activity-imported-board": "imported %s from %s", + "activity-joined": "joined %s", + "activity-moved": "moved %s from %s to %s", + "activity-on": "on %s", + "activity-removed": "removed %s from %s", + "activity-sent": "sent %s to %s", + "activity-unjoined": "unjoined %s", + "activity-subtask-added": "added subtask to %s", + "activity-checked-item": "checked %s in checklist %s of %s", + "activity-unchecked-item": "unchecked %s in checklist %s of %s", + "activity-checklist-added": "added checklist to %s", + "activity-checklist-removed": "removed a checklist from %s", + "activity-checklist-completed": "completed checklist %s of %s", + "activity-checklist-uncompleted": "uncompleted the checklist %s of %s", + "activity-checklist-item-added": "added checklist item to '%s' in %s", + "activity-checklist-item-removed": "removed a checklist item from '%s' in %s", + "add": "Add", + "activity-checked-item-card": "checked %s in checklist %s", + "activity-unchecked-item-card": "unchecked %s in checklist %s", + "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checklist-uncompleted-card": "uncompleted the checklist %s", + "activity-editComment": "edited comment %s", + "activity-deleteComment": "deleted comment %s", + "activity-receivedDate": "edited received date to %s of %s", + "activity-startDate": "edited start date to %s of %s", + "activity-dueDate": "edited due date to %s of %s", + "activity-endDate": "edited end date to %s of %s", + "add-attachment": "Add Attachment", + "add-board": "Add Board", + "add-template": "Add Template", + "add-card": "Add Card", + "add-card-to-top-of-list": "Add Card to Top of List", + "add-card-to-bottom-of-list": "Add Card to Bottom of List", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", "swimlane-height-error-message": "Swimlane height must be a positive integer", - "add-swimlane": "Добавить дорожку", - "add-subtask": "Добавить подзадачу", - "add-checklist": "Добавить контрольный список", - "add-checklist-item": "Добавить пункт в контрольный список", + "add-swimlane": "Add Swimlane", + "add-subtask": "Add Subtask", + "add-checklist": "Add Checklist", + "add-checklist-item": "Add an item to checklist", "close-add-checklist-item": "Close add an item to checklist form", "close-edit-checklist-item": "Close edit an item to checklist form", - "convertChecklistItemToCardPopup-title": "Преобразовать в Карточку", + "convertChecklistItemToCardPopup-title": "Convert to Card", "add-cover": "Add cover image to minicard", - "add-label": "Добавить метку", - "add-list": "Добавить простой список", + "add-label": "Add Label", + "add-list": "Add List", "add-after-list": "Add After List", - "add-members": "Добавить участника", - "added": "Добавлено", - "addMemberPopup-title": "Участники", - "memberPopup-title": "Настройки участника", - "admin": "Администратор", - "admin-desc": "Может просматривать и редактировать карточки, удалять участников и управлять настройками доски.", - "admin-announcement": "Объявление", - "admin-announcement-active": "Действующее общесистемное объявление", - "admin-announcement-title": "Объявление от Администратора", - "all-boards": "Все доски", - "and-n-other-card": "И __count__ другая карточка", - "and-n-other-card_plural": "И __count__ другие карточки", - "apply": "Применить", - "app-is-offline": "Идет загрузка, подождите. Обновление страницы приведет к потере данных. Если загрузка не происходит, проверьте работоспособность сервера.", + "add-members": "Add Members", + "added": "Added", + "addMemberPopup-title": "Members", + "memberPopup-title": "Member Settings", + "admin": "Admin", + "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", + "all-boards": "All Boards", + "and-n-other-card": "And __count__ other card", + "and-n-other-card_plural": "And __count__ other cards", + "apply": "Apply", + "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.", "app-try-reconnect": "Try to reconnect.", - "archive": "Переместить в архив", - "archive-all": "Переместить всё в архив", - "archive-board": "Переместить доску в архив", - "archive-card": "Переместить карточку в архив", - "archive-list": "Переместить список в архив", - "archive-swimlane": "Переместить дорожку в архив", - "archive-selection": "Переместить выбранное в архив", - "archiveBoardPopup-title": "Переместить доску в архив?", - "archived-items": "Архив", - "archived-boards": "Доски в архиве", - "restore-board": "Востановить доску", - "no-archived-boards": "Нет досок в архиве.", - "archives": "Архив", - "template": "Шаблон", - "templates": "Шаблоны", - "template-container": "Шаблон Контейнера", - "add-template-container": "Добавить Шаблон Контейнера", - "assign-member": "Назначить участника", - "attached": "прикреплено", - "attachment": "Вложение", - "attachment-delete-pop": "Если удалить вложение, его нельзя будет восстановить.", - "attachmentDeletePopup-title": "Удалить вложение?", - "attachments": "Вложения", - "auto-watch": "Автоматически следить за созданными досками", + "archive": "Move to Archive", + "archive-all": "Move All to Archive", + "archive-board": "Move Board to Archive", + "archive-card": "Move Card to Archive", + "archive-list": "Move List to Archive", + "archive-swimlane": "Move Swimlane to Archive", + "archive-selection": "Move selection to Archive", + "archiveBoardPopup-title": "Move Board to Archive?", + "archived-items": "Archive", + "archived-boards": "Boards in Archive", + "restore-board": "Restore Board", + "no-archived-boards": "No Boards in Archive.", + "archives": "Archive", + "template": "Template", + "templates": "Templates", + "template-container": "Template Container", + "add-template-container": "Add Template Container", + "assign-member": "Assign member", + "attached": "attached", + "attachment": "Attachment", + "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.", + "attachmentDeletePopup-title": "Delete Attachment?", + "attachments": "Attachments", + "auto-watch": "Automatically watch boards when they are created", "avatar-too-big": "The avatar is too large (__size__ max)", - "back": "Назад", - "board-change-color": "Изменить цвет", + "back": "Back", + "board-change-color": "Change color", "board-change-background-image": "Change Background Image", "board-background-image-url": "Background Image URL", "add-background-image": "Add Background Image", @@ -156,68 +159,68 @@ "boardInfoOnMyBoards-title": "All Boards Settings", "show-card-counter-per-list": "Show card count per list", "show-board_members-avatar": "Show Board members avatars", - "board-nb-stars": "%s избранное", - "board-not-found": "Доска не найдена", - "board-private-info": "Это доска будет <strong>частной</strong>.", - "board-public-info": "Эта доска будет <strong>доступной всем</strong>.", - "board-drag-drop-reorder-or-click-open": "Перетаскивайте, чтобы упорядочить значки доски. Нажмите значок доски чтобы открыть доску.", - "boardChangeColorPopup-title": "Изменить фон доски", + "board-nb-stars": "%s stars", + "board-not-found": "Board not found", + "board-private-info": "This board will be <strong>private</strong>.", + "board-public-info": "This board will be <strong>public</strong>.", + "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.", + "boardChangeColorPopup-title": "Change Board Background", "boardChangeBackgroundImagePopup-title": "Change Background Image", - "allBoardsChangeColorPopup-title": "Изменить цвет", + "allBoardsChangeColorPopup-title": "Change color", "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", - "boardChangeTitlePopup-title": "Переименовать доску", - "boardChangeVisibilityPopup-title": "Изменить настройки видимости", - "boardChangeWatchPopup-title": "Режимы оповещения", - "boardMenuPopup-title": "Настройки доски", - "allBoardsMenuPopup-title": "Настройки", - "boardChangeViewPopup-title": "Вид доски", - "boards": "Доски", - "board-view": "Вид доски", - "board-view-cal": "Календарь", - "board-view-swimlanes": "Дорожки", - "board-view-collapse": "Свернуть", - "board-view-gantt": "Диаграмма Ганта", - "board-view-lists": "Списки", - "bucket-example": "Например “Список дел”", - "cancel": "Отмена", - "card-archived": "Эта карточка перемещена в архив", - "board-archived": "Эта доска перемещена в архив.", - "card-comments-title": "Комментарии (%s)", - "card-delete-notice": "Это действие невозможно будет отменить. Все изменения, которые вы вносили в карточку будут потеряны.", - "card-delete-pop": "Все действия будут удалены из ленты активности участников, и вы не сможете заново открыть карточку. Действие необратимо", - "card-delete-suggest-archive": "Вы можете переместить карточку в архив, чтобы убрать ее с доски, сохранив всю историю действий участников.", + "boardChangeTitlePopup-title": "Rename Board", + "boardChangeVisibilityPopup-title": "Change Visibility", + "boardChangeWatchPopup-title": "Change Watch", + "boardMenuPopup-title": "Board Settings", + "allBoardsMenuPopup-title": "Settings", + "boardChangeViewPopup-title": "Board View", + "boards": "Boards", + "board-view": "Board View", + "board-view-cal": "Calendar", + "board-view-swimlanes": "Swimlanes", + "board-view-collapse": "Collapse", + "board-view-gantt": "Gantt", + "board-view-lists": "Lists", + "bucket-example": "Like “Bucket List” for example", + "cancel": "Cancel", + "card-archived": "This card is moved to Archive.", + "board-archived": "This board is moved to Archive.", + "card-comments-title": "This card has %s comment.", + "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", + "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", + "card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.", "card-archive-pop": "Card will not be visible at this list after archiving card.", "card-archive-suggest-cancel": "You can later restore card from Archive.", - "card-due": "Выполнить к", - "card-due-on": "Выполнить до", - "card-spent": "Затраченное время", - "card-edit-attachments": "Изменить вложения", - "card-edit-custom-fields": "Редактировать настраиваемые поля", - "card-edit-labels": "Изменить метку", - "card-edit-members": "Изменить участников", - "card-labels-title": "Изменить метки для этой карточки.", - "card-members-title": "Добавить или удалить с карточки участников доски.", - "card-start": "В работе с", - "card-start-on": "Начнётся с", - "cardAttachmentsPopup-title": "Прикрепить из", - "cardCustomField-datePopup-title": "Изменить дату", - "cardCustomFieldsPopup-title": "Редактировать настраиваемые поля", - "cardStartVotingPopup-title": "Голосовать", - "positiveVoteMembersPopup-title": "Сторонники", - "negativeVoteMembersPopup-title": "Противники", - "card-edit-voting": "Редактировать голосование", - "editVoteEndDatePopup-title": "Изменить дату окончания голосования", - "allowNonBoardMembers": "Разрешить всем авторизованным пользователям", - "vote-question": "Вопрос для голосования", - "vote-public": "Показать кто как голосовал", - "vote-for-it": "за", - "vote-against": "против", - "deleteVotePopup-title": "Удалить голосование?", - "vote-delete-pop": "Это действие невозможно будет отменить. Все связанные с голосованием действия будут потеряны.", - "cardStartPlanningPokerPopup-title": "Начать покер планирования", - "card-edit-planning-poker": "Редактировать покер планирования.", - "editPokerEndDatePopup-title": "Изменить дату окончания голосования покера планирования.", - "poker-question": "Покер планирования", + "card-due": "Due", + "card-due-on": "Due on", + "card-spent": "Spent Time", + "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", + "card-edit-labels": "Edit labels", + "card-edit-members": "Edit members", + "card-labels-title": "Change the labels for the card.", + "card-members-title": "Add or remove members of the board from the card.", + "card-start": "Start", + "card-start-on": "Starts on", + "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", + "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", + "card-edit-voting": "Edit voting", + "editVoteEndDatePopup-title": "Change vote end date", + "allowNonBoardMembers": "Allow all logged in users", + "vote-question": "Voting question", + "vote-public": "Show who voted what", + "vote-for-it": "for it", + "vote-against": "against", + "deleteVotePopup-title": "Delete vote?", + "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.", + "cardStartPlanningPokerPopup-title": "Start a Planning Poker", + "card-edit-planning-poker": "Edit Planning Poker", + "editPokerEndDatePopup-title": "Change Planning Poker vote end date", + "poker-question": "Planning Poker", "poker-one": "1", "poker-two": "2", "poker-three": "3", @@ -228,918 +231,926 @@ "poker-forty": "40", "poker-oneHundred": "100", "poker-unsure": "?", - "poker-finish": "Закончить", - "poker-result-votes": "Голоса", - "poker-result-who": "Кто", - "poker-replay": "Переиграть", - "set-estimation": "Задать оценку", - "deletePokerPopup-title": "Удалить покер планирования?", - "poker-delete-pop": "Удаление необратимо. Вы потеряете действия ассоциированные с этим покером планирования.", - "cardDeletePopup-title": "Удалить карточку?", + "poker-finish": "Finish", + "poker-result-votes": "Votes", + "poker-result-who": "Who", + "poker-replay": "Replay", + "set-estimation": "Set Estimation", + "deletePokerPopup-title": "Delete planning poker?", + "poker-delete-pop": "Deleting is permanent. You will lose all actions associated with this planning poker.", + "cardDeletePopup-title": "Delete Card?", "cardArchivePopup-title": "Archive Card?", - "cardDetailsActionsPopup-title": "Действия в карточке", - "cardLabelsPopup-title": "Метки", - "cardMembersPopup-title": "Участники", - "cardMorePopup-title": "Поделиться", - "cardTemplatePopup-title": "Создать шаблон", - "cards": "Карточки", - "cards-count": "Карточки", - "cards-count-one": "Карточка", - "casSignIn": "Войти через CAS", - "cardType-card": "Карточка", - "cardType-linkedCard": "Связанная карточка", - "cardType-linkedBoard": "Связанная доска", - "change": "Изменить", - "change-avatar": "Изменить аватар", - "change-password": "Изменить пароль", - "change-permissions": "Изменить права доступа", - "change-settings": "Изменить Настройки", - "changeAvatarPopup-title": "Изменить аватар", - "changeLanguagePopup-title": "Сменить язык", - "changePasswordPopup-title": "Изменить пароль", - "changePermissionsPopup-title": "Изменить настройки доступа", - "changeSettingsPopup-title": "Изменить Настройки", - "subtasks": "Подзадачи", - "checklists": "Контрольные списки", - "click-to-star": "Добавить в «Избранное»", - "click-to-unstar": "Удалить из «Избранного»", - "clipboard": "Буфер обмена или drag & drop", - "close": "Закрыть", - "close-board": "Закрыть доску", - "close-board-pop": "Вы сможете восстановить доску, нажав \"Архив\" в заголовке домашней страницы.", - "close-card": "Закрыть карточку", - "color-black": "черный", - "color-blue": "синий", - "color-crimson": "малиновый", - "color-darkgreen": "темно-зеленый", - "color-gold": "золотой", - "color-gray": "серый", - "color-green": "зеленый", - "color-indigo": "индиго", - "color-lime": "лимоновый", - "color-magenta": "маджента", - "color-mistyrose": "тускло-розовый", - "color-navy": "темно-синий", - "color-orange": "оранжевый", - "color-paleturquoise": "бледно-бирюзовый", - "color-peachpuff": "персиковый", - "color-pink": "розовый", - "color-plum": "сливовый", - "color-purple": "фиолетовый", - "color-red": "красный", - "color-saddlebrown": "кожано-коричневый", - "color-silver": "серебристый", - "color-sky": "голубой", - "color-slateblue": "серо-голубой", - "color-white": "белый", - "color-yellow": "желтый", - "unset-color": "Убрать", - "comment": "Добавить комментарий", - "comment-placeholder": "Написать комментарий", - "comment-only": "Только комментирование", - "comment-only-desc": "Может комментировать только карточки.", - "comment-delete": "Вы уверены, что хотите удалить этот комментарий?", - "deleteCommentPopup-title": "Удалить комментарий?", - "no-comments": "Без комментариев", - "no-comments-desc": "Не видит комментарии и историю действий.", - "worker": "Исполнитель", - "worker-desc": "Может перемещать карточки, отмечаться как исполнитель и оставлять комментарии", - "computer": "Загрузить с компьютера", - "confirm-subtask-delete-popup": "Вы уверены, что хотите удалить подзадачу?", + "cardDetailsActionsPopup-title": "Card Actions", + "cardLabelsPopup-title": "Labels", + "cardMembersPopup-title": "Members", + "cardMorePopup-title": "More", + "cardTemplatePopup-title": "Create template", + "cards": "Cards", + "cards-count": "Cards", + "cards-count-one": "Card", + "casSignIn": "Sign In with CAS", + "cardType-card": "Card", + "cardType-linkedCard": "Linked Card", + "cardType-linkedBoard": "Linked Board", + "change": "Change", + "change-avatar": "Change Avatar", + "change-password": "Change Password", + "change-permissions": "Change permissions", + "change-settings": "Change Settings", + "changeAvatarPopup-title": "Change Avatar", + "changeLanguagePopup-title": "Change Language", + "changePasswordPopup-title": "Change Password", + "changePermissionsPopup-title": "Change Permissions", + "changeSettingsPopup-title": "Change Settings", + "subtasks": "Subtasks", + "checklists": "Checklists", + "click-to-star": "Click to star this board.", + "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", + "clipboard": "Clipboard or drag & drop", + "close": "Close", + "close-board": "Close Board", + "close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.", + "close-card": "Close Card", + "color-black": "black", + "color-blue": "blue", + "color-crimson": "crimson", + "color-darkgreen": "darkgreen", + "color-gold": "gold", + "color-gray": "gray", + "color-green": "green", + "color-indigo": "indigo", + "color-lime": "lime", + "color-magenta": "magenta", + "color-mistyrose": "mistyrose", + "color-navy": "navy", + "color-orange": "orange", + "color-paleturquoise": "paleturquoise", + "color-peachpuff": "peachpuff", + "color-pink": "pink", + "color-plum": "plum", + "color-purple": "purple", + "color-red": "red", + "color-saddlebrown": "saddlebrown", + "color-silver": "silver", + "color-sky": "sky", + "color-slateblue": "slateblue", + "color-white": "white", + "color-yellow": "yellow", + "unset-color": "Unset", + "comments": "Comments", + "comment": "Comment", + "comment-placeholder": "Write Comment", + "comment-only": "Comment only", + "comment-only-desc": "Can comment on cards only.", + "comment-delete": "Are you sure you want to delete the comment?", + "deleteCommentPopup-title": "Delete comment?", + "no-comments": "No comments", + "no-comments-desc": "Can not see comments and activities.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", + "computer": "Computer", + "confirm-subtask-delete-popup": "Are you sure you want to delete subtask?", "confirm-checklist-delete-popup": "Are you sure you want to delete the checklist?", "subtaskDeletePopup-title": "Delete Subtask?", "checklistDeletePopup-title": "Delete Checklist?", - "copy-card-link-to-clipboard": "Копировать ссылку на карточку в буфер обмена", + "copy-card-link-to-clipboard": "Copy card link to clipboard", "copy-text-to-clipboard": "Copy text to clipboard", - "linkCardPopup-title": "Карточка-ссылка", - "searchElementPopup-title": "Поиск", - "copyCardPopup-title": "Копировать карточку", + "linkCardPopup-title": "Link Card", + "searchElementPopup-title": "Search", + "copyCardPopup-title": "Copy Card", "copyManyCardsPopup-title": "Copy Template to Many Cards", - "copyManyCardsPopup-instructions": "Названия и описания целевых карт в формате JSON", - "copyManyCardsPopup-format": "[ {\"title\": \"Название первой карточки\", \"description\":\"Описание первой карточки\"}, {\"title\":\"Название второй карточки\",\"description\":\"Описание второй карточки\"},{\"title\":\"Название последней карточки\",\"description\":\"Описание последней карточки\"} ]", - "create": "Создать", - "createBoardPopup-title": "Создать доску", - "chooseBoardSourcePopup-title": "Импортировать доску", - "createLabelPopup-title": "Создать метку", - "createCustomField": "Создать поле", - "createCustomFieldPopup-title": "Создать поле", - "current": "текущий", - "custom-field-delete-pop": "Отменить нельзя. Это удалит настраиваемое поле со всех карт и уничтожит его историю.", - "custom-field-checkbox": "Галочка", - "custom-field-currency": "Валюта", - "custom-field-currency-option": "Код валюты", - "custom-field-date": "Дата", - "custom-field-dropdown": "Выпадающий список", - "custom-field-dropdown-none": "(нет)", - "custom-field-dropdown-options": "Параметры списка", - "custom-field-dropdown-options-placeholder": "Нажмите «Ввод», чтобы добавить дополнительные параметры.", - "custom-field-dropdown-unknown": "(неизвестно)", - "custom-field-number": "Номер", - "custom-field-text": "Текст", - "custom-fields": "Настраиваемые поля", - "date": "Дата", - "decline": "Отклонить", - "default-avatar": "Аватар по умолчанию", - "delete": "Удалить", - "deleteCustomFieldPopup-title": "Удалить настраиваемые поля?", - "deleteLabelPopup-title": "Удалить метку?", - "description": "Описание", - "disambiguateMultiLabelPopup-title": "Разрешить конфликт меток", - "disambiguateMultiMemberPopup-title": "Разрешить конфликт участников", - "discard": "Отказать", - "done": "Готово", - "download": "Скачать", - "edit": "Редактировать", - "edit-avatar": "Изменить аватар", - "edit-profile": "Изменить профиль", - "edit-wip-limit": "Изменить лимит на кол-во задач", - "soft-wip-limit": "Мягкий лимит", - "editCardStartDatePopup-title": "Изменить дату начала", - "editCardDueDatePopup-title": "Изменить дату выполнения", - "editCustomFieldPopup-title": "Редактировать поле", - "addReactionPopup-title": "Добавить реакцию", - "editCardSpentTimePopup-title": "Изменить затраченное время", - "editLabelPopup-title": "Изменить метки", - "editNotificationPopup-title": "Редактировать уведомления", - "editProfilePopup-title": "Изменить профиль", - "email": "Эл.почта", - "email-enrollAccount-subject": "Аккаунт создан для вас здесь __url__", - "email-enrollAccount-text": "Привет __user__,\n\nДля того, чтобы начать использовать сервис, просто нажми на ссылку ниже.\n\n__url__\n\nСпасибо.", - "email-fail": "Отправка письма на EMail не удалась", - "email-fail-text": "Ошибка при попытке отправить письмо", - "email-invalid": "Неверный адрес электронной почты", - "email-invite": "Пригласить по электронной почте", - "email-invite-subject": "__inviter__ прислал вам приглашение", - "email-invite-text": "Дорогой __user__,\n\n__inviter__ пригласил вас присоединиться к доске \"__board__\" для сотрудничества.\n\nПожалуйста проследуйте по ссылке ниже:\n\n__url__\n\nСпасибо.", - "email-resetPassword-subject": "Перейдите по ссылке, чтобы сбросить пароль __url__", - "email-resetPassword-text": "Привет __user__,\n\nДля сброса пароля перейдите по ссылке ниже.\n\n__url__\n\nThanks.", - "email-sent": "Письмо отправлено", - "email-verifyEmail-subject": "Подтвердите вашу эл.почту перейдя по ссылке __url__", - "email-verifyEmail-text": "Привет __user__,\n\nДля подтверждения вашей электронной почты перейдите по ссылке ниже.\n\n__url__\n\nСпасибо.", - "enable-wip-limit": "Включить лимит на кол-во задач", - "error-board-doesNotExist": "Доска не найдена", - "error-board-notAdmin": "Вы должны обладать правами администратора этой доски, чтобы сделать это", - "error-board-notAMember": "Вы должны быть участником доски, чтобы сделать это", - "error-json-malformed": "Ваше текст не является правильным JSON", - "error-json-schema": "Содержимое вашего JSON не содержит информацию в корректном формате", + "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", + "copyManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", + "create": "Create", + "createBoardPopup-title": "Create Board", + "chooseBoardSourcePopup-title": "Import board", + "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", + "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-currency": "Currency", + "custom-field-currency-option": "Currency Code", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", + "date": "Date", + "decline": "Decline", + "default-avatar": "Default avatar", + "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", + "deleteLabelPopup-title": "Delete Label?", + "description": "Description", + "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", + "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", + "discard": "Discard", + "done": "Done", + "download": "Download", + "edit": "Edit", + "edit-avatar": "Change Avatar", + "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", + "soft-wip-limit": "Soft WIP Limit", + "editCardStartDatePopup-title": "Change start date", + "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", + "addReactionPopup-title": "Add reaction", + "editCardSpentTimePopup-title": "Change spent time", + "editLabelPopup-title": "Change Label", + "editNotificationPopup-title": "Edit Notification", + "editProfilePopup-title": "Edit Profile", + "email": "Email", + "email-enrollAccount-subject": "An account created for you on __siteName__", + "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", + "email-fail": "Sending email failed", + "email-fail-text": "Error trying to send email", + "email-invalid": "Invalid email", + "email-invite": "Invite via Email", + "email-invite-subject": "__inviter__ sent you an invitation", + "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", + "email-resetPassword-subject": "Reset your password on __siteName__", + "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", + "email-sent": "Email sent", + "email-verifyEmail-subject": "Verify your email address on __siteName__", + "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-wip-limit": "Enable WIP Limit", + "error-board-doesNotExist": "This board does not exist", + "error-board-notAdmin": "You need to be admin of this board to do that", + "error-board-notAMember": "You need to be a member of this board to do that", + "error-json-malformed": "Your text is not valid JSON", + "error-json-schema": "Your JSON data does not include the proper information in the correct format", "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ", - "error-list-doesNotExist": "Список не найден", - "error-user-doesNotExist": "Пользователь не найден", - "error-user-notAllowSelf": "Вы не можете пригласить себя", - "error-user-notCreated": "Пользователь не создан", - "error-username-taken": "Это имя пользователя уже занято", - "error-orgname-taken": "Это название организации уже занято", - "error-teamname-taken": "Это название команды уже занято", - "error-email-taken": "Этот адрес уже занят", - "export-board": "Экспортировать доску", - "export-board-json": "Экспортировать доску в JSON", - "export-board-csv": "Экспортировать доску в CSV", - "export-board-tsv": "Экспортировать доску в TSV", - "export-board-excel": "Экспортировать доску в Excel", - "user-can-not-export-excel": "Пользователь не может экспортировать в Excel", - "export-board-html": "Экспортировать доску в HTML", - "export-card": "Экспорт карточки", - "export-card-pdf": "Экспорт карточки в PDF", - "user-can-not-export-card-to-pdf": "Пользователь не может экспортировать карточку в PDF", - "exportBoardPopup-title": "Экспортировать доску", - "exportCardPopup-title": "Экспорт карточки", - "sort": "Сортировать", + "error-list-doesNotExist": "This list does not exist", + "error-user-doesNotExist": "This user does not exist", + "error-user-notAllowSelf": "You can not invite yourself", + "error-user-notCreated": "This user is not created", + "error-username-taken": "This username is already taken", + "error-orgname-taken": "This organization name is already taken", + "error-teamname-taken": "This team name is already taken", + "error-email-taken": "Email has already been taken", + "export-board": "Export board", + "export-board-json": "Export board to JSON", + "export-board-csv": "Export board to CSV", + "export-board-tsv": "Export board to TSV", + "export-board-excel": "Export board to Excel", + "user-can-not-export-excel": "User can not export Excel", + "export-board-html": "Export board to HTML", + "export-card": "Export card", + "export-card-pdf": "Export card to PDF", + "user-can-not-export-card-to-pdf": "User can not export card to PDF", + "exportBoardPopup-title": "Export board", + "exportCardPopup-title": "Export card", + "sort": "Sort", "sorted": "Sorted", "remove-sort": "Remove sort", - "sort-desc": "Нажмите, чтобы отсортировать список", - "list-sort-by": "Сортировать список по:", - "list-label-modifiedAt": "Время последнего доступа", - "list-label-title": "Название списка", - "list-label-sort": "Установленный вами порядок", + "sort-desc": "Click to Sort List", + "list-sort-by": "Sort the List By:", + "list-label-modifiedAt": "Last Access Time", + "list-label-title": "Name of the List", + "list-label-sort": "Your Manual Order", "list-label-short-modifiedAt": "(L)", "list-label-short-title": "(N)", "list-label-short-sort": "(M)", - "filter": "Фильтр", - "filter-cards": "Фильтр Карточек или Списков", - "filter-dates-label": "Фильтр по дате", - "filter-no-due-date": "Без срока выполнения", - "filter-overdue": "Просрочено", - "filter-due-today": "Крайний срок - сегодня", - "filter-due-this-week": "Крайний срок - эта неделя", + "filter": "Filter", + "filter-cards": "Filter Cards or Lists", + "filter-dates-label": "Filter by date", + "filter-no-due-date": "No due date", + "filter-overdue": "Overdue", + "filter-due-today": "Due today", + "filter-due-this-week": "Due this week", "filter-due-next-week": "Due next week", - "filter-due-tomorrow": "Крайний срок - завтра", - "list-filter-label": "Фильтровать Список по Названию", - "filter-clear": "Очистить фильтр", - "filter-labels-label": "Фильтр по метке", - "filter-no-label": "Нет метки", - "filter-member-label": "Фильтр по участнику", - "filter-no-member": "Нет участников", - "filter-assignee-label": "Фильтр по исполнителю", - "filter-no-assignee": "Не применимо", - "filter-custom-fields-label": "Фильтр по пользовательскому полю", - "filter-no-custom-fields": "Нет настраиваемых полей", - "filter-show-archive": "Показать архивные списки", - "filter-hide-empty": "Скрыть пустые списки", - "filter-on": "Включен фильтр", - "filter-on-desc": "Показываются карточки, соответствующие настройкам фильтра. Нажмите для редактирования.", + "filter-due-tomorrow": "Due tomorrow", + "list-filter-label": "Filter List by Title", + "filter-clear": "Clear filter", + "filter-labels-label": "Filter by label", + "filter-no-label": "No label", + "filter-member-label": "Filter by member", + "filter-no-member": "No member", + "filter-assignee-label": "Filter by assignee", + "filter-no-assignee": "No assignee", + "filter-custom-fields-label": "Filter by Custom Fields", + "filter-no-custom-fields": "No Custom Fields", + "filter-show-archive": "Show archived lists", + "filter-hide-empty": "Hide empty lists", + "filter-on": "Filter is on", + "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", - "other-filters-label": "Другие фильтры", - "advanced-filter-label": "Расширенный фильтр", - "advanced-filter-description": "Расширенный фильтр позволяет написать строку, содержащую следующие операторы: == != <= >= && || ( ) Пробел используется как разделитель между операторами. Можно фильтровать все настраиваемые поля, вводя их имена и значения. Например: Поле1 == Значение1. Примечание. Если поля или значения содержат пробелы, нужно взять их в одинарные кавычки. Например: 'Поле 1' == 'Значение 1'. Для одиночных управляющих символов (' \\\\/), которые нужно пропустить, следует использовать \\\\. Например: Field1 = I\\\\'m. Также можно комбинировать несколько условий. Например: F1 == V1 || F1 == V2. Обычно все операторы интерпретируются слева направо, но можно изменить порядок, разместив скобки. Например: F1 == V1 && (F2 == V2 || F2 == V3). Также можно искать текстовые поля с помощью регулярных выражений: F1 == /Tes.*/i", - "fullname": "Полное имя", - "header-logo-title": "Вернуться к доскам.", - "hide-system-messages": "Скрыть системные сообщения", - "headerBarCreateBoardPopup-title": "Создать доску", - "home": "Главная", - "import": "Импорт", - "impersonate-user": "Деперсонифицировать пользователя", - "link": "Ссылка", - "import-board": "импортировать доску", - "import-board-c": "Импортировать доску", - "import-board-title-trello": "Импортировать доску из Trello", - "import-board-title-wekan": "Импортировать доску, сохраненную ранее.", - "import-board-title-csv": "Импортировать доску из CSV/TSV", - "from-trello": "Из Trello", - "from-wekan": "Сохраненную ранее", - "from-csv": "Из CSV/TSV", - "import-board-instruction-trello": "На вашей Trello доске нажмите “Menu” - “More” - “Print and export - “Export JSON” и скопируйте полученный текст", - "import-board-instruction-csv": "Вставка CSV/TSV данных", - "import-board-instruction-wekan": "На вашей доске перейдите в “Меню”, далее “Экспортировать доску” и скопируйте текст из скачаного файла", - "import-board-instruction-about-errors": "Даже если при импорте возникли ошибки, иногда импортирование проходит успешно – тогда доска появится на странице «Все доски».", - "import-json-placeholder": "Вставьте JSON сюда", - "import-csv-placeholder": "Вставьте CSV/TSV сюда", - "import-map-members": "Составить карту участников", - "import-members-map": "Вы импортировали доску с участниками. Пожалуйста, отметьте участников, которых вы хотите импортировать в качестве пользователей", - "import-members-map-note": "Внимание: участники без установленного соответствия будут назначены текущему пользователю.", - "import-show-user-mapping": "Проверить карту участников", - "import-user-select": "Выберите существующего пользователя, которого вы хотите использовать в качестве участника", - "importMapMembersAddPopup-title": "Выбрать участника", - "info": "Версия", - "initials": "Инициалы", - "invalid-date": "Неверная дата", - "invalid-time": "Некорректное время", - "invalid-user": "Неверный пользователь", - "joined": "вступил", - "just-invited": "Вас только что пригласили на эту доску", - "keyboard-shortcuts": "Сочетания клавиш", - "label-create": "Создать метку", - "label-default": "%s (по умолчанию)", - "label-delete-pop": "Это действие невозможно будет отменить. Эта метка будут удалена во всех карточках. Также будет удалена вся история этой метки.", - "labels": "Метки", - "language": "Язык", - "last-admin-desc": "Вы не можете изменять роли, для этого требуются права администратора.", - "leave-board": "Покинуть доску", - "leave-board-pop": "Вы уверенны, что хотите покинуть __boardTitle__? Вы будете удалены из всех карточек на этой доске.", - "leaveBoardPopup-title": "Покинуть доску?", - "link-card": "Доступна по ссылке", - "list-archive-cards": "Переместить все карточки в этом списке в Архив", - "list-archive-cards-pop": "Это действие удалит все карточки из этого списка с доски. Чтобы просмотреть карточки в Архиве и вернуть их на доску, нажмите “Меню” > “Архив”.", - "list-move-cards": "Переместить все карточки в этом списке", - "list-select-cards": "Выбрать все карточки в этом списке", - "set-color-list": "Задать цвет", - "listActionPopup-title": "Список действий", - "settingsUserPopup-title": "Пользовательские настройки", - "settingsTeamPopup-title": "Настройки команды", - "settingsOrgPopup-title": "Настройки организации", - "swimlaneActionPopup-title": "Действия с дорожкой", - "swimlaneAddPopup-title": "Добавить дорожку ниже", - "listImportCardPopup-title": "Импортировать Trello карточку", - "listImportCardsTsvPopup-title": "Импорт CSV/TSV из Excel", - "listMorePopup-title": "Поделиться", - "link-list": "Ссылка на список", - "list-delete-pop": "Все действия будут удалены из ленты активности участников, и вы не сможете восстановить список. Данное действие необратимо.", - "list-delete-suggest-archive": "Вы можете отправить список в Архив, чтобы убрать его с доски и при этом сохранить результаты.", - "lists": "Списки", - "swimlanes": "Дорожки", - "log-out": "Выйти", - "log-in": "Войти", - "loginPopup-title": "Войти", - "memberMenuPopup-title": "Настройки участника", - "members": "Участники", - "menu": "Меню", - "move-selection": "Переместить выделение", - "moveCardPopup-title": "Переместить карточку", - "moveCardToBottom-title": "Переместить вниз", - "moveCardToTop-title": "Переместить вверх", - "moveSelectionPopup-title": "Переместить выделение", - "multi-selection": "Выбрать несколько", - "multi-selection-label": "Задать метку для отмеченного", - "multi-selection-member": "Задать участника для отмеченного", - "multi-selection-on": "Выбрать несколько из", - "muted": "Не беспокоить", - "muted-info": "Вы НИКОГДА не будете уведомлены ни о каких изменениях в этой доске.", - "my-boards": "Мои доски", - "name": "Имя", - "no-archived-cards": "Нет карточек в Архиве", - "no-archived-lists": "Нет списков в Архиве", - "no-archived-swimlanes": "Нет дорожек в Архиве", - "no-results": "Ничего не найдено", - "normal": "Обычный", - "normal-desc": "Может редактировать карточки. Не может управлять настройками.", - "not-accepted-yet": "Приглашение еще не принято", + "other-filters-label": "Other Filters", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "fullname": "Full Name", + "header-logo-title": "Go back to your boards page.", + "show-activities": "Show Activities", + "headerBarCreateBoardPopup-title": "Create Board", + "home": "Home", + "import": "Import", + "impersonate-user": "Impersonate user", + "link": "Link", + "import-board": "import board", + "import-board-c": "Import board", + "import-board-title-trello": "Import board from Trello", + "import-board-title-wekan": "Import board from previous export", + "import-board-title-csv": "Import board from CSV/TSV", + "from-trello": "From Trello", + "from-wekan": "From previous export", + "from-csv": "From CSV/TSV", + "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.", + "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .", + "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.", + "import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.", + "import-json-placeholder": "Paste your valid JSON data here", + "import-csv-placeholder": "Paste your valid CSV/TSV data here", + "import-map-members": "Map members", + "import-members-map": "Your imported board has some members. Please map the members you want to import to your users", + "import-members-map-note": "Note: Unmapped members will be assigned to the current user.", + "import-show-user-mapping": "Review members mapping", + "import-user-select": "Pick your existing user you want to use as this member", + "importMapMembersAddPopup-title": "Select member", + "info": "Version", + "initials": "Initials", + "invalid-date": "Invalid date", + "invalid-time": "Invalid time", + "invalid-user": "Invalid user", + "joined": "joined", + "just-invited": "You are just invited to this board", + "keyboard-shortcuts": "Keyboard shortcuts", + "label-create": "Create Label", + "label-default": "%s label (default)", + "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", + "labels": "Labels", + "language": "Language", + "last-admin-desc": "You can’t change roles because there must be at least one admin.", + "leave-board": "Leave Board", + "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", + "leaveBoardPopup-title": "Leave Board ?", + "link-card": "Link to this card", + "list-archive-cards": "Move all cards in this list to Archive", + "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.", + "list-move-cards": "Move all cards in this list", + "list-select-cards": "Select all cards in this list", + "set-color-list": "Set Color", + "listActionPopup-title": "List Actions", + "settingsUserPopup-title": "User Settings", + "settingsTeamPopup-title": "Team Settings", + "settingsOrgPopup-title": "Organization Settings", + "swimlaneActionPopup-title": "Swimlane Actions", + "swimlaneAddPopup-title": "Add a Swimlane below", + "listImportCardPopup-title": "Import a Trello card", + "listImportCardsTsvPopup-title": "Import Excel CSV/TSV", + "listMorePopup-title": "More", + "link-list": "Link to this list", + "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", + "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.", + "lists": "Lists", + "swimlanes": "Swimlanes", + "log-out": "Log Out", + "log-in": "Log In", + "loginPopup-title": "Log In", + "memberMenuPopup-title": "Member Settings", + "members": "Members", + "menu": "Menu", + "move-selection": "Move selection", + "moveCardPopup-title": "Move Card", + "moveCardToBottom-title": "Move to Bottom", + "moveCardToTop-title": "Move to Top", + "moveSelectionPopup-title": "Move selection", + "multi-selection": "Multi-Selection", + "multi-selection-label": "Set label for selection", + "multi-selection-member": "Set member for selection", + "multi-selection-on": "Multi-Selection is on", + "muted": "Muted", + "muted-info": "You will never be notified of any changes in this board", + "my-boards": "My Boards", + "name": "Name", + "no-archived-cards": "No cards in Archive.", + "no-archived-lists": "No lists in Archive.", + "no-archived-swimlanes": "No swimlanes in Archive.", + "no-results": "No results", + "normal": "Normal", + "normal-desc": "Can view and edit cards. Can't change settings.", + "not-accepted-yet": "Invitation not accepted yet", "notify-participate": "Receive updates to any cards you participate as creator or member", - "notify-watch": "Получать обновления по любым доскам, спискам и карточкам, на которые вы подписаны как наблюдатель.", - "optional": "не обязательно", - "or": "или", - "page-maybe-private": "Возможно, эта страница скрыта от незарегистрированных пользователей. Попробуйте <a href='%s'>войти на сайт</a>.", - "page-not-found": "Страница не найдена.", - "password": "Пароль", - "paste-or-dragdrop": "вставьте, или перетащите файл с изображением сюда (только графический файл)", - "participating": "Участвую", - "preview": "Предпросмотр", - "previewAttachedImagePopup-title": "Предпросмотр", - "previewClipboardImagePopup-title": "Предпросмотр", - "private": "Закрытая", - "private-desc": "Эта доска с ограниченным доступом. Только участники могут работать с ней.", - "profile": "Профиль", - "public": "Открытая", - "public-desc": "Эта доска может быть видна всем у кого есть ссылка. Также может быть проиндексирована поисковыми системами. Вносить изменения могут только участники.", - "quick-access-description": "Нажмите на звезду, что добавить ярлык доски на панель.", + "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", + "optional": "optional", + "or": "or", + "page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.", + "page-not-found": "Page not found.", + "password": "Password", + "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", + "participating": "Participating", + "preview": "Preview", + "previewAttachedImagePopup-title": "Preview", + "previewClipboardImagePopup-title": "Preview", + "private": "Private", + "private-desc": "This board is private. Only people added to the board can view and edit it.", + "profile": "Profile", + "public": "Public", + "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.", + "quick-access-description": "Star a board to add a shortcut in this bar.", "remove-cover": "Remove cover image from minicard", - "remove-from-board": "Удалить с доски", - "remove-label": "Удалить метку", - "listDeletePopup-title": "Удалить список?", - "remove-member": "Удалить участника", - "remove-member-from-card": "Удалить из карточки", - "remove-member-pop": "Удалить участника __name__ (__username__) из доски __boardTitle__? Участник будет удален из всех карточек на этой доске. Также он получит уведомление о совершаемом действии.", - "removeMemberPopup-title": "Удалить участника?", - "rename": "Переименовать", - "rename-board": "Переименовать доску", - "restore": "Восстановить", + "remove-from-board": "Remove from Board", + "remove-label": "Remove Label", + "listDeletePopup-title": "Delete List ?", + "remove-member": "Remove Member", + "remove-member-from-card": "Remove from Card", + "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", + "removeMemberPopup-title": "Remove Member?", + "rename": "Rename", + "rename-board": "Rename Board", + "restore": "Restore", "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions", "rescue-card-description-dialogue": "Overwrite current card description with your changes?", - "save": "Сохранить", - "search": "Поиск", - "rules": "Правила", - "search-cards": "Поиск в названиях карточек/списков, описаниях и пользовательских полях на этой доске", - "search-example": "Введите текст, который ищете, и нажмите Ввод.", - "select-color": "Выбрать цвет", - "select-board": "Выбрать доску", - "set-wip-limit-value": "Устанавливает ограничение на максимальное количество задач в этом списке", - "setWipLimitPopup-title": "Задать лимит на кол-во задач", - "shortcut-assign-self": "Связать себя с текущей карточкой", - "shortcut-autocomplete-emoji": "Автозаполнение emoji", - "shortcut-autocomplete-members": "Автозаполнение участников", - "shortcut-clear-filters": "Сбросить все фильтры", - "shortcut-close-dialog": "Закрыть диалог", - "shortcut-filter-my-cards": "Показать мои карточки", + "save": "Save", + "search": "Search", + "rules": "Rules", + "search-cards": "Search from card/list titles, descriptions and custom fields on this board", + "search-example": "Write text you search and press Enter", + "select-color": "Select Color", + "select-board": "Select Board", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", + "shortcut-assign-self": "Assign yourself to current card", + "shortcut-autocomplete-emoji": "Autocomplete emoji", + "shortcut-autocomplete-members": "Autocomplete members", + "shortcut-clear-filters": "Clear all filters", + "shortcut-close-dialog": "Close Dialog", + "shortcut-filter-my-cards": "Filter my cards", "shortcut-filter-my-assigned-cards": "Filter my assigned cards", - "shortcut-show-shortcuts": "Поднять список ярлыков", - "shortcut-toggle-filterbar": "Переместить фильтр на бововую панель", - "shortcut-toggle-searchbar": "Включить/выключить боковую панель поиска", - "shortcut-toggle-sidebar": "Переместить доску на боковую панель", - "show-cards-minimum-count": "Показывать количество карточек если их больше", - "sidebar-open": "Открыть Панель", - "sidebar-close": "Скрыть Панель", - "signupPopup-title": "Создать учетную запись", - "star-board-title": "Добавить в «Избранное». Эта доска будет всегда на виду.", - "starred-boards": "Добавленные в «Избранное»", - "starred-boards-description": "Избранные доски будут всегда вверху списка.", - "subscribe": "Подписаться", - "team": "Участники", - "this-board": "эту доску", - "this-card": "текущая карточка", - "spent-time-hours": "Затраченное время (в часах)", - "overtime-hours": "Переработка (в часах)", - "overtime": "Переработка", - "has-overtime-cards": "Имеются карточки с переработкой", - "has-spenttime-cards": "Имеются карточки с учетом затраченного времени", - "time": "Время", - "title": "Название", + "shortcut-show-shortcuts": "Bring up this shortcuts list", + "shortcut-toggle-filterbar": "Toggle Filter Sidebar", + "shortcut-toggle-searchbar": "Toggle Search Sidebar", + "shortcut-toggle-sidebar": "Toggle Board Sidebar", + "show-cards-minimum-count": "Show cards count if list contains more than", + "sidebar-open": "Open Sidebar", + "sidebar-close": "Close Sidebar", + "signupPopup-title": "Create an Account", + "star-board-title": "Click to star this board. It will show up at top of your boards list.", + "starred-boards": "Starred Boards", + "starred-boards-description": "Starred boards show up at the top of your boards list.", + "subscribe": "Subscribe", + "team": "Team", + "this-board": "this board", + "this-card": "this card", + "spent-time-hours": "Spent time (hours)", + "overtime-hours": "Overtime (hours)", + "overtime": "Overtime", + "has-overtime-cards": "Has overtime cards", + "has-spenttime-cards": "Has spent time cards", + "time": "Time", + "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", - "tracking": "Отслеживание", - "tracking-info": "Вы будете уведомлены о любых изменениях в тех карточках, в которых вы являетесь создателем или участником.", - "type": "Тип", - "unassign-member": "Отменить назначение участника", - "unsaved-description": "У вас есть несохраненное описание.", - "unwatch": "Перестать следить", - "upload": "Загрузить", - "upload-avatar": "Загрузить аватар", - "uploaded-avatar": "Загруженный аватар", - "custom-top-left-corner-logo-image-url": "URL пользовательского изображения в левом верхнем углу", - "custom-top-left-corner-logo-link-url": "URL ссылки с пользовательского изображения в левом верхнем углу", - "custom-top-left-corner-logo-height": "Задать высоту логотипа в верхнем левом углу. По умолчанию 27", - "custom-login-logo-image-url": "URL пользовательского изображения при входе", - "custom-login-logo-link-url": "URL ссылки с пользовательского изображения при входе", + "tracking": "Tracking", + "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", + "unassign-member": "Unassign member", + "unsaved-description": "You have an unsaved description.", + "unwatch": "Unwatch", + "upload": "Upload", + "upload-avatar": "Upload an avatar", + "uploaded-avatar": "Uploaded an avatar", + "custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL", + "custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL", + "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", + "custom-login-logo-image-url": "Custom Login Logo Image URL", + "custom-login-logo-link-url": "Custom Login Logo Link URL", "custom-help-link-url": "Custom Help Link URL", - "text-below-custom-login-logo": "Текст под пользовательским изображением при входе", - "automatic-linked-url-schemes": "Пользовательская URL схема, которая должна быть кликабельной. Одна схема в каждой строке.", - "username": "Имя пользователя", - "import-usernames": "Импорт имен пользователей", - "view-it": "Просмотреть", - "warn-list-archived": "внимание: эта карточка из списка, который находится в Архиве", - "watch": "Следить", - "watching": "Полный контроль", - "watching-info": "Вы будете уведомлены об любых изменениях в этой доске.", - "welcome-board": "Приветственная Доска", - "welcome-swimlane": "Этап 1", - "welcome-list1": "Основы", - "welcome-list2": "Расширенно", - "card-templates-swimlane": "Шаблоны карточек", - "list-templates-swimlane": "Шаблоны списков", - "board-templates-swimlane": "Шаблоны доски", - "what-to-do": "Что вы хотите сделать?", - "wipLimitErrorPopup-title": "Некорректный лимит на кол-во задач", - "wipLimitErrorPopup-dialog-pt1": "Количество задач в этом списке превышает установленный вами лимит", - "wipLimitErrorPopup-dialog-pt2": "Пожалуйста, перенесите некоторые задачи из этого списка или увеличьте лимит на кол-во задач", - "admin-panel": "Административная Панель", - "settings": "Настройки", - "people": "Люди", - "registration": "Регистрация", - "disable-self-registration": "Отключить самостоятельную регистрацию", + "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", + "username": "Username", + "import-usernames": "Import Usernames", + "view-it": "View it", + "warn-list-archived": "warning: this card is in an list at Archive", + "watch": "Watch", + "watching": "Watching", + "watching-info": "You will be notified of any change in this board", + "welcome-board": "Welcome Board", + "welcome-swimlane": "Milestone 1", + "welcome-list1": "Basics", + "welcome-list2": "Advanced", + "card-templates-swimlane": "Card Templates", + "list-templates-swimlane": "List Templates", + "board-templates-swimlane": "Board Templates", + "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", + "admin-panel": "Admin Panel", + "settings": "Settings", + "people": "People", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", "disable-forgot-password": "Disable Forgot Password", - "invite": "Пригласить", - "invite-people": "Пригласить людей", - "to-boards": "В Доску(и)", - "email-addresses": "Email адрес", - "smtp-host-description": "Адрес SMTP сервера, который отправляет ваши электронные письма.", - "smtp-port-description": "Порт который SMTP-сервер использует для исходящих сообщений.", - "smtp-tls-description": "Включить поддержку TLS для SMTP сервера", - "smtp-host": "SMTP Хост", - "smtp-port": "SMTP Порт", - "smtp-username": "Имя пользователя", - "smtp-password": "Пароль", - "smtp-tls": "Поддержка TLS", - "send-from": "От", - "send-smtp-test": "Отправьте тестовое письмо себе", - "invitation-code": "Код приглашения", - "email-invite-register-subject": "__inviter__ прислал вам приглашение", - "email-invite-register-text": "Уважаемый __user__,\n\n__inviter__ приглашает вас использовать канбан-доску для совместной работы.\n\nПожалуйста, проследуйте по ссылке:\n__url__\n\nКод вашего приглашения: __icode__\n\nСпасибо.", - "email-smtp-test-subject": "Тестовое письмо SMTP", - "email-smtp-test-text": "Вы успешно отправили письмо", - "error-invitation-code-not-exist": "Код приглашения не существует", - "error-notAuthorized": "У вас нет доступа на просмотр этой страницы.", - "webhook-title": "Имя Веб-Хука", - "webhook-token": "Токен (Опционально для аутентификации)", - "outgoing-webhooks": "Исходящие Веб-Хуки", - "bidirectional-webhooks": "Двунаправленный Веб-Хук", - "outgoingWebhooksPopup-title": "Исходящие Веб-Хуки", - "boardCardTitlePopup-title": "Фильтр названий карточек", - "disable-webhook": "Отключить этот Веб-Хук", - "global-webhook": "Глобальные Веб-Хуки", - "new-outgoing-webhook": "Новый исходящий Веб-Хук", - "no-name": "(Неизвестный)", - "Node_version": "Версия NodeJS", - "Meteor_version": "Версия Meteor", - "MongoDB_version": "Версия MongoDB", - "MongoDB_storage_engine": "Движок хранилища MongoDB", - "MongoDB_Oplog_enabled": "MongoDB Oplog включен", - "OS_Arch": "Архитектура", - "OS_Cpus": "Количество процессоров", - "OS_Freemem": "Свободная память", - "OS_Loadavg": "Средняя загрузка", - "OS_Platform": "Платформа", - "OS_Release": "Версия ядра", - "OS_Totalmem": "Общая память", - "OS_Type": "Тип ОС", - "OS_Uptime": "Время работы", - "days": "дней", - "hours": "часы", - "minutes": "минуты", - "seconds": "секунды", - "show-field-on-card": "Показать это поле на карточке", - "automatically-field-on-card": "Добавить поле на новую карточку", - "always-field-on-card": "Добавить поле на все карточки", - "showLabel-field-on-card": "Показать имя поля на карточке", - "showSum-field-on-list": "Показать итоги полей сверху списка", - "yes": "Да", - "no": "Нет", - "accounts": "Учетные записи", - "accounts-allowEmailChange": "Разрешить изменение электронной почты", - "accounts-allowUserNameChange": "Разрешить изменение имени пользователя", - "tableVisibilityMode-allowPrivateOnly": "Видимость досок: Показывать только частные доски", - "tableVisibilityMode" : "Видимость досок", - "createdAt": "Создан", - "modifiedAt": "Изменено", - "verified": "Подтвержден", - "active": "Действующий", - "card-received": "Получено", - "card-received-on": "Получено с", - "card-end": "Завершено", - "card-end-on": "Завершится до", - "editCardReceivedDatePopup-title": "Изменить дату получения", - "editCardEndDatePopup-title": "Изменить дату завершения", - "setCardColorPopup-title": "Задать цвет", - "setCardActionsColorPopup-title": "Выберите цвет", - "setSwimlaneColorPopup-title": "Выберите цвет", - "setListColorPopup-title": "Выберите цвет", - "assigned-by": "Поручил", - "requested-by": "Запросил", - "card-sorting-by-number": "Сортировка карточек по номеру", - "board-delete-notice": "Удаление является постоянным. Вы потеряете все списки, карты и действия, связанные с этой доской.", - "delete-board-confirm-popup": "Все списки, карточки, метки и действия будут удалены, и вы не сможете восстановить содержимое доски. Отменить нельзя.", - "boardDeletePopup-title": "Удалить доску?", - "delete-board": "Удалить доску", - "default-subtasks-board": "Подзадача для доски __board__", - "default": "По умолчанию", - "defaultdefault": "По умолчанию", - "queue": "Очередь", - "subtask-settings": "Настройки подзадач", - "card-settings": "Настройки карточки", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-tls-description": "Enable TLS support for SMTP server", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Username", + "smtp-password": "Password", + "smtp-tls": "TLS support", + "send-from": "From", + "send-smtp-test": "Send a test email to yourself", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ sent you an invitation", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "email-smtp-test-subject": "SMTP Test Email", + "email-smtp-test-text": "You have successfully sent an email", + "error-invitation-code-not-exist": "Invitation code doesn't exist", + "error-notAuthorized": "You are not authorized to view this page.", + "webhook-title": "Webhook Name", + "webhook-token": "Token (Optional for Authentication)", + "outgoing-webhooks": "Outgoing Webhooks", + "bidirectional-webhooks": "Two-Way Webhooks", + "outgoingWebhooksPopup-title": "Outgoing Webhooks", + "boardCardTitlePopup-title": "Card Title Filter", + "disable-webhook": "Disable This Webhook", + "global-webhook": "Global Webhooks", + "new-outgoing-webhook": "New Outgoing Webhook", + "no-name": "(Unknown)", + "Node_version": "Node version", + "Meteor_version": "Meteor version", + "MongoDB_version": "MongoDB version", + "MongoDB_storage_engine": "MongoDB storage engine", + "MongoDB_Oplog_enabled": "MongoDB Oplog enabled", + "OS_Arch": "OS Arch", + "OS_Cpus": "OS CPU Count", + "OS_Freemem": "OS Free Memory", + "OS_Loadavg": "OS Load Average", + "OS_Platform": "OS Platform", + "OS_Release": "OS Release", + "OS_Totalmem": "OS Total Memory", + "OS_Type": "OS Type", + "OS_Uptime": "OS Uptime", + "days": "days", + "hours": "hours", + "minutes": "minutes", + "seconds": "seconds", + "show-field-on-card": "Show this field on card", + "automatically-field-on-card": "Add field to new cards", + "always-field-on-card": "Add field to all cards", + "showLabel-field-on-card": "Show field label on minicard", + "showSum-field-on-list": "Show sum of fields at top of list", + "yes": "Yes", + "no": "No", + "accounts": "Accounts", + "accounts-allowEmailChange": "Allow Email Change", + "accounts-allowUserNameChange": "Allow Username Change", + "tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only", + "tableVisibilityMode" : "Boards visibility", + "createdAt": "Created at", + "modifiedAt": "Modified at", + "verified": "Verified", + "active": "Active", + "card-received": "Received", + "card-received-on": "Received on", + "card-end": "End", + "card-end-on": "Ends on", + "editCardReceivedDatePopup-title": "Change received date", + "editCardEndDatePopup-title": "Change end date", + "setCardColorPopup-title": "Set color", + "setCardActionsColorPopup-title": "Choose a color", + "setSwimlaneColorPopup-title": "Choose a color", + "setListColorPopup-title": "Choose a color", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "card-sorting-by-number": "Card sorting by number", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board", + "default-subtasks-board": "Subtasks for __board__ board", + "default": "Default", + "defaultdefault": "Default", + "queue": "Queue", + "subtask-settings": "Subtasks Settings", + "card-settings": "Card Settings", "minicard-settings": "Minicard Settings", - "boardSubtaskSettingsPopup-title": "Настройки подзадач для доски", - "boardCardSettingsPopup-title": "Настройки карточки", + "boardSubtaskSettingsPopup-title": "Board Subtasks Settings", + "boardCardSettingsPopup-title": "Card Settings", "boardMinicardSettingsPopup-title": "Minicard Settings", - "deposit-subtasks-board": "Отправлять подзадачи на доску:", - "deposit-subtasks-list": "Размещать подзадачи, отправленные на эту доску, в списке:", - "show-parent-in-minicard": "Указывать исходную карточку:", + "deposit-subtasks-board": "Deposit subtasks to this board:", + "deposit-subtasks-list": "Landing list for subtasks deposited here:", + "show-parent-in-minicard": "Show parent in minicard:", "description-on-minicard": "Description on minicard", "cover-attachment-on-minicard": "Cover image on minicard", "badge-attachment-on-minicard": "Count of attachments on minicard", "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", - "prefix-with-full-path": "Cверху, полный путь", - "prefix-with-parent": "Сверху, только имя", - "subtext-with-full-path": "Cнизу, полный путь", - "subtext-with-parent": "Снизу, только имя", - "change-card-parent": "Сменить исходную карточку", - "parent-card": "Исходная карточка", - "source-board": "Исходная доска", - "no-parent": "Не указывать", - "activity-added-label": "добавил метку '%s' на %s", - "activity-removed-label": "удалил метку '%s' с %s", - "activity-delete-attach": "удалил вложение из %s", - "activity-added-label-card": "добавил метку '%s'", - "activity-removed-label-card": "удалил метку '%s'", - "activity-delete-attach-card": "удалил вложение", - "activity-set-customfield": "сменил значение поля '%s' на '%s' в карточке %s", - "activity-unset-customfield": "очистил поле '%s' в карточке %s", - "r-rule": "Правило", - "r-add-trigger": "Задать условие", - "r-add-action": "Задать действие", - "r-board-rules": "Правила доски", - "r-add-rule": "Добавить правило", - "r-view-rule": "Показать правило", - "r-delete-rule": "Удалить правило", - "r-new-rule-name": "Имя нового правила", - "r-no-rules": "Нет правил", - "r-trigger": "Триггер", - "r-action": "Действие", - "r-when-a-card": "Когда карточка", + "prefix-with-full-path": "Prefix with full path", + "prefix-with-parent": "Prefix with parent", + "subtext-with-full-path": "Subtext with full path", + "subtext-with-parent": "Subtext with parent", + "change-card-parent": "Change card's parent", + "parent-card": "Parent card", + "source-board": "Source board", + "no-parent": "Don't show parent", + "activity-added-label": "added label '%s' to %s", + "activity-removed-label": "removed label '%s' from %s", + "activity-delete-attach": "deleted an attachment from %s", + "activity-added-label-card": "added label '%s'", + "activity-removed-label-card": "removed label '%s'", + "activity-delete-attach-card": "deleted an attachment", + "activity-set-customfield": "set custom field '%s' to '%s' in %s", + "activity-unset-customfield": "unset custom field '%s' in %s", + "r-rule": "Rule", + "r-add-trigger": "Add trigger", + "r-add-action": "Add action", + "r-board-rules": "Board rules", + "r-add-rule": "Add rule", + "r-view-rule": "View rule", + "r-delete-rule": "Delete rule", + "r-new-rule-name": "New rule title", + "r-no-rules": "No rules", + "r-trigger": "Trigger", + "r-action": "Action", + "r-when-a-card": "When a card", "r-is": "is", - "r-is-moved": "перемещается", - "r-added-to": "Добавлено в", - "r-removed-from": "Покидает", - "r-the-board": "доску", - "r-list": "список", - "set-filter": "Установить фильтр", - "r-moved-to": "Перемещается в", - "r-moved-from": "Покидает", - "r-archived": "Перемещена в архив", - "r-unarchived": "Восстановлена из архива", - "r-a-card": "карточку", - "r-when-a-label-is": "Когда метка", - "r-when-the-label": "Когда метка", - "r-list-name": "имя", - "r-when-a-member": "Когда участник", - "r-when-the-member": "Когда участник", - "r-name": "имя", - "r-when-a-attach": "Когда вложение", - "r-when-a-checklist": "Когда контрольный список", - "r-when-the-checklist": "Когда контрольный список", - "r-completed": "Завершен", - "r-made-incomplete": "Вновь открыт", - "r-when-a-item": "Когда пункт контрольного списка", - "r-when-the-item": "Когда пункт контрольного списка", - "r-checked": "Отмечен", - "r-unchecked": "Снят", - "r-move-card-to": "Переместить карточку в", - "r-top-of": "Начало", - "r-bottom-of": "Конец", - "r-its-list": "текущего списка", - "r-archive": "Переместить в архив", - "r-unarchive": "Восстановить из Архива", - "r-card": "карточку", - "r-add": "Создать", - "r-remove": "Удалить", - "r-label": "метку", - "r-member": "участника", - "r-remove-all": "Удалить всех участников из карточки", - "r-set-color": "Сменить цвет на", - "r-checklist": "контрольный список", - "r-check-all": "Отметить все", - "r-uncheck-all": "Снять все", - "r-items-check": "пункты контрольного списка", - "r-check": "Отметить", - "r-uncheck": "Снять", - "r-item": "пункт", - "r-of-checklist": "контрольного списка", - "r-send-email": "Отправить письмо", - "r-to": "кому", - "r-of": "из", - "r-subject": "тема", - "r-rule-details": "Содержание правила", - "r-d-move-to-top-gen": "Переместить карточку в начало текущего списка", - "r-d-move-to-top-spec": "Переместить карточку в начало списка", - "r-d-move-to-bottom-gen": "Переместить карточку в конец текущего списка", - "r-d-move-to-bottom-spec": "Переместить карточку в конец списка", - "r-d-send-email": "Отправить письмо", - "r-d-send-email-to": "кому", - "r-d-send-email-subject": "тема", - "r-d-send-email-message": "сообщение", - "r-d-archive": "Переместить карточку в Архив", - "r-d-unarchive": "Восстановить карточку из Архива", - "r-d-add-label": "Добавить метку", - "r-d-remove-label": "Удалить метку", - "r-create-card": "Создать новую карточку", - "r-in-list": "в списке", - "r-in-swimlane": "в дорожке", - "r-d-add-member": "Добавить участника", - "r-d-remove-member": "Удалить участника", - "r-d-remove-all-member": "Удалить всех участников", - "r-d-check-all": "Отметить все пункты в списке", - "r-d-uncheck-all": "Снять все пункты в списке", - "r-d-check-one": "Отметить пункт", - "r-d-uncheck-one": "Снять пункт", - "r-d-check-of-list": "контрольного списка", - "r-d-add-checklist": "Добавить контрольный список", - "r-d-remove-checklist": "Удалить контрольный список", - "r-by": "пользователем", - "r-add-checklist": "Добавить контрольный список", - "r-with-items": "с пунктами", - "r-items-list": "пункт1,пункт2,пункт3", - "r-add-swimlane": "Добавить дорожку", - "r-swimlane-name": "имя", + "r-is-moved": "is moved", + "r-added-to": "Added to", + "r-removed-from": "Removed from", + "r-the-board": "the board", + "r-list": "list", + "set-filter": "Set Filter", + "r-moved-to": "Moved to", + "r-moved-from": "Moved from", + "r-archived": "Moved to Archive", + "r-unarchived": "Restored from Archive", + "r-a-card": "a card", + "r-when-a-label-is": "When a label is", + "r-when-the-label": "When the label", + "r-list-name": "list name", + "r-when-a-member": "When a member is", + "r-when-the-member": "When the member", + "r-name": "name", + "r-when-a-attach": "When an attachment", + "r-when-a-checklist": "When a checklist is", + "r-when-the-checklist": "When the checklist", + "r-completed": "Completed", + "r-made-incomplete": "Made incomplete", + "r-when-a-item": "When a checklist item is", + "r-when-the-item": "When the checklist item", + "r-checked": "Checked", + "r-unchecked": "Unchecked", + "r-move-card-to": "Move card to", + "r-top-of": "Top of", + "r-bottom-of": "Bottom of", + "r-its-list": "its list", + "r-archive": "Move to Archive", + "r-unarchive": "Restore from Archive", + "r-card": "card", + "r-add": "Add", + "r-remove": "Remove", + "r-label": "label", + "r-member": "member", + "r-remove-all": "Remove all members from the card", + "r-set-color": "Set color to", + "r-checklist": "checklist", + "r-check-all": "Check all", + "r-uncheck-all": "Uncheck all", + "r-items-check": "items of checklist", + "r-check": "Check", + "r-uncheck": "Uncheck", + "r-item": "item", + "r-of-checklist": "of checklist", + "r-send-email": "Send an email", + "r-to": "to", + "r-of": "of", + "r-subject": "subject", + "r-rule-details": "Rule details", + "r-d-move-to-top-gen": "Move card to top of its list", + "r-d-move-to-top-spec": "Move card to top of list", + "r-d-move-to-bottom-gen": "Move card to bottom of its list", + "r-d-move-to-bottom-spec": "Move card to bottom of list", + "r-d-send-email": "Send email", + "r-d-send-email-to": "to", + "r-d-send-email-subject": "subject", + "r-d-send-email-message": "message", + "r-d-archive": "Move card to Archive", + "r-d-unarchive": "Restore card from Archive", + "r-d-add-label": "Add label", + "r-d-remove-label": "Remove label", + "r-create-card": "Create new card", + "r-in-list": "in list", + "r-in-swimlane": "in swimlane", + "r-d-add-member": "Add member", + "r-d-remove-member": "Remove member", + "r-d-remove-all-member": "Remove all member", + "r-d-check-all": "Check all items of a list", + "r-d-uncheck-all": "Uncheck all items of a list", + "r-d-check-one": "Check item", + "r-d-uncheck-one": "Uncheck item", + "r-d-check-of-list": "of checklist", + "r-d-add-checklist": "Add checklist", + "r-d-remove-checklist": "Remove checklist", + "r-by": "by", + "r-add-checklist": "Add checklist", + "r-with-items": "with items", + "r-items-list": "item1,item2,item3", + "r-add-swimlane": "Add swimlane", + "r-swimlane-name": "swimlane name", "r-board-note": "Note: leave a field empty to match every possible value. ", - "r-checklist-note": "Примечание: пункты контрольных списков при перечислении разделяются запятыми.", - "r-when-a-card-is-moved": "Когда карточка перемещена в другой список", - "r-set": "Установить", - "r-update": "Обновить", - "r-datefield": "поле даты", - "r-df-start-at": "в работе с", - "r-df-due-at": "выполнить к", - "r-df-end-at": "завершено", - "r-df-received-at": "получено", - "r-to-current-datetime": "в соответствии с текущей датой/временем", - "r-remove-value-from": "Очистить", + "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", + "r-when-a-card-is-moved": "When a card is moved to another list", + "r-set": "Set", + "r-update": "Update", + "r-datefield": "date field", + "r-df-start-at": "start", + "r-df-due-at": "due", + "r-df-end-at": "end", + "r-df-received-at": "received", + "r-to-current-datetime": "to current date/time", + "r-remove-value-from": "Remove value from", "r-link-card": "Link card to", "ldap": "LDAP", "oauth2": "OAuth2", "cas": "CAS", - "authentication-method": "Способ авторизации", - "authentication-type": "Тип авторизации", - "custom-product-name": "Собственное наименование", - "layout": "Внешний вид", - "hide-logo": "Скрыть логотип", + "authentication-method": "Authentication method", + "authentication-type": "Authentication type", + "custom-product-name": "Custom Product Name", + "layout": "Layout", + "hide-logo": "Hide Logo", "hide-card-counter-list": "Hide card counter list on All Boards", "hide-board-member-list": "Hide board member list on All Boards", - "add-custom-html-after-body-start": "Добавить HTML после начала <body>", - "add-custom-html-before-body-end": "Добавить HTML до завершения </body>", - "error-undefined": "Что-то пошло не так", - "error-ldap-login": "Ошибка при попытке авторизации", - "display-authentication-method": "Показывать способ авторизации", - "oidc-button-text": "Изменить текст кнопки OIDC", - "default-authentication-method": "Способ авторизации по умолчанию", - "duplicate-board": "Клонировать доску", + "add-custom-html-after-body-start": "Add Custom HTML after <body> start", + "add-custom-html-before-body-end": "Add Custom HTML before </body> end", + "error-undefined": "Something went wrong", + "error-ldap-login": "An error occurred while trying to login", + "display-authentication-method": "Display Authentication Method", + "oidc-button-text": "Customize the OIDC button text", + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board", "org-number": "The number of organizations is: ", "team-number": "The number of teams is: ", "people-number": "The number of people is: ", - "swimlaneDeletePopup-title": "Удалить дорожку?", - "swimlane-delete-pop": "Все действия будут удалены из ленты активности участников, и вы не сможете восстановить дорожку. Данное действие необратимо.", - "restore-all": "Восстановить все", - "delete-all": "Удалить все", - "loading": "Идет загрузка, пожалуйста подождите", - "previous_as": "в прошлый раз был", - "act-a-dueAt": "изменил срок выполнения \nСтало: __timeValue__\nВ карточке: __card__\nранее было __timeOldValue__", - "act-a-endAt": "изменил время завершения на __timeValue__, было (__timeOldValue__)", - "act-a-startAt": "изменил время начала на __timeValue__, было (__timeOldValue__)", - "act-a-receivedAt": "изменил время получения на __timeValue__, было (__timeOldValue__)", - "a-dueAt": "изменил срок выполнения на", - "a-endAt": "изменил время завершения на", - "a-startAt": "изменил время начала работы на", - "a-receivedAt": "изменил время получения на", - "almostdue": "текущий срок выполнения %s приближается", - "pastdue": "текущий срок выполнения %s прошел", - "duenow": "текущий срок выполнения %s сегодня", - "act-newDue": "__list__/__card__ содержит 1-ое напоминание о сроке [__board__]", - "act-withDue": "__list__/__card__ напоминания о сроке выполнения [__board__]", - "act-almostdue": "напомнил, что скоро завершается срок выполнения (__timeValue__) карточки __card__", - "act-pastdue": "напомнил, что срок выполнения (__timeValue__) карточки __card__ прошел", - "act-duenow": "напомнил, что срок выполнения (__timeValue__) карточки __card__ — это уже сейчас", - "act-atUserComment": "Вас упомянули в [__board__] __list__/__card__", - "delete-user-confirm-popup": "Вы уверены, что хотите удалить аккаунт? Данное действие необратимо.", - "delete-team-confirm-popup": "Вы уверены, что хотите удалить эту команду? Эту операцию нельзя отменить.", - "delete-org-confirm-popup": "Вы уверены, что хотите удалить эту организацию? Эту операцию нельзя отменить.", - "accounts-allowUserDelete": "Разрешить пользователям удалять собственные аккаунты", - "hide-minicard-label-text": "Скрыть текст меток на карточках", - "show-desktop-drag-handles": "Показать ярлыки для перетаскивания", - "assignee": "Исполнитель", - "cardAssigneesPopup-title": "Исполнитель", - "addmore-detail": "Добавить более детальное описание", - "show-on-card": "Показать на карточке", + "swimlaneDeletePopup-title": "Delete Swimlane ?", + "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", + "restore-all": "Restore all", + "delete-all": "Delete all", + "loading": "Loading, please wait.", + "previous_as": "last time was", + "act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__", + "act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)", + "act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)", + "act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)", + "a-dueAt": "modified due time to be", + "a-endAt": "modified ending time to be", + "a-startAt": "modified starting time to be", + "a-receivedAt": "modified received time to be", + "almostdue": "current due time %s is approaching", + "pastdue": "current due time %s is past", + "duenow": "current due time %s is today", + "act-newDue": "__list__/__card__ has 1st due reminder [__board__]", + "act-withDue": "__list__/__card__ due reminders [__board__]", + "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching", + "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", + "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", + "act-atUserComment": "You were mentioned in [__board__] __list__/__card__", + "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.", + "delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.", + "delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.", + "accounts-allowUserDelete": "Allow users to self delete their account", + "hide-minicard-label-text": "Hide minicard label text", + "show-desktop-drag-handles": "Show desktop drag handles", + "assignee": "Assignee", + "cardAssigneesPopup-title": "Assignee", + "addmore-detail": "Add a more detailed description", + "show-on-card": "Show on Card", "show-on-minicard": "Show on Minicard", - "new": "Новый", - "editOrgPopup-title": "Редактировать организацию", - "newOrgPopup-title": "Новая организация", - "editTeamPopup-title": "Редактировать команду", - "newTeamPopup-title": "Новая команда", - "editUserPopup-title": "Редактировать пользователя", - "newUserPopup-title": "Новый пользователь", - "notifications": "Уведомления", + "new": "New", + "editOrgPopup-title": "Edit Organization", + "newOrgPopup-title": "New Organization", + "editTeamPopup-title": "Edit Team", + "newTeamPopup-title": "New Team", + "editUserPopup-title": "Edit User", + "newUserPopup-title": "New User", + "notifications": "Notifications", "help": "Help", - "view-all": "Показать все", - "filter-by-unread": "Фильтр по непрочитанным", - "mark-all-as-read": "Отметить все как прочитанные", - "remove-all-read": "Удалить все прочитанные", - "allow-rename": "Разрешить переименование", - "allowRenamePopup-title": "Разрешить переименование", - "start-day-of-week": "Установить день начала недели", - "monday": "Понедельник", - "tuesday": "Вторник", - "wednesday": "Среда", - "thursday": "Четверг", - "friday": "Пятница", - "saturday": "Суббота", - "sunday": "Воскресенье", - "status": "Статус", - "swimlane": "Дорожка", - "owner": "Владелец", - "last-modified-at": "Последний раз изменено", - "last-activity": "Последние действия", - "voting": "Голосование", - "archived": "Архивировано", - "delete-linked-card-before-this-card": "Вы не можете удалить карточку, не удалив связанную c ней карточку, которая имеет", - "delete-linked-cards-before-this-list": "Вы не можете удалить этот список, не удалив карточки, которые указывают на карточки в этом списке", - "hide-checked-items": "Спрятать отмеченные", - "task": "Задача", - "create-task": "Создать задачу", - "ok": "Ok", - "organizations": "Организации", - "teams": "Команды", - "displayName": "Отображаемое название", - "shortName": "Короткое название", + "view-all": "View All", + "filter-by-unread": "Filter by Unread", + "mark-all-as-read": "Mark all as read", + "remove-all-read": "Remove all read", + "allow-rename": "Allow Rename", + "allowRenamePopup-title": "Allow Rename", + "start-day-of-week": "Set day of the week start", + "monday": "Monday", + "tuesday": "Tuesday", + "wednesday": "Wednesday", + "thursday": "Thursday", + "friday": "Friday", + "saturday": "Saturday", + "sunday": "Sunday", + "status": "Status", + "swimlane": "Swimlane", + "owner": "Owner", + "last-modified-at": "Last modified at", + "last-activity": "Last activity", + "voting": "Voting", + "archived": "Archived", + "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", + "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", + "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", + "task": "Task", + "create-task": "Create Task", + "ok": "OK", + "organizations": "Organizations", + "teams": "Teams", + "displayName": "Display Name", + "shortName": "Short Name", "autoAddUsersWithDomainName": "Automatically add users with the domain name", - "website": "Вебсайт", - "person": "Представитель", - "my-cards": "Мои карточки", - "card": "Карточка", - "list": "Список", - "board": "Доска", + "website": "Website", + "person": "Person", + "my-cards": "My Cards", + "card": "Card", + "list": "List", + "board": "Board", "context-separator": "/", "myCardsViewChange-title": "My Cards View", "myCardsViewChangePopup-title": "My Cards View", - "myCardsViewChange-choice-boards": "Доски", + "myCardsViewChange-choice-boards": "Boards", "myCardsViewChange-choice-table": "Table", - "myCardsSortChange-title": "Сортировать мои карточки", - "myCardsSortChangePopup-title": "Сортировать мои карточки", - "myCardsSortChange-choice-board": "По доскам", - "myCardsSortChange-choice-dueat": "По сроку выполнения", - "dueCards-title": "Карточки с установленным сроком", - "dueCardsViewChange-title": "Просмотр карточки с установленным сроком", - "dueCardsViewChangePopup-title": "Просмотр карточки с установленным сроком", - "dueCardsViewChange-choice-me": "Мне", - "dueCardsViewChange-choice-all": "Все пользователи", - "dueCardsViewChange-choice-all-description": "Показать все незавершенные карточки с установленным сроком с досок для которых у пользователя есть разрешения.", - "broken-cards": "Просроченные карточки", - "board-title-not-found": "Доска '%s' не найдена.", - "swimlane-title-not-found": "Дорожка '%s' не найдена.", - "list-title-not-found": "Список '%s' не найден.", - "label-not-found": "Метка '%1' не найдена.", - "label-color-not-found": "Цвет метки '%1' не найден.", - "user-username-not-found": "Имя пользователя '%s' не найдено.", - "comment-not-found": "Карточка с комментарием, содержащим текст '%s', не найдена.", + "myCardsSortChange-title": "My Cards Sort", + "myCardsSortChangePopup-title": "My Cards Sort", + "myCardsSortChange-choice-board": "By Board", + "myCardsSortChange-choice-dueat": "By Due Date", + "dueCards-title": "Due Cards", + "dueCardsViewChange-title": "Due Cards View", + "dueCardsViewChangePopup-title": "Due Cards View", + "dueCardsViewChange-choice-me": "Me", + "dueCardsViewChange-choice-all": "All Users", + "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", + "broken-cards": "Broken Cards", + "board-title-not-found": "Board '%s' not found.", + "swimlane-title-not-found": "Swimlane '%s' not found.", + "list-title-not-found": "List '%s' not found.", + "label-not-found": "Label '%s' not found.", + "label-color-not-found": "Label color %s not found.", + "user-username-not-found": "Username '%s' not found.", + "comment-not-found": "Card with comment containing text '%s' not found.", "org-name-not-found": "Organization '%s' not found.", "team-name-not-found": "Team '%s' not found.", - "globalSearch-title": "Искать на всех досках", - "no-cards-found": "Ни одной карточки не найдено", - "one-card-found": "Найдена одна карточка", - "n-cards-found": "Карточек найдено %s", - "n-n-of-n-cards-found": "__start__-__end__ из __total__ карточек найдено", - "operator-board": "доска", - "operator-board-abbrev": "д", - "operator-swimlane": "дорожка", - "operator-swimlane-abbrev": "дор.", - "operator-list": "список", + "globalSearch-title": "Search All Boards", + "no-cards-found": "No Cards Found", + "one-card-found": "One Card Found", + "n-cards-found": "%s Cards Found", + "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", + "operator-board": "board", + "operator-board-abbrev": "b", + "operator-swimlane": "swimlane", + "operator-swimlane-abbrev": "s", + "operator-list": "list", "operator-list-abbrev": "l", - "operator-label": "метку", + "operator-label": "label", "operator-label-abbrev": "#", - "operator-user": "пользователь", + "operator-user": "user", "operator-user-abbrev": "@", - "operator-member": "участника", - "operator-member-abbrev": "м", - "operator-assignee": "Кому назначено", - "operator-assignee-abbrev": "а", - "operator-creator": "автор", - "operator-status": "статус", - "operator-due": "выполнить к", - "operator-created": "создано", - "operator-modified": "изменено", - "operator-sort": "сортировка", - "operator-comment": "комментарий", - "operator-has": "имеет", - "operator-limit": "лимит", + "operator-member": "member", + "operator-member-abbrev": "m", + "operator-assignee": "assignee", + "operator-assignee-abbrev": "a", + "operator-creator": "creator", + "operator-status": "status", + "operator-due": "due", + "operator-created": "created", + "operator-modified": "modified", + "operator-sort": "sort", + "operator-comment": "comment", + "operator-has": "has", + "operator-limit": "limit", "operator-debug": "debug", "operator-org": "org", "operator-team": "team", - "predicate-archived": "архивировано", - "predicate-open": "открыт", - "predicate-ended": "завершено", - "predicate-all": "все", - "predicate-overdue": "просрочено", - "predicate-week": "неделя", - "predicate-month": "месяц", - "predicate-quarter": "квартал", - "predicate-year": "год", - "predicate-due": "выполнить к", - "predicate-modified": "изменено", - "predicate-created": "создано", - "predicate-attachment": "вложение", - "predicate-description": "описание", - "predicate-checklist": "контрольный список", - "predicate-start": "в работе с", - "predicate-end": "завершено", - "predicate-assignee": "Кому назначено", - "predicate-member": "участника", - "predicate-public": "общедоступно", - "predicate-private": "приватно", + "predicate-archived": "archived", + "predicate-open": "open", + "predicate-ended": "ended", + "predicate-all": "all", + "predicate-overdue": "overdue", + "predicate-week": "week", + "predicate-month": "month", + "predicate-quarter": "quarter", + "predicate-year": "year", + "predicate-due": "due", + "predicate-modified": "modified", + "predicate-created": "created", + "predicate-attachment": "attachment", + "predicate-description": "description", + "predicate-checklist": "checklist", + "predicate-start": "start", + "predicate-end": "end", + "predicate-assignee": "assignee", + "predicate-member": "member", + "predicate-public": "public", + "predicate-private": "private", "predicate-selector": "selector", "predicate-projection": "projection", - "operator-unknown-error": "%1 не оператор", - "operator-number-expected": "оператор __operator__ используется с числом, задано '__value__'", - "operator-sort-invalid": "сортировка '%s' неверна", - "operator-status-invalid": "'%s' не допустимый статус", - "operator-has-invalid": "%s неверная проверка присутствия", - "operator-limit-invalid": "%s неверное ограничение. Ограничение должно быть положительным целым.", + "operator-unknown-error": "%s is not an operator", + "operator-number-expected": "operator __operator__ expected a number, got '__value__'", + "operator-sort-invalid": "sort of '%s' is invalid", + "operator-status-invalid": "'%s' is not a valid status", + "operator-has-invalid": "%s is not a valid existence check", + "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", "operator-debug-invalid": "%s is not a valid debug predicate", - "next-page": "Следующая страница", - "previous-page": "Предыдущая страница", - "heading-notes": "Заметки", - "globalSearch-instructions-heading": "Инструкция по поиску", - "globalSearch-instructions-description": "Поисковая строка может содержать операторы для уточнения запроса. Оператор задается именем оператора и значением разделенными двоеточием. Например, оператор 'list:Blocked' ограничит результат запроса карточками состоящими в списке 'Blocked'. Если значение содержит пробелы или специальные символы, то оно должно быть заключено в кавычки(__operator_list__:\"To Review\").", - "globalSearch-instructions-operators": "Доступные операторы:", - "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - карточки соответствуют: *<title>*", - "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - карточки в списке соответствуют: *<title>*", - "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - карточки на дорожках, соответствующих *<title>*", - "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - карточки с комментарием содержащим *<text>*.", - "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - карточки, которые имеют метку соответствующую *<color>* or *<name>", - "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - сокращение для `__operator_label__:<color>` или `__operator_label__:<name>`", - "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - карточки в которых *<username>* *участник* или *исполнитель*", - "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - сокращение для `пользователь:<username>`", - "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - карточки, в которых *<username>* *участник*", - "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - карточки, в которых *<username>* *исполнитель*", - "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - карточки, где *<username>* является автором", + "next-page": "Next Page", + "previous-page": "Previous Page", + "heading-notes": "Notes", + "globalSearch-instructions-heading": "Search Instructions", + "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-operators": "Available operators:", + "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", + "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", + "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", + "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", + "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - cards where *<username>* is the card's creator", "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*", "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*", - "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - карточки с датой завершения до *<n>* дней от текущей даты. `__operator_due__:__predicate_overdue__ список всех просроченных карточек.", - "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - карточки, которые были созданы до *<n>* дней назад", - "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - карточки, который изменены до *<n>* дней назад", - "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - где *<status>* что-то из следующего:", - "globalSearch-instructions-status-archived": "`__predicate_archived__` - архивированные карточки", - "globalSearch-instructions-status-all": "`__predicate_all__` - все архивированные и не архивированные карточки", - "globalSearch-instructions-status-ended": "`__predicate_ended__` - карточки с датой завершения", - "globalSearch-instructions-status-public": "`__predicate_public__` - карточки только на публичных досках", - "globalSearch-instructions-status-private": "`__predicate_private__` - карточки только на личных досках", - "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - где *<field>* что-либо из `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` или `__predicate_member__`. Указание `-` перед *<field>* производит поиск по отсутствию значения в указанном поле. (напр. `has:-due` поиск карточек без даты завершения).", - "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - где*<sort-name>* что-либо из `__predicate_due__`, `__predicate_created__` или `__predicate_modified__`. Для сортировки по убыванию, укажите `-` перед названием сортировки.", - "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - где *<n>* положительное целое определяющее количество карточек на одной странице.", - "globalSearch-instructions-notes-1": "Может быть задано несколько операторов.", - "globalSearch-instructions-notes-2": "Одинаковые операторы объединяются логическим \"ИЛИ\", например:\n`__operator_list__:Available __operator_list__:Blocked` вернет карточки, которые содержатся в списке *Blocked* или *Available*.", - "globalSearch-instructions-notes-3": "Разные операторы объединяются логическим \"И\". Возвращаются только объекты удовлетворяющие всем заданным условиям.`__operator_list__:Available __operator_label__:red` вернет карточки, которые содержатся в списке *Available* и имеют метку *red*.", - "globalSearch-instructions-notes-3-2": "Количество дней может быть задано положительным или отрицательным целым или используя `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` или `__predicate_year__` для текущего периода.", - "globalSearch-instructions-notes-4": "Текстовый поиск нечувствителен к регистру символов.", - "globalSearch-instructions-notes-5": "По умолчанию, поиск в архивированных карточках не производится.", - "link-to-search": "Ссылка на этот поиск", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", + "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", + "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", + "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", + "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", + "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", + "globalSearch-instructions-notes-1": "Multiple operators may be specified.", + "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", + "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", + "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", + "globalSearch-instructions-notes-4": "Text searches are case insensitive.", + "globalSearch-instructions-notes-5": "By default archived cards are not searched.", + "link-to-search": "Link to this search", "excel-font": "Arial", - "number": "Номер", - "label-colors": "Цвета меток", - "label-names": "Названия меток", - "archived-at": "архивировано", - "sort-cards": "Сортировать карточки", + "number": "Number", + "label-colors": "Label Colors", + "label-names": "Label Names", + "archived-at": "archived at", + "sort-cards": "Sort Cards", "sort-is-on": "Sort is on", - "cardsSortPopup-title": "Сортировать карточки", - "due-date": "Назначенная дата", - "server-error": "Ошибка сервера", - "server-error-troubleshooting": "Пожалуйста отправьте описание ошибки созданное сервером.\nДля установки с помощью snap, запустите: `sudo snap logs wekan.wekan`\nДля установки с помощью Docker, запустите: `sudo docker logs wekan-app`", - "title-alphabetically": "Название (по алфавиту)", - "created-at-newest-first": "Дата создания (сначала новые)", - "created-at-oldest-first": "Дата создания (сначала старые)", - "links-heading": "Ссылки", - "hide-system-messages-of-all-users": "Скрыть системные сообщения всех пользователей", - "now-system-messages-of-all-users-are-hidden": "Системные сообщения всех пользователей скрыты", - "move-swimlane": "Переместить дорожку", - "moveSwimlanePopup-title": "Переместить дорожку", - "custom-field-stringtemplate": "Строковый шаблон", - "custom-field-stringtemplate-format": "Формат (используйте %{значение} для подстановки)", - "custom-field-stringtemplate-separator": "Разделитель (для пробела используйте или  )", - "custom-field-stringtemplate-item-placeholder": "Нажмите «Ввод», чтобы добавить больше элементов.", - "creator": "Автор", + "cardsSortPopup-title": "Sort Cards", + "due-date": "Due Date", + "server-error": "Server Error", + "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`", + "title-alphabetically": "Title (Alphabetically)", + "created-at-newest-first": "Created At (Newest First)", + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", + "move-swimlane": "Move Swimlane", + "moveSwimlanePopup-title": "Move Swimlane", + "custom-field-stringtemplate": "String Template", + "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", + "custom-field-stringtemplate-separator": "Separator (use or   for a space)", + "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", + "creator": "Creator", "creator-on-minicard": "Creator on minicard", - "filesReportTitle": "Отчёт по файлам", - "reports": "Отчёты", - "rulesReportTitle": "Отчёт по правилам", + "filesReportTitle": "Files Report", + "reports": "Reports", + "rulesReportTitle": "Rules Report", "boardsReportTitle": "Boards Report", "cardsReportTitle": "Cards Report", - "copy-swimlane": "Скопировать дорожку", - "copySwimlanePopup-title": "Скопировать дорожку", - "display-card-creator": "Показать создателя карты", - "wait-spinner": "Спинер ожидания", - "Bounce": "Прыгающий спинер ожидания", - "Cube": "Кубический спинер ожидания", - "Cube-Grid": "Сетка кубиков", - "Dot": "Точки", - "Double-Bounce": "Двойной прыгающий спинер ожидания", - "Rotateplane": "Врщающийся лист", - "Scaleout": "Увеличивающийся-уменьшающийся спиннер", - "Wave": "Волновой спиннер", - "maximize-card": "Максимизировать карточку", - "minimize-card": "Минимизировать карточку", - "delete-org-warning-message": "Невозможно удалить эту организацию, она включает в себя как минимум одного пользователя", - "delete-team-warning-message": "Невозможно удалить эту команду, она включает в себя как минимум одного пользователя", + "copy-swimlane": "Copy Swimlane", + "copySwimlanePopup-title": "Copy Swimlane", + "display-card-creator": "Display Card Creator", + "wait-spinner": "Wait Spinner", + "Bounce": "Bounce Wait Spinner", + "Cube": "Cube Wait Spinner", + "Cube-Grid": "Cube-Grid Wait Spinner", + "Dot": "Dot Wait Spinner", + "Double-Bounce": "Double Bounce Wait Spinner", + "Rotateplane": "Rotateplane Wait Spinner", + "Scaleout": "Scaleout Wait Spinner", + "Wave": "Wave Wait Spinner", + "maximize-card": "Maximize Card", + "minimize-card": "Minimize Card", + "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", + "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", "subject": "Subject", "details": "Details", "carbon-copy": "Carbon Copy (Cc:)", @@ -1161,7 +1172,7 @@ "add-teams-label": "Added teams are displayed below:", "remove-team-from-table": "Are you sure you want to remove this team from the board ?", "confirm-btn": "Confirm", - "remove-btn": "Удалить", + "remove-btn": "Remove", "filter-card-title-label": "Filter by card title", "invite-people-success": "Invitation to register sent with success", "invite-people-error": "Error while sending invitation to register", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1213,9 +1227,9 @@ "version-name": "Version-Name", "size": "Size", "storage": "Storage", - "action": "Действие", + "action": "Action", "board-title": "Board Title", - "attachmentRenamePopup-title": "Переименовать", + "attachmentRenamePopup-title": "Rename", "uploading": "Uploading", "remaining_time": "Remaining time", "speed": "Speed", @@ -1226,7 +1240,7 @@ "forgot-password": "Forgot password", "minicardDetailsActionsPopup-title": "Card Details", "Mongo_sessions_count": "Mongo sessions count", - "change-visibility": "Изменить настройки видимости", + "change-visibility": "Change Visibility", "max-upload-filesize": "Max upload filesize in bytes:", "allowed-upload-filetypes": "Allowed upload filetypes:", "max-avatar-filesize": "Max avatar filesize in bytes:", @@ -1240,11 +1254,19 @@ "editTranslationPopup-title": "Edit custom translation string", "settingsTranslationPopup-title": "Delete this custom translation string?", "translation": "Translation", - "text": "Текст", + "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ru.i18n.json b/imports/i18n/data/ru.i18n.json index bfa9c4926..252ddb13d 100644 --- a/imports/i18n/data/ru.i18n.json +++ b/imports/i18n/data/ru.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s теперь в Архиве", "activity-attached": "прикрепил %s к %s", "activity-created": "создал %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "создал настраиваемое поле %s", "activity-excluded": "исключил %s из %s", "activity-imported": "импортировал %s в %s из %s", @@ -85,10 +86,12 @@ "add-card": "Добавить карточку", "add-card-to-top-of-list": "Добавить карточку в начало списка", "add-card-to-bottom-of-list": "Добавить карточку в конец списка", - "setListWidthPopup-title": "Настроить ширину списка", - "set-list-width": "Настроить ширину списка", - "set-list-width-value": "Ширина списка (px)", - "list-width-error-message": "Ширина списка может принимать только положительное значение", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Настроить высоту дорожки", "set-swimlane-height": "Настроить высоту дорожки", "set-swimlane-height-value": "Высота дорожки (px)", @@ -103,7 +106,7 @@ "add-cover": "Добавить обложку на миникарточку", "add-label": "Добавить метку", "add-list": "Добавить простой список", - "add-after-list": "Add After List", + "add-after-list": "Добавить после списка", "add-members": "Добавить участника", "added": "Добавлено", "addMemberPopup-title": "Участники", @@ -263,6 +266,9 @@ "checklists": "Контрольные списки", "click-to-star": "Добавить в «Избранное»", "click-to-unstar": "Удалить из «Избранного»", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Буфер обмена или drag & drop", "close": "Закрыть", "close-board": "Закрыть доску", @@ -294,6 +300,7 @@ "color-white": "белый", "color-yellow": "желтый", "unset-color": "Убрать", + "comments": "Comments", "comment": "Добавить комментарий", "comment-placeholder": "Написать комментарий", "comment-only": "Только комментирование", @@ -376,6 +383,7 @@ "email-sent": "Письмо отправлено", "email-verifyEmail-subject": "Подтвердите вашу эл.почту перейдя по ссылке __url__", "email-verifyEmail-text": "Привет __user__,\n\nДля подтверждения вашей электронной почты перейдите по ссылке ниже.\n\n__url__\n\nСпасибо.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Включить лимит на кол-во задач", "error-board-doesNotExist": "Доска не найдена", "error-board-notAdmin": "Вы должны обладать правами администратора этой доски, чтобы сделать это", @@ -443,7 +451,7 @@ "advanced-filter-description": "Расширенный фильтр позволяет написать строку, содержащую следующие операторы: == != <= >= && || ( ) Пробел используется как разделитель между операторами. Можно фильтровать все настраиваемые поля, вводя их имена и значения. Например: Поле1 == Значение1. Примечание. Если поля или значения содержат пробелы, нужно взять их в одинарные кавычки. Например: 'Поле 1' == 'Значение 1'. Для одиночных управляющих символов (' \\\\/), которые нужно пропустить, следует использовать \\\\. Например: Field1 = I\\\\'m. Также можно комбинировать несколько условий. Например: F1 == V1 || F1 == V2. Обычно все операторы интерпретируются слева направо, но можно изменить порядок, разместив скобки. Например: F1 == V1 && (F2 == V2 || F2 == V3). Также можно искать текстовые поля с помощью регулярных выражений: F1 == /Tes.*/i", "fullname": "Полное имя", "header-logo-title": "Вернуться к доскам.", - "hide-system-messages": "Скрыть системные сообщения", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Создать доску", "home": "Главная", "import": "Импорт", @@ -550,7 +558,7 @@ "public": "Открытая", "public-desc": "Эта доска может быть видна всем у кого есть ссылка. Также может быть проиндексирована поисковыми системами. Вносить изменения могут только участники.", "quick-access-description": "Нажмите на звезду, что добавить ярлык доски на панель.", - "remove-cover": "Remove cover image from minicard", + "remove-cover": "Удалить изображение обложки из мини-карточки", "remove-from-board": "Удалить с доски", "remove-label": "Удалить метку", "listDeletePopup-title": "Удалить список?", @@ -572,13 +580,14 @@ "select-board": "Выбрать доску", "set-wip-limit-value": "Устанавливает ограничение на максимальное количество задач в этом списке", "setWipLimitPopup-title": "Задать лимит на кол-во задач", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Связать себя с текущей карточкой", "shortcut-autocomplete-emoji": "Автозаполнение emoji", "shortcut-autocomplete-members": "Автозаполнение участников", "shortcut-clear-filters": "Сбросить все фильтры", "shortcut-close-dialog": "Закрыть диалог", "shortcut-filter-my-cards": "Показать мои карточки", - "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-filter-my-assigned-cards": "Отфильтровать назначенные мне карточки", "shortcut-show-shortcuts": "Поднять список ярлыков", "shortcut-toggle-filterbar": "Переместить фильтр на бововую панель", "shortcut-toggle-searchbar": "Включить/выключить боковую панель поиска", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Имеются карточки с учетом затраченного времени", "time": "Время", "title": "Название", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Включить метки 1-9 для карточки. Множественный выбор добавляет метки 1-9", "remove-labels-multiselect": "Множественный выбор удаляет метки 1-9", "tracking": "Отслеживание", @@ -742,7 +752,7 @@ "description-on-minicard": "Описание на миникарточке", "cover-attachment-on-minicard": "Обложка на миникарточке", "badge-attachment-on-minicard": "Количество вложений на миникарточке", - "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "card-sorting-by-number-on-minicard": "Сортировка по номеру на мини-карточке", "prefix-with-full-path": "Cверху, полный путь", "prefix-with-parent": "Сверху, только имя", "subtext-with-full-path": "Cнизу, полный путь", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Вы не можете удалить карточку, не удалив связанную c ней карточку, которая имеет", "delete-linked-cards-before-this-list": "Вы не можете удалить этот список, не удалив карточки, которые указывают на карточки в этом списке", "hide-checked-items": "Спрятать отмеченные", + "hide-finished-checklist": "Hide finished checklist", "task": "Задача", "create-task": "Создать задачу", "ok": "Ok", @@ -963,7 +974,7 @@ "teams": "Команды", "displayName": "Отображаемое название", "shortName": "Короткое название", - "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "autoAddUsersWithDomainName": "Автоматически добавлять пользователей с доменным именем", "website": "Вебсайт", "person": "Представитель", "my-cards": "Мои карточки", @@ -1100,7 +1111,7 @@ "label-names": "Названия меток", "archived-at": "архивировано", "sort-cards": "Сортировать карточки", - "sort-is-on": "Sort is on", + "sort-is-on": "Сортировка включена", "cardsSortPopup-title": "Сортировать карточки", "due-date": "Назначенная дата", "server-error": "Ошибка сервера", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Дата создания (сначала новые)", "created-at-oldest-first": "Дата создания (сначала старые)", "links-heading": "Ссылки", - "hide-system-messages-of-all-users": "Скрыть системные сообщения всех пользователей", - "now-system-messages-of-all-users-are-hidden": "Системные сообщения всех пользователей скрыты", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Переместить дорожку", "moveSwimlanePopup-title": "Переместить дорожку", "custom-field-stringtemplate": "Строковый шаблон", @@ -1118,7 +1129,7 @@ "custom-field-stringtemplate-separator": "Разделитель (для пробела используйте или  )", "custom-field-stringtemplate-item-placeholder": "Нажмите «Ввод», чтобы добавить больше элементов.", "creator": "Автор", - "creator-on-minicard": "Creator on minicard", + "creator-on-minicard": "Автор на мини-карточке", "filesReportTitle": "Отчёт по файлам", "reports": "Отчёты", "rulesReportTitle": "Отчёт по правилам", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Действия Чек-листа", "moveChecklist": "Переместить Чек-лист", "moveChecklistPopup-title": "Переместить Чек-лист", - "newlineBecomesNewChecklistItem": "Новая строка создает пункт контрольного списка", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Скопировать Чек-лист", "copyChecklistPopup-title": "Скопировать Чек-лист", "card-show-lists": "Просмотр списка карточек", @@ -1232,19 +1246,27 @@ "max-avatar-filesize": "Максимальный размер аватара (в байтах):", "allowed-avatar-filetypes": "Типы файлов аватара:", "invalid-file": "Если имя файла недопустимо, загрузка или переименование будут отменены.", - "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", - "drag-board": "Drag board", - "translation-number": "The number of custom translation strings is:", - "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", - "newTranslationPopup-title": "New custom translation string", - "editTranslationPopup-title": "Edit custom translation string", - "settingsTranslationPopup-title": "Delete this custom translation string?", - "translation": "Translation", + "preview-pdf-not-supported": "Ваше устройство не поддерживает предварительный просмотр PDF. Попробуйте загрузить.", + "drag-board": "Перетащить доску", + "translation-number": "Количество пользовательских строк перевода:", + "delete-translation-confirm-popup": "Вы уверены, что хотите удалить эту строку специального перевода? Отменить действие нельзя.", + "newTranslationPopup-title": "Новая строка индивидуального перевода", + "editTranslationPopup-title": "Изменить строку специального перевода", + "settingsTranslationPopup-title": "Удалить эту строку специального перевода?", + "translation": "Перевод", "text": "Текст", - "translation-text": "Translation text", - "show-at-minicard": "Показать на миникарточке", - "show-checklist-at-minicard": "Показать Чек-лист на миникарточке", - "show-subtasks-field": "Show subtasks field", - "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "translation-text": "Перевод текста", + "show-subtasks-field": "Показывать поля подзадач", + "show-week-of-year": "Show week of year (ISO 8601)", + "convert-to-markdown": "Конвертировать в markdown", + "import-board-zip": "Добавьте ZIP-файл, содержащий файлы JSON доски, а также названия подкаталогов с вложениями.", + "collapse": "Свернуть", + "uncollapse": "Развернуть", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index 6208999ca..16ca630a6 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -19,7 +19,7 @@ "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-createBoard": "vytvorená doska __board__", + "act-createBoard": "vytvorená nástenka __board__", "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ at board __board__", @@ -49,9 +49,10 @@ "activity-archived": "%s presunutá do archívu", "activity-attached": "priložená %s do %s", "activity-created": "vytvorená %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "vytvorené vlastné pole %s", "activity-excluded": "excluded %s from %s", - "activity-imported": "imported %s into %s from %s", + "activity-imported": "importované %s do %s z %s", "activity-imported-board": "imported %s from %s", "activity-joined": "pripojená %s", "activity-moved": "presunuté %s z %s do %s", @@ -81,14 +82,16 @@ "activity-endDate": "edited end date to %s of %s", "add-attachment": "Pridať prílohu", "add-board": "Pridať tabuľu", - "add-template": "Add Template", + "add-template": "Pridať šablonu", "add-card": "Pridať kartu", "add-card-to-top-of-list": "Pridať Kartu na vrch listu", "add-card-to-bottom-of-list": "Pridať Kartu na spodok listu", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -113,25 +116,25 @@ "admin-announcement": "Oznámenie", "admin-announcement-active": "Active System-Wide Announcement", "admin-announcement-title": "Announcement from Administrator", - "all-boards": "Všetky tabule", + "all-boards": "Všetky nástenky", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", "apply": "Použiť", "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.", "app-try-reconnect": "Try to reconnect.", - "archive": "Move to Archive", - "archive-all": "Move All to Archive", + "archive": "Archivovať", + "archive-all": "Archivovať všetko", "archive-board": "Move Board to Archive", "archive-card": "Move Card to Archive", "archive-list": "Move List to Archive", "archive-swimlane": "Move Swimlane to Archive", "archive-selection": "Move selection to Archive", "archiveBoardPopup-title": "Move Board to Archive?", - "archived-items": "Archive", + "archived-items": "Archív", "archived-boards": "Boards in Archive", - "restore-board": "Obnoviť tabuľu", + "restore-board": "Obnoviť nástenku", "no-archived-boards": "No Boards in Archive.", - "archives": "Archive", + "archives": "Archív", "template": "Template", "templates": "Templates", "template-container": "Template Container", @@ -158,8 +161,8 @@ "show-board_members-avatar": "Show Board members avatars", "board-nb-stars": "%s stars", "board-not-found": "Board not found", - "board-private-info": "This board will be <strong>private</strong>.", - "board-public-info": "This board will be <strong>public</strong>.", + "board-private-info": "Táto nástenka bude <strong>súkromná</strong>.", + "board-public-info": "Táto nástenka bude <strong>verejná</strong>.", "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.", "boardChangeColorPopup-title": "Change Board Background", "boardChangeBackgroundImagePopup-title": "Change Background Image", @@ -177,11 +180,11 @@ "board-view-swimlanes": "Swimlanes", "board-view-collapse": "Collapse", "board-view-gantt": "Gantt", - "board-view-lists": "Lists", - "bucket-example": "Like “Bucket List” for example", + "board-view-lists": "Zoznamy", + "bucket-example": "Napríklad \"Rozpočet\".", "cancel": "Zrušiť", "card-archived": "This card is moved to Archive.", - "board-archived": "This board is moved to Archive.", + "board-archived": "Táto nástenka bude premiestnená do archívu.", "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", @@ -241,7 +244,7 @@ "cardLabelsPopup-title": "Labels", "cardMembersPopup-title": "Členovia", "cardMorePopup-title": "More", - "cardTemplatePopup-title": "Create template", + "cardTemplatePopup-title": "Vytvoriť šablónu", "cards": "Karty", "cards-count": "Karty", "cards-count-one": "Card", @@ -261,8 +264,11 @@ "changeSettingsPopup-title": "Change Settings", "subtasks": "Subtasks", "checklists": "Checklists", - "click-to-star": "Click to star this board.", - "click-to-unstar": "Click to unstar this board.", + "click-to-star": "Pridať hviezdičku na nástenku", + "click-to-unstar": "Odobrať hviezdičku z nástenky", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -312,17 +319,17 @@ "copy-card-link-to-clipboard": "Copy card link to clipboard", "copy-text-to-clipboard": "Copy text to clipboard", "linkCardPopup-title": "Link Card", - "searchElementPopup-title": "Search", + "searchElementPopup-title": "Hľadať", "copyCardPopup-title": "Copy Card", "copyManyCardsPopup-title": "Copy Template to Many Cards", "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", "copyManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", - "create": "Create", - "createBoardPopup-title": "Create Board", + "create": "Vytvoriť", + "createBoardPopup-title": "Vytvoriť nástenku", "chooseBoardSourcePopup-title": "Import board", - "createLabelPopup-title": "Create Label", - "createCustomField": "Create Field", - "createCustomFieldPopup-title": "Create Field", + "createLabelPopup-title": "Vytvoriť štítok", + "createCustomField": "Vytvoriť pole", + "createCustomFieldPopup-title": "Vytvoriť pole", "current": "current", "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", "custom-field-checkbox": "Checkbox", @@ -376,8 +383,9 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", - "error-board-doesNotExist": "This board does not exist", + "error-board-doesNotExist": "Táto nástenka neexistuje", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", "error-json-malformed": "Your text is not valid JSON", @@ -443,16 +451,16 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Celé meno", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", - "headerBarCreateBoardPopup-title": "Create Board", + "show-activities": "Show Activities", + "headerBarCreateBoardPopup-title": "Vytvoriť nástenku", "home": "Home", "import": "Import", "impersonate-user": "Impersonate user", - "link": "Link", - "import-board": "import board", - "import-board-c": "Import board", - "import-board-title-trello": "Import board from Trello", - "import-board-title-wekan": "Import board from previous export", + "link": "Pripojiť", + "import-board": "Importovať nástenku", + "import-board-c": "Importovať nástenku", + "import-board-title-trello": "Importovať nástenku z Trello", + "import-board-title-wekan": "Importovať nástenku z posledného exportu", "import-board-title-csv": "Import board from CSV/TSV", "from-trello": "Z Trella", "from-wekan": "From previous export", @@ -476,16 +484,16 @@ "invalid-user": "Invalid user", "joined": "joined", "just-invited": "You are just invited to this board", - "keyboard-shortcuts": "Keyboard shortcuts", - "label-create": "Create Label", + "keyboard-shortcuts": "Klávesové skratky", + "label-create": "Vytvoriť štítok", "label-default": "%s label (default)", "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", "labels": "Labels", "language": "Jazyk", "last-admin-desc": "You can’t change roles because there must be at least one admin.", - "leave-board": "Leave Board", + "leave-board": "Opustiť nástenku", "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", - "leaveBoardPopup-title": "Leave Board ?", + "leaveBoardPopup-title": "Opustiť nástenku ?", "link-card": "Link to this card", "list-archive-cards": "Move all cards in this list to Archive", "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.", @@ -521,9 +529,9 @@ "multi-selection-label": "Set label for selection", "multi-selection-member": "Set member for selection", "multi-selection-on": "Multi-Selection is on", - "muted": "Muted", + "muted": "Stíšené", "muted-info": "You will never be notified of any changes in this board", - "my-boards": "My Boards", + "my-boards": "Moje nástenky", "name": "Name", "no-archived-cards": "No cards in Archive.", "no-archived-lists": "No lists in Archive.", @@ -547,9 +555,9 @@ "private": "Private", "private-desc": "This board is private. Only people added to the board can view and edit it.", "profile": "Profile", - "public": "Public", + "public": "Verejné", "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.", - "quick-access-description": "Star a board to add a shortcut in this bar.", + "quick-access-description": "Pridaním hviezdičky na nástenku, ju zobrazíte na tomto mieste", "remove-cover": "Remove cover image from minicard", "remove-from-board": "Remove from Board", "remove-label": "Remove Label", @@ -559,19 +567,20 @@ "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", "removeMemberPopup-title": "Remove Member?", "rename": "Rename", - "rename-board": "Premenovať tabuľu", + "rename-board": "Premenovať nástenku", "restore": "Restore", "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions", "rescue-card-description-dialogue": "Overwrite current card description with your changes?", "save": "Uložiť", - "search": "Search", + "search": "Hľadať", "rules": "Rules", - "search-cards": "Search from card/list titles, descriptions and custom fields on this board", - "search-example": "Write text you search and press Enter", + "search-cards": "Vyhľadávajte podľa názvu karty/zoznamu, popisov a vlastných polí na tejto nástenke", + "search-example": "Napíšte text, ktorý hľadáte, a stlačte Enter", "select-color": "Select Color", - "select-board": "Select Board", + "select-board": "Zvoliť nástenku", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -586,13 +595,13 @@ "show-cards-minimum-count": "Show cards count if list contains more than", "sidebar-open": "Open Sidebar", "sidebar-close": "Close Sidebar", - "signupPopup-title": "Create an Account", + "signupPopup-title": "Vytvoriť účet", "star-board-title": "Click to star this board. It will show up at top of your boards list.", "starred-boards": "Starred Boards", "starred-boards-description": "Starred boards show up at the top of your boards list.", "subscribe": "Subscribe", "team": "Team", - "this-board": "this board", + "this-board": "táto nástenka", "this-card": "this card", "spent-time-hours": "Spent time (hours)", "overtime-hours": "Overtime (hours)", @@ -600,7 +609,8 @@ "has-overtime-cards": "Has overtime cards", "has-spenttime-cards": "Has spent time cards", "time": "Čas", - "title": "Title", + "title": "Názov", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -626,8 +636,8 @@ "warn-list-archived": "warning: this card is in an list at Archive", "watch": "Watch", "watching": "Watching", - "watching-info": "You will be notified of any change in this board", - "welcome-board": "Welcome Board", + "watching-info": "Budete informovaný o každej zmene na tejto nástenke", + "welcome-board": "Uvítacia nástenka", "welcome-swimlane": "Milestone 1", "welcome-list1": "Basics", "welcome-list2": "Advanced", @@ -724,8 +734,8 @@ "card-sorting-by-number": "Card sorting by number", "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", - "boardDeletePopup-title": "Delete Board?", - "delete-board": "Delete Board", + "boardDeletePopup-title": "Zmazať nástenku?", + "delete-board": "Zmazať nástenku", "default-subtasks-board": "Subtasks for __board__ board", "default": "Default", "defaultdefault": "Default", @@ -762,7 +772,7 @@ "r-rule": "Rule", "r-add-trigger": "Add trigger", "r-add-action": "Add action", - "r-board-rules": "Board rules", + "r-board-rules": "Pravidla nástenky", "r-add-rule": "Add rule", "r-view-rule": "View rule", "r-delete-rule": "Delete rule", @@ -775,7 +785,7 @@ "r-is-moved": "is moved", "r-added-to": "Added to", "r-removed-from": "Removed from", - "r-the-board": "the board", + "r-the-board": "nástenka", "r-list": "list", "set-filter": "Set Filter", "r-moved-to": "Moved to", @@ -836,7 +846,7 @@ "r-d-unarchive": "Restore card from Archive", "r-d-add-label": "Add label", "r-d-remove-label": "Remove label", - "r-create-card": "Create new card", + "r-create-card": "Vytvoriť novú kartu", "r-in-list": "in list", "r-in-swimlane": "in swimlane", "r-d-add-member": "Add member", @@ -844,11 +854,11 @@ "r-d-remove-all-member": "Remove all member", "r-d-check-all": "Check all items of a list", "r-d-uncheck-all": "Uncheck all items of a list", - "r-d-check-one": "Check item", - "r-d-uncheck-one": "Uncheck item", + "r-d-check-one": "Označiť položku", + "r-d-uncheck-one": "Odznačiť položku", "r-d-check-of-list": "of checklist", - "r-d-add-checklist": "Add checklist", - "r-d-remove-checklist": "Remove checklist", + "r-d-add-checklist": "Pridať checklist", + "r-d-remove-checklist": "Odobrať checklist", "r-by": "by", "r-add-checklist": "Add checklist", "r-with-items": "with items", @@ -861,10 +871,10 @@ "r-set": "Set", "r-update": "Update", "r-datefield": "date field", - "r-df-start-at": "start", + "r-df-start-at": "štart", "r-df-due-at": "due", - "r-df-end-at": "end", - "r-df-received-at": "received", + "r-df-end-at": "koniec", + "r-df-received-at": "prijať", "r-to-current-datetime": "to current date/time", "r-remove-value-from": "Remove value from", "r-link-card": "Link card to", @@ -885,7 +895,7 @@ "display-authentication-method": "Display Authentication Method", "oidc-button-text": "Customize the OIDC button text", "default-authentication-method": "Default Authentication Method", - "duplicate-board": "Duplicate Board", + "duplicate-board": "Duplikovať nástenku", "org-number": "The number of organizations is: ", "team-number": "The number of teams is: ", "people-number": "The number of people is: ", @@ -923,29 +933,29 @@ "addmore-detail": "Add a more detailed description", "show-on-card": "Show on Card", "show-on-minicard": "Show on Minicard", - "new": "New", + "new": "Nový", "editOrgPopup-title": "Edit Organization", "newOrgPopup-title": "New Organization", "editTeamPopup-title": "Edit Team", "newTeamPopup-title": "New Team", "editUserPopup-title": "Edit User", "newUserPopup-title": "New User", - "notifications": "Notifications", - "help": "Help", - "view-all": "View All", + "notifications": "Upozornenia", + "help": "Pomoc", + "view-all": "Zobraziť všetko", "filter-by-unread": "Filter by Unread", "mark-all-as-read": "Mark all as read", "remove-all-read": "Remove all read", "allow-rename": "Allow Rename", "allowRenamePopup-title": "Allow Rename", "start-day-of-week": "Set day of the week start", - "monday": "Monday", - "tuesday": "Tuesday", - "wednesday": "Wednesday", - "thursday": "Thursday", - "friday": "Friday", - "saturday": "Saturday", - "sunday": "Sunday", + "monday": "pondelok", + "tuesday": "utorok", + "wednesday": "streda", + "thursday": "štvrtok", + "friday": "piatok", + "saturday": "sobota", + "sunday": "nedeľa", "status": "Status", "swimlane": "Swimlane", "owner": "Owner", @@ -956,8 +966,9 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", - "task": "Task", - "create-task": "Create Task", + "hide-finished-checklist": "Hide finished checklist", + "task": "Úloha", + "create-task": "Vytvoriť úlohu", "ok": "OK", "organizations": "Organizations", "teams": "Teams", @@ -967,17 +978,17 @@ "website": "Website", "person": "Person", "my-cards": "My Cards", - "card": "Card", - "list": "List", - "board": "Board", + "card": "Karta", + "list": "Zoznam", + "board": "Nástenka", "context-separator": "/", "myCardsViewChange-title": "My Cards View", "myCardsViewChangePopup-title": "My Cards View", - "myCardsViewChange-choice-boards": "Tabule", + "myCardsViewChange-choice-boards": "Nástenky", "myCardsViewChange-choice-table": "Table", "myCardsSortChange-title": "My Cards Sort", "myCardsSortChangePopup-title": "My Cards Sort", - "myCardsSortChange-choice-board": "By Board", + "myCardsSortChange-choice-board": "Podľa násteniek", "myCardsSortChange-choice-dueat": "By Due Date", "dueCards-title": "Due Cards", "dueCardsViewChange-title": "Due Cards View", @@ -986,7 +997,7 @@ "dueCardsViewChange-choice-all": "All Users", "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", "broken-cards": "Broken Cards", - "board-title-not-found": "Board '%s' not found.", + "board-title-not-found": "Nástenka '%s' sa nenašla.", "swimlane-title-not-found": "Swimlane '%s' not found.", "list-title-not-found": "List '%s' not found.", "label-not-found": "Label '%s' not found.", @@ -995,32 +1006,32 @@ "comment-not-found": "Card with comment containing text '%s' not found.", "org-name-not-found": "Organization '%s' not found.", "team-name-not-found": "Team '%s' not found.", - "globalSearch-title": "Search All Boards", + "globalSearch-title": "Prehľadávať všetky nástenky", "no-cards-found": "No Cards Found", "one-card-found": "One Card Found", "n-cards-found": "%s Cards Found", "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", - "operator-board": "board", + "operator-board": "nástenka", "operator-board-abbrev": "b", "operator-swimlane": "swimlane", "operator-swimlane-abbrev": "s", - "operator-list": "list", + "operator-list": "zoznam", "operator-list-abbrev": "l", - "operator-label": "label", + "operator-label": "štítok", "operator-label-abbrev": "#", - "operator-user": "user", + "operator-user": "používateľ", "operator-user-abbrev": "@", - "operator-member": "member", + "operator-member": "člen", "operator-member-abbrev": "m", - "operator-assignee": "assignee", + "operator-assignee": "pridelenec", "operator-assignee-abbrev": "a", - "operator-creator": "creator", + "operator-creator": "Vytvoril", "operator-status": "status", "operator-due": "due", - "operator-created": "created", - "operator-modified": "modified", + "operator-created": "vytvorené", + "operator-modified": "upravené", "operator-sort": "sort", - "operator-comment": "comment", + "operator-comment": "komentár", "operator-has": "has", "operator-limit": "limit", "operator-debug": "debug", @@ -1037,7 +1048,7 @@ "predicate-year": "year", "predicate-due": "due", "predicate-modified": "modified", - "predicate-created": "created", + "predicate-created": "vytvorené", "predicate-attachment": "attachment", "predicate-description": "description", "predicate-checklist": "checklist", @@ -1045,8 +1056,8 @@ "predicate-end": "end", "predicate-assignee": "assignee", "predicate-member": "member", - "predicate-public": "public", - "predicate-private": "private", + "predicate-public": "verejný", + "predicate-private": "súkromný", "predicate-selector": "selector", "predicate-projection": "projection", "operator-unknown-error": "%s is not an operator", @@ -1056,9 +1067,9 @@ "operator-has-invalid": "%s is not a valid existence check", "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", "operator-debug-invalid": "%s is not a valid debug predicate", - "next-page": "Next Page", - "previous-page": "Previous Page", - "heading-notes": "Notes", + "next-page": "Ďalšia strana", + "previous-page": "Predchádzajúca strana", + "heading-notes": "Poznámky", "globalSearch-instructions-heading": "Search Instructions", "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", "globalSearch-instructions-operators": "Available operators:", @@ -1106,11 +1117,11 @@ "server-error": "Chyba serveru", "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`", "title-alphabetically": "Title (Alphabetically)", - "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)", + "created-at-newest-first": "Vytvorené (Od najnovšieho)", + "created-at-oldest-first": "Vytvorené (Od najstaršieho)", "links-heading": "Odkazy", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1159,7 +1170,7 @@ "cardDetailsPopup-title": "Card Details", "add-teams": "Add teams", "add-teams-label": "Added teams are displayed below:", - "remove-team-from-table": "Are you sure you want to remove this team from the board ?", + "remove-team-from-table": "Ste si istý, že chcete odstrániť tento tím z nástenky ?", "confirm-btn": "Confirm", "remove-btn": "Remove", "filter-card-title-label": "Filter by card title", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1214,7 +1228,7 @@ "size": "Size", "storage": "Storage", "action": "Action", - "board-title": "Board Title", + "board-title": "Názov nástenky", "attachmentRenamePopup-title": "Rename", "uploading": "Uploading", "remaining_time": "Remaining time", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/sl.i18n.json b/imports/i18n/data/sl.i18n.json index 05365c94a..cc39b709f 100644 --- a/imports/i18n/data/sl.i18n.json +++ b/imports/i18n/data/sl.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s premaknjeno v arhiv", "activity-attached": "pripel %s v %s", "activity-created": "ustvaril %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "ustvaril poljubno polje%s", "activity-excluded": "izključil %s iz %s", "activity-imported": "uvozil %s v %s iz %s", @@ -85,10 +86,12 @@ "add-card": "Dodaj kartico", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Kontrolni seznami", "click-to-star": "Kliknite, da označite tablo z zvezdico.", "click-to-unstar": "Kliknite, da odznačite tablo z zvezdico.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Odložišče ali povleci & spusti", "close": "Zapri", "close-board": "Zapri tablo", @@ -294,6 +300,7 @@ "color-white": "bela", "color-yellow": "rumena", "unset-color": "Onemogoči", + "comments": "Comments", "comment": "Komentiraj", "comment-placeholder": "Napiši komentar", "comment-only": "Samo komentar", @@ -376,6 +383,7 @@ "email-sent": "E-pošta poslana", "email-verifyEmail-subject": "Preverite svoje e-poštni naslov na __siteName__", "email-verifyEmail-text": "Pozdravljeni __user__,\n\nDa preverite e-poštni naslov za vaš uporabniški račun, kliknite na spodnjo povezavo.\n\n__url__\n\nHvala.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Vklopi omejitev št. kartic", "error-board-doesNotExist": "Ta tabla ne obstaja", "error-board-notAdmin": "Nimate administrativnih pravic za tablo.", @@ -443,7 +451,7 @@ "advanced-filter-description": "Napredni filter omogoča pripravo niza, ki vsebuje naslednje operaterje: == != <= >= && || () Preslednica se uporablja kot ločilo med operatorji. Vsa polja po meri lahko filtrirate tako, da vtipkate njihova imena in vrednosti. Na primer: Polje1 == Vrednost1. Opomba: Če polja ali vrednosti vsebujejo presledke, jih morate postaviti v enojne narekovaje. Primer: 'Polje 1' == 'Vrednost 1'. Če želite preskočiti posamezne kontrolne znake (' \\\\/), lahko uporabite \\\\\\. Na primer: Polje1 == I\\\\'m. Prav tako lahko kombinirate več pogojev. Na primer: F1 == V1 || F1 == V2. Običajno se vsi operaterji interpretirajo od leve proti desni. Vrstni red lahko spremenite tako, da postavite oklepaje. Na primer: F1 == V1 && ( F2 == V2 || F2 == V3 ). Prav tako lahko po besedilu iščete z uporabo pravil regex: F1 == /Tes.*/i", "fullname": "Polno Ime", "header-logo-title": "Pojdi nazaj na stran s tablami.", - "hide-system-messages": "Skrij sistemska sporočila", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Ustvari tablo", "home": "Domov", "import": "Uvozi", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Omeji maksimalno število opravil v seznamu", "setWipLimitPopup-title": "Omeji število kartic", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Dodeli sebe k trenutni kartici", "shortcut-autocomplete-emoji": "Samodokončaj emoji", "shortcut-autocomplete-members": "Samodokončaj člane", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Ima kartice s porabljenim časom", "time": "Čas", "title": "Naslov", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Sledenje", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Besedilo", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Skrči", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/sr.i18n.json b/imports/i18n/data/sr.i18n.json index aaa93ac99..031c021e7 100644 --- a/imports/i18n/data/sr.i18n.json +++ b/imports/i18n/data/sr.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s премештено у архиву", "activity-attached": "приложио %s у %s", "activity-created": "направио %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "направио сасвим ново поље %s", "activity-excluded": "изузет %s из %s", "activity-imported": "увезао %s у %s из %s", @@ -85,10 +86,12 @@ "add-card": "Додај картицу са задатком", "add-card-to-top-of-list": "Додај картицу/задатак на врх деонице", "add-card-to-bottom-of-list": "Додај картицу/задатак на дно деонице", - "setListWidthPopup-title": "Подеси ширину листе", - "set-list-width": "Подеси ширину листе", - "set-list-width-value": "Ширина листе (у пикселима)", - "list-width-error-message": "Ширина стазе мора бити позитиван број", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Подеси висину стазе", "set-swimlane-height": "Подеси висину стазе", "set-swimlane-height-value": "Висина стазе (у пикселима)", @@ -263,6 +266,9 @@ "checklists": "Спискови", "click-to-star": "Притисни да означиш звездицом ову књигу пословања.", "click-to-unstar": "Притисни да уклониш звездицу са ове пословне књиге.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Из историје или пренеси и испусти", "close": "Заклопи", "close-board": "Заклопи књигу пословања", @@ -294,6 +300,7 @@ "color-white": "бела", "color-yellow": "жута", "unset-color": "Обриши подешавање", + "comments": "Comments", "comment": "Изнеси мишљење", "comment-placeholder": "Простор за изношење мишљења", "comment-only": "Износи мишљење", @@ -376,6 +383,7 @@ "email-sent": "Е-пошта је послана", "email-verifyEmail-subject": "Потврдите Вашу адресу е-поште на страници __siteName__", "email-verifyEmail-text": "Добар дан __user__,\n\nДа би сте потврдили ваш налог за е-пошту, једноставно притисните на везу испод.\n\n__url__\n\nХвала.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Ограничи број послова", "error-board-doesNotExist": "Ова пословна књига не постоји", "error-board-notAdmin": "Да би то урадили, треба да будете администратор/управник ове књиге пословања", @@ -443,7 +451,7 @@ "advanced-filter-description": "Напредно издвајање Вам омогућава да напишете ниску која садржи следеће оператореAdvanced: == != <= >= && || ( ) Празно место се користи да раздвоји операторе. Можете да издвајате сва поља која сте измислили пишући њихова имена и вредности. На пример: ИмеИзмишљеногПоља == Вредност. Напомена: Уколико предметна поља или њихове вредности садрже празна места треба да их обухватите у једноструке наводнике. На пример: 'Поље 1' == 'Вредност 1'. Да би избегли контролне знаке (' \\\\/) , можете да користите \\\\. Например: Поље1 == Ал\\\\' је дугачко поље. Такође можете измешати више услова. На пример: Поље1 == Вредност1 || Поље1 == Вредност2. Провера услова се обавља са лева на десно. Додавањем заграда ћете утицати на проверу. На пример: Поље1 == Вредност1 && ( Поље2 == Вредност2 || Поље2 == Вредност3 ). Такође можете претраживати поља програмерским изразима: Поље1 == /Tes.*/i", "fullname": "Име и презиме", "header-logo-title": "Вратите се на полицу са Вашим пословним књигама.", - "hide-system-messages": "Сакриј системске поруке", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Отвори нову књигу пословања", "home": "Почетна", "import": "Унеси", @@ -572,6 +580,7 @@ "select-board": "Изаберите књигу пословања", "set-wip-limit-value": "Поставите границу за максимални дозвољени број задатака на овој деоници", "setWipLimitPopup-title": "Поставите ограничење броја послова", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Придружите себе тренутној картици", "shortcut-autocomplete-emoji": "Сам попуни emoji", "shortcut-autocomplete-members": "Сам попуни сараднике", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Има задатке са мерењем времена", "time": "Време", "title": "Наслов", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Укључи/искључи натписе од 1 до 9 за задатак. Вишеструк избор додаје натпис од 1 до 9", "remove-labels-multiselect": "Вишеструким избором се уклањају натписи од 1 до 9", "tracking": "Праћење", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Не можете избрисати ову картицу пре него што прво избришете повезану картицу која има", "delete-linked-cards-before-this-list": "Не можете избрисати ову деоницу -- прво избришете повезане картице које показују на картице на овој деоници", "hide-checked-items": "Сакриј већ обављено са списка", + "hide-finished-checklist": "Hide finished checklist", "task": "Задатак", "create-task": "Задај", "ok": "У реду", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Кад је направљено (Најновије прво)", "created-at-oldest-first": "Кад је направљено (Најстарије прво)", "links-heading": "Везе", - "hide-system-messages-of-all-users": "Сакриј системске поруке за све кориснике", - "now-system-messages-of-all-users-are-hidden": "Сада су системске поруке свих корисника сакривене", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Премести стазу", "moveSwimlanePopup-title": "Премештање стазе", "custom-field-stringtemplate": "Предложак за словни низ", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Радње на списковима за обавити", "moveChecklist": "Премести списак за обавити", "moveChecklistPopup-title": "Премести списак за обавити", - "newlineBecomesNewChecklistItem": "Следећи ред постаје нова ставка на списку за обавити", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Умножи списак", "copyChecklistPopup-title": "Умножи списак", "card-show-lists": "Прикажи спискове на картици", @@ -1242,9 +1256,17 @@ "translation": "Превод", "text": "Текст", "translation-text": "Превод текста", - "show-at-minicard": "Покажи на мини картици", - "show-checklist-at-minicard": "Прикажи списак на мини картици", "show-subtasks-field": "Прикажи поље за подзадатке", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Претвори у маркдаун", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Сажми", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index bf1f34908..c43ed08f8 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s flyttades till Arkiv", "activity-attached": "bifogade %s till %s", "activity-created": "skapade %s", + "activity-changedListTitle": "döpte om listan till %s", "activity-customfield-created": "skapade anpassat fält %s", "activity-excluded": "exkluderade %s från %s", "activity-imported": "importerade %s till %s från %s", @@ -85,10 +86,12 @@ "add-card": "Lägg till kort", "add-card-to-top-of-list": "Lägg till kort överst i listan", "add-card-to-bottom-of-list": "Lägg till kort i botten av listan", - "setListWidthPopup-title": "Ställ in listbredd", - "set-list-width": "Ställ in listbredd", - "set-list-width-value": "Listbredd (pixlar)", - "list-width-error-message": "Listbredden måste vara ett positivt heltal", + "setListWidthPopup-title": "Ställ in min bredd", + "set-list-width": "Ställ in min bredd", + "set-list-width-value": "Min och max bredd (pixlar)", + "list-width-error-message": "Listbredder måste vara heltal större än 100", + "keyboard-shortcuts-enabled": "Tangentbordsgenvägar aktiverade. Klicka för att inaktivera.", + "keyboard-shortcuts-disabled": "Tangentbordsgenvägar inaktiverade. Klicka för att aktivera.", "setSwimlaneHeightPopup-title": "Ställ in simbanans höjd", "set-swimlane-height": "Ställ in simbanans höjd", "set-swimlane-height-value": "Simbanans höjd (pixlar)", @@ -263,6 +266,9 @@ "checklists": "Checklistor", "click-to-star": "Klicka för att stjärnmärka denna tavla.", "click-to-unstar": "Klicka för att ta bort stjärnmärkningen från denna tavla.", + "click-to-enable-auto-width": "Automatisk listbredd inaktiverad. Klicka för att aktivera.", + "click-to-disable-auto-width": "Automatisk listbredd aktiverad. Klicka för att inaktivera.", + "auto-list-width": "Automatisk listbredd", "clipboard": "Urklipp eller dra & släpp", "close": "Stäng", "close-board": "Stäng tavla", @@ -294,6 +300,7 @@ "color-white": "vit", "color-yellow": "gul", "unset-color": "Ta bort", + "comments": "Kommentarer", "comment": "Kommentera", "comment-placeholder": "Skriv kommentar", "comment-only": "Kommentera endast", @@ -376,6 +383,7 @@ "email-sent": "E-post skickad", "email-verifyEmail-subject": "Verifiera din e-post adress på __siteName__", "email-verifyEmail-text": "Hej __user__,\n\nFör att verifiera din konto e-post, klicka på länken nedan.\n\n__url__\n\nTack!", + "enable-vertical-scrollbars": "Aktivera vertikala rullningslister", "enable-wip-limit": "Aktivera WIP-gräns", "error-board-doesNotExist": "Denna tavla finns inte", "error-board-notAdmin": "Du måste vara administratör för denna tavla för att göra det", @@ -443,7 +451,7 @@ "advanced-filter-description": "Avancerade filter låter dig skriva en sträng innehållande följande operatorer: == != <= >= && || ( ). Ett mellanslag används som separator mellan operatorerna. Du kan filtrera alla specialfält genom att skriva dess namn och värde. Till exempel: Fält1 == Vårde1. Notera: om fälten eller värden innehåller mellanrum behöver du innesluta dem med enkla citatstecken. Till exempel: 'Fält 1' == 'Värde 1'. För att skippa enkla kontrolltecken (' \\\\/) kan du använda \\\\. Till exempel: Fält1 == I\\\\'m. Du kan även kombinera fler villkor. TIll exempel: F1 == V1 || F1 == V2. Vanligtvis läses operatorerna från vänster till höger. Du kan ändra ordning genom att använda paranteser. TIll exempel: F1 == V1 && ( F2 == V2 || F2 == V3 ). Du kan även söka efter textfält med hjälp av regex: F1 == /Tes.*/i", "fullname": "Namn", "header-logo-title": "Gå tillbaka till din anslagstavlor-sida.", - "hide-system-messages": "Dölj systemmeddelanden", + "show-activities": "Visa aktiviteter", "headerBarCreateBoardPopup-title": "Skapa tavla", "home": "Hem", "import": "Importera", @@ -572,13 +580,14 @@ "select-board": "Välj tavla", "set-wip-limit-value": "Ange en gräns för det maximala antalet uppgifter i den här listan", "setWipLimitPopup-title": "Ställ in WIP-gräns", + "shortcut-add-self": "Tilldela dig nuvarande kort", "shortcut-assign-self": "Tilldela dig nuvarande kort", "shortcut-autocomplete-emoji": "Komplettera automatiskt emoji", "shortcut-autocomplete-members": "Komplettera automatiskt medlemmar", "shortcut-clear-filters": "Rensa alla filter", "shortcut-close-dialog": "Stäng dialog", "shortcut-filter-my-cards": "Filtrera mina kort", - "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-filter-my-assigned-cards": "Filtrera på mina kort", "shortcut-show-shortcuts": "Ta fram denna genvägslista", "shortcut-toggle-filterbar": "Växla filtrets sidofält", "shortcut-toggle-searchbar": "Växla sökfältet", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Har spenderat tidkort", "time": "Tid", "title": "Titel", + "toggle-assignees": "Växla tilldelade personer 1-9 för kort (I den ordning de lades till i tavlan).", "toggle-labels": "Toggle-etiketter 1-9 för kortet. Multi-Selection lägger till etiketter 1-9.", "remove-labels-multiselect": "Multi-Selection raderar etikett 1-9", "tracking": "Spåra", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Du kan inte radera det här kortet innan du raderat länkat kort som har", "delete-linked-cards-before-this-list": "Du kan inte radera den här listan innan du raderat länkade kort som pekar till kort i den här listan", "hide-checked-items": "Dölj markerade objekt", + "hide-finished-checklist": "Göm färdig checklista", "task": "Uppgift", "create-task": "Skapa uppgift", "ok": "OK", @@ -963,7 +974,7 @@ "teams": "Grupper", "displayName": "Visningsnamn", "shortName": "Kortnamn", - "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "autoAddUsersWithDomainName": "Automatiskt lägga till användare med domännamnet", "website": "Webbsida", "person": "Person", "my-cards": "Mina kort", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Skapad den (Nyast först)", "created-at-oldest-first": "Skapad den (äldst först)", "links-heading": "Länkar", - "hide-system-messages-of-all-users": "Göm systemmeddelanden för alla användare", - "now-system-messages-of-all-users-are-hidden": "Systemmeddelande dolda för alla användare", + "hide-activities-of-all-boards": "Visa inte aktiviteter på alla tavlor", + "now-activities-of-all-boards-are-hidden": "Nu är alla aktiviteter på alla tavlor dolda", "move-swimlane": "Flytta simbana", "moveSwimlanePopup-title": "Flytta simbana", "custom-field-stringtemplate": "Textmall", @@ -1118,7 +1129,7 @@ "custom-field-stringtemplate-separator": "Avskiljare (använd eller   för mellanslag)", "custom-field-stringtemplate-item-placeholder": "Tryck enter för att lägga till fler", "creator": "Skapare", - "creator-on-minicard": "Creator on minicard", + "creator-on-minicard": "Minikortets skapare", "filesReportTitle": "Filrapport", "reports": "Rapporter", "rulesReportTitle": "Regelrapport", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Liståtgärder", "moveChecklist": "Flytta checklista", "moveChecklistPopup-title": "Flytta checklista", - "newlineBecomesNewChecklistItem": "Nyrad blir ny checklista", + "newlineBecomesNewChecklistItem": "Varje textrad blir ett objekt i checklistan", + "newLineNewItem": "En textrad = ett objekt i checklistan", + "newlineBecomesNewChecklistItemOriginOrder": "Varje textrad blir ett objekt i checklistan, i ursprunglig ordning", + "originOrder": "ursprunglig ordning", "copyChecklist": "Kopiera checklista", "copyChecklistPopup-title": "Kopiera checklista", "card-show-lists": "Visa listor på kort", @@ -1242,9 +1256,17 @@ "translation": "Översättning", "text": "Text", "translation-text": "Översatt text", - "show-at-minicard": "Visa på minikort", - "show-checklist-at-minicard": "Visa checklista på minikort", "show-subtasks-field": "Visa underuppgiftsfält", + "show-week-of-year": "Visa veckonummer (ISO 8601)", "convert-to-markdown": "Konvertera till markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Lägga till .zip-filen till tavlans JSON filer, och tavla", + "collapse": "Fäll ihop", + "uncollapse": "Expandera", + "hideCheckedChecklistItems": "Dölj markerade objekt i checklistan", + "hideAllChecklistItems": "Dölj alla objekt i checklistan", + "support": "Hjälp", + "supportPopup-title": "Hjälp", + "accessibility-page-enabled": "Tillgänglighetssida aktiverad", + "accessibility-title": "Tillgänglighetsämne", + "accessibility-content": "Tillgänglighetsinnehåll" } diff --git a/imports/i18n/data/sw.i18n.json b/imports/i18n/data/sw.i18n.json index 2dd52852c..ea7cbdf34 100644 --- a/imports/i18n/data/sw.i18n.json +++ b/imports/i18n/data/sw.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Funga", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Changia", "comment-placeholder": "Andika changio", "comment-only": "Changia pekee", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ta.i18n.json b/imports/i18n/data/ta.i18n.json index d88d26c47..fc2eda7ca 100644 --- a/imports/i18n/data/ta.i18n.json +++ b/imports/i18n/data/ta.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "உருவாக்கப்பட்டது", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "வெள்ளை", "color-yellow": "மஞ்சள்", "unset-color": "Unset", + "comments": "Comments", "comment": "கருத்து", "comment-placeholder": "Write Comment", "comment-only": "கருத்து மட்டும்", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "முழு பெயர்", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "தொடக்கம்", "import": "பதிவேற்றம்", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/te-IN.i18n.json b/imports/i18n/data/te-IN.i18n.json new file mode 100644 index 000000000..78b62d375 --- /dev/null +++ b/imports/i18n/data/te-IN.i18n.json @@ -0,0 +1,1272 @@ +{ + "accept": "Accept", + "act-activity-notify": "Activity Notification", + "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-createCustomField": "created custom field __customField__ at board __board__", + "act-deleteCustomField": "deleted custom field __customField__ at board __board__", + "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createList": "added list __list__ to board __board__", + "act-addBoardMember": "added member __member__ to board __board__", + "act-archivedBoard": "Board __board__ moved to Archive", + "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive", + "act-importBoard": "imported board __board__", + "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__", + "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", + "act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-removeBoardMember": "removed member __member__ from board __board__", + "act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-withBoardTitle": "__board__", + "act-withCardTitle": "[__board__] __card__", + "actions": "Actions", + "activities": "Activities", + "activity": "Activity", + "activity-added": "added %s to %s", + "activity-archived": "%s moved to Archive", + "activity-attached": "attached %s to %s", + "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", + "activity-customfield-created": "created custom field %s", + "activity-excluded": "excluded %s from %s", + "activity-imported": "imported %s into %s from %s", + "activity-imported-board": "imported %s from %s", + "activity-joined": "joined %s", + "activity-moved": "moved %s from %s to %s", + "activity-on": "on %s", + "activity-removed": "removed %s from %s", + "activity-sent": "sent %s to %s", + "activity-unjoined": "unjoined %s", + "activity-subtask-added": "added subtask to %s", + "activity-checked-item": "checked %s in checklist %s of %s", + "activity-unchecked-item": "unchecked %s in checklist %s of %s", + "activity-checklist-added": "added checklist to %s", + "activity-checklist-removed": "removed a checklist from %s", + "activity-checklist-completed": "completed checklist %s of %s", + "activity-checklist-uncompleted": "uncompleted the checklist %s of %s", + "activity-checklist-item-added": "added checklist item to '%s' in %s", + "activity-checklist-item-removed": "removed a checklist item from '%s' in %s", + "add": "Add", + "activity-checked-item-card": "checked %s in checklist %s", + "activity-unchecked-item-card": "unchecked %s in checklist %s", + "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checklist-uncompleted-card": "uncompleted the checklist %s", + "activity-editComment": "edited comment %s", + "activity-deleteComment": "deleted comment %s", + "activity-receivedDate": "edited received date to %s of %s", + "activity-startDate": "edited start date to %s of %s", + "activity-dueDate": "edited due date to %s of %s", + "activity-endDate": "edited end date to %s of %s", + "add-attachment": "Add Attachment", + "add-board": "Add Board", + "add-template": "Add Template", + "add-card": "Add Card", + "add-card-to-top-of-list": "Add Card to Top of List", + "add-card-to-bottom-of-list": "Add Card to Bottom of List", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "setSwimlaneHeightPopup-title": "Set Swimlane Height", + "set-swimlane-height": "Set Swimlane Height", + "set-swimlane-height-value": "Swimlane Height (pixels)", + "swimlane-height-error-message": "Swimlane height must be a positive integer", + "add-swimlane": "Add Swimlane", + "add-subtask": "Add Subtask", + "add-checklist": "Add Checklist", + "add-checklist-item": "Add an item to checklist", + "close-add-checklist-item": "Close add an item to checklist form", + "close-edit-checklist-item": "Close edit an item to checklist form", + "convertChecklistItemToCardPopup-title": "Convert to Card", + "add-cover": "Add cover image to minicard", + "add-label": "Add Label", + "add-list": "Add List", + "add-after-list": "Add After List", + "add-members": "Add Members", + "added": "Added", + "addMemberPopup-title": "Members", + "memberPopup-title": "Member Settings", + "admin": "Admin", + "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", + "all-boards": "All Boards", + "and-n-other-card": "And __count__ other card", + "and-n-other-card_plural": "And __count__ other cards", + "apply": "Apply", + "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.", + "app-try-reconnect": "Try to reconnect.", + "archive": "Move to Archive", + "archive-all": "Move All to Archive", + "archive-board": "Move Board to Archive", + "archive-card": "Move Card to Archive", + "archive-list": "Move List to Archive", + "archive-swimlane": "Move Swimlane to Archive", + "archive-selection": "Move selection to Archive", + "archiveBoardPopup-title": "Move Board to Archive?", + "archived-items": "Archive", + "archived-boards": "Boards in Archive", + "restore-board": "Restore Board", + "no-archived-boards": "No Boards in Archive.", + "archives": "Archive", + "template": "Template", + "templates": "Templates", + "template-container": "Template Container", + "add-template-container": "Add Template Container", + "assign-member": "Assign member", + "attached": "attached", + "attachment": "Attachment", + "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.", + "attachmentDeletePopup-title": "Delete Attachment?", + "attachments": "Attachments", + "auto-watch": "Automatically watch boards when they are created", + "avatar-too-big": "The avatar is too large (__size__ max)", + "back": "Back", + "board-change-color": "Change color", + "board-change-background-image": "Change Background Image", + "board-background-image-url": "Background Image URL", + "add-background-image": "Add Background Image", + "remove-background-image": "Remove Background Image", + "show-at-all-boards-page" : "Show at All Boards page", + "board-info-on-my-boards" : "All Boards Settings", + "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", + "boardInfoOnMyBoards-title": "All Boards Settings", + "show-card-counter-per-list": "Show card count per list", + "show-board_members-avatar": "Show Board members avatars", + "board-nb-stars": "%s stars", + "board-not-found": "Board not found", + "board-private-info": "This board will be <strong>private</strong>.", + "board-public-info": "This board will be <strong>public</strong>.", + "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.", + "boardChangeColorPopup-title": "Change Board Background", + "boardChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeColorPopup-title": "Change color", + "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "boardChangeTitlePopup-title": "Rename Board", + "boardChangeVisibilityPopup-title": "Change Visibility", + "boardChangeWatchPopup-title": "Change Watch", + "boardMenuPopup-title": "Board Settings", + "allBoardsMenuPopup-title": "Settings", + "boardChangeViewPopup-title": "Board View", + "boards": "Boards", + "board-view": "Board View", + "board-view-cal": "Calendar", + "board-view-swimlanes": "Swimlanes", + "board-view-collapse": "Collapse", + "board-view-gantt": "Gantt", + "board-view-lists": "Lists", + "bucket-example": "Like “Bucket List” for example", + "cancel": "Cancel", + "card-archived": "This card is moved to Archive.", + "board-archived": "This board is moved to Archive.", + "card-comments-title": "This card has %s comment.", + "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", + "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", + "card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.", + "card-archive-pop": "Card will not be visible at this list after archiving card.", + "card-archive-suggest-cancel": "You can later restore card from Archive.", + "card-due": "Due", + "card-due-on": "Due on", + "card-spent": "Spent Time", + "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", + "card-edit-labels": "Edit labels", + "card-edit-members": "Edit members", + "card-labels-title": "Change the labels for the card.", + "card-members-title": "Add or remove members of the board from the card.", + "card-start": "Start", + "card-start-on": "Starts on", + "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", + "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", + "card-edit-voting": "Edit voting", + "editVoteEndDatePopup-title": "Change vote end date", + "allowNonBoardMembers": "Allow all logged in users", + "vote-question": "Voting question", + "vote-public": "Show who voted what", + "vote-for-it": "for it", + "vote-against": "against", + "deleteVotePopup-title": "Delete vote?", + "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.", + "cardStartPlanningPokerPopup-title": "Start a Planning Poker", + "card-edit-planning-poker": "Edit Planning Poker", + "editPokerEndDatePopup-title": "Change Planning Poker vote end date", + "poker-question": "Planning Poker", + "poker-one": "1", + "poker-two": "2", + "poker-three": "3", + "poker-five": "5", + "poker-eight": "8", + "poker-thirteen": "13", + "poker-twenty": "20", + "poker-forty": "40", + "poker-oneHundred": "100", + "poker-unsure": "?", + "poker-finish": "Finish", + "poker-result-votes": "Votes", + "poker-result-who": "Who", + "poker-replay": "Replay", + "set-estimation": "Set Estimation", + "deletePokerPopup-title": "Delete planning poker?", + "poker-delete-pop": "Deleting is permanent. You will lose all actions associated with this planning poker.", + "cardDeletePopup-title": "Delete Card?", + "cardArchivePopup-title": "Archive Card?", + "cardDetailsActionsPopup-title": "Card Actions", + "cardLabelsPopup-title": "Labels", + "cardMembersPopup-title": "Members", + "cardMorePopup-title": "More", + "cardTemplatePopup-title": "Create template", + "cards": "Cards", + "cards-count": "Cards", + "cards-count-one": "Card", + "casSignIn": "Sign In with CAS", + "cardType-card": "Card", + "cardType-linkedCard": "Linked Card", + "cardType-linkedBoard": "Linked Board", + "change": "Change", + "change-avatar": "Change Avatar", + "change-password": "Change Password", + "change-permissions": "Change permissions", + "change-settings": "Change Settings", + "changeAvatarPopup-title": "Change Avatar", + "changeLanguagePopup-title": "Change Language", + "changePasswordPopup-title": "Change Password", + "changePermissionsPopup-title": "Change Permissions", + "changeSettingsPopup-title": "Change Settings", + "subtasks": "Subtasks", + "checklists": "Checklists", + "click-to-star": "Click to star this board.", + "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", + "clipboard": "Clipboard or drag & drop", + "close": "Close", + "close-board": "Close Board", + "close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.", + "close-card": "Close Card", + "color-black": "black", + "color-blue": "blue", + "color-crimson": "crimson", + "color-darkgreen": "darkgreen", + "color-gold": "gold", + "color-gray": "gray", + "color-green": "green", + "color-indigo": "indigo", + "color-lime": "lime", + "color-magenta": "magenta", + "color-mistyrose": "mistyrose", + "color-navy": "navy", + "color-orange": "orange", + "color-paleturquoise": "paleturquoise", + "color-peachpuff": "peachpuff", + "color-pink": "pink", + "color-plum": "plum", + "color-purple": "purple", + "color-red": "red", + "color-saddlebrown": "saddlebrown", + "color-silver": "silver", + "color-sky": "sky", + "color-slateblue": "slateblue", + "color-white": "white", + "color-yellow": "yellow", + "unset-color": "Unset", + "comments": "Comments", + "comment": "Comment", + "comment-placeholder": "Write Comment", + "comment-only": "Comment only", + "comment-only-desc": "Can comment on cards only.", + "comment-delete": "Are you sure you want to delete the comment?", + "deleteCommentPopup-title": "Delete comment?", + "no-comments": "No comments", + "no-comments-desc": "Can not see comments and activities.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", + "computer": "Computer", + "confirm-subtask-delete-popup": "Are you sure you want to delete subtask?", + "confirm-checklist-delete-popup": "Are you sure you want to delete the checklist?", + "subtaskDeletePopup-title": "Delete Subtask?", + "checklistDeletePopup-title": "Delete Checklist?", + "copy-card-link-to-clipboard": "Copy card link to clipboard", + "copy-text-to-clipboard": "Copy text to clipboard", + "linkCardPopup-title": "Link Card", + "searchElementPopup-title": "Search", + "copyCardPopup-title": "Copy Card", + "copyManyCardsPopup-title": "Copy Template to Many Cards", + "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", + "copyManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", + "create": "Create", + "createBoardPopup-title": "Create Board", + "chooseBoardSourcePopup-title": "Import board", + "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", + "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-currency": "Currency", + "custom-field-currency-option": "Currency Code", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", + "date": "Date", + "decline": "Decline", + "default-avatar": "Default avatar", + "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", + "deleteLabelPopup-title": "Delete Label?", + "description": "Description", + "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", + "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", + "discard": "Discard", + "done": "Done", + "download": "Download", + "edit": "Edit", + "edit-avatar": "Change Avatar", + "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", + "soft-wip-limit": "Soft WIP Limit", + "editCardStartDatePopup-title": "Change start date", + "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", + "addReactionPopup-title": "Add reaction", + "editCardSpentTimePopup-title": "Change spent time", + "editLabelPopup-title": "Change Label", + "editNotificationPopup-title": "Edit Notification", + "editProfilePopup-title": "Edit Profile", + "email": "Email", + "email-enrollAccount-subject": "An account created for you on __siteName__", + "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", + "email-fail": "Sending email failed", + "email-fail-text": "Error trying to send email", + "email-invalid": "Invalid email", + "email-invite": "Invite via Email", + "email-invite-subject": "__inviter__ sent you an invitation", + "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", + "email-resetPassword-subject": "Reset your password on __siteName__", + "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", + "email-sent": "Email sent", + "email-verifyEmail-subject": "Verify your email address on __siteName__", + "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-wip-limit": "Enable WIP Limit", + "error-board-doesNotExist": "This board does not exist", + "error-board-notAdmin": "You need to be admin of this board to do that", + "error-board-notAMember": "You need to be a member of this board to do that", + "error-json-malformed": "Your text is not valid JSON", + "error-json-schema": "Your JSON data does not include the proper information in the correct format", + "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ", + "error-list-doesNotExist": "This list does not exist", + "error-user-doesNotExist": "This user does not exist", + "error-user-notAllowSelf": "You can not invite yourself", + "error-user-notCreated": "This user is not created", + "error-username-taken": "This username is already taken", + "error-orgname-taken": "This organization name is already taken", + "error-teamname-taken": "This team name is already taken", + "error-email-taken": "Email has already been taken", + "export-board": "Export board", + "export-board-json": "Export board to JSON", + "export-board-csv": "Export board to CSV", + "export-board-tsv": "Export board to TSV", + "export-board-excel": "Export board to Excel", + "user-can-not-export-excel": "User can not export Excel", + "export-board-html": "Export board to HTML", + "export-card": "Export card", + "export-card-pdf": "Export card to PDF", + "user-can-not-export-card-to-pdf": "User can not export card to PDF", + "exportBoardPopup-title": "Export board", + "exportCardPopup-title": "Export card", + "sort": "Sort", + "sorted": "Sorted", + "remove-sort": "Remove sort", + "sort-desc": "Click to Sort List", + "list-sort-by": "Sort the List By:", + "list-label-modifiedAt": "Last Access Time", + "list-label-title": "Name of the List", + "list-label-sort": "Your Manual Order", + "list-label-short-modifiedAt": "(L)", + "list-label-short-title": "(N)", + "list-label-short-sort": "(M)", + "filter": "Filter", + "filter-cards": "Filter Cards or Lists", + "filter-dates-label": "Filter by date", + "filter-no-due-date": "No due date", + "filter-overdue": "Overdue", + "filter-due-today": "Due today", + "filter-due-this-week": "Due this week", + "filter-due-next-week": "Due next week", + "filter-due-tomorrow": "Due tomorrow", + "list-filter-label": "Filter List by Title", + "filter-clear": "Clear filter", + "filter-labels-label": "Filter by label", + "filter-no-label": "No label", + "filter-member-label": "Filter by member", + "filter-no-member": "No member", + "filter-assignee-label": "Filter by assignee", + "filter-no-assignee": "No assignee", + "filter-custom-fields-label": "Filter by Custom Fields", + "filter-no-custom-fields": "No Custom Fields", + "filter-show-archive": "Show archived lists", + "filter-hide-empty": "Hide empty lists", + "filter-on": "Filter is on", + "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", + "filter-to-selection": "Filter to selection", + "other-filters-label": "Other Filters", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "fullname": "Full Name", + "header-logo-title": "Go back to your boards page.", + "show-activities": "Show Activities", + "headerBarCreateBoardPopup-title": "Create Board", + "home": "Home", + "import": "Import", + "impersonate-user": "Impersonate user", + "link": "Link", + "import-board": "import board", + "import-board-c": "Import board", + "import-board-title-trello": "Import board from Trello", + "import-board-title-wekan": "Import board from previous export", + "import-board-title-csv": "Import board from CSV/TSV", + "from-trello": "From Trello", + "from-wekan": "From previous export", + "from-csv": "From CSV/TSV", + "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.", + "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .", + "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.", + "import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.", + "import-json-placeholder": "Paste your valid JSON data here", + "import-csv-placeholder": "Paste your valid CSV/TSV data here", + "import-map-members": "Map members", + "import-members-map": "Your imported board has some members. Please map the members you want to import to your users", + "import-members-map-note": "Note: Unmapped members will be assigned to the current user.", + "import-show-user-mapping": "Review members mapping", + "import-user-select": "Pick your existing user you want to use as this member", + "importMapMembersAddPopup-title": "Select member", + "info": "Version", + "initials": "Initials", + "invalid-date": "Invalid date", + "invalid-time": "Invalid time", + "invalid-user": "Invalid user", + "joined": "joined", + "just-invited": "You are just invited to this board", + "keyboard-shortcuts": "Keyboard shortcuts", + "label-create": "Create Label", + "label-default": "%s label (default)", + "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", + "labels": "Labels", + "language": "Language", + "last-admin-desc": "You can’t change roles because there must be at least one admin.", + "leave-board": "Leave Board", + "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", + "leaveBoardPopup-title": "Leave Board ?", + "link-card": "Link to this card", + "list-archive-cards": "Move all cards in this list to Archive", + "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.", + "list-move-cards": "Move all cards in this list", + "list-select-cards": "Select all cards in this list", + "set-color-list": "Set Color", + "listActionPopup-title": "List Actions", + "settingsUserPopup-title": "User Settings", + "settingsTeamPopup-title": "Team Settings", + "settingsOrgPopup-title": "Organization Settings", + "swimlaneActionPopup-title": "Swimlane Actions", + "swimlaneAddPopup-title": "Add a Swimlane below", + "listImportCardPopup-title": "Import a Trello card", + "listImportCardsTsvPopup-title": "Import Excel CSV/TSV", + "listMorePopup-title": "More", + "link-list": "Link to this list", + "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", + "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.", + "lists": "Lists", + "swimlanes": "Swimlanes", + "log-out": "Log Out", + "log-in": "Log In", + "loginPopup-title": "Log In", + "memberMenuPopup-title": "Member Settings", + "members": "Members", + "menu": "Menu", + "move-selection": "Move selection", + "moveCardPopup-title": "Move Card", + "moveCardToBottom-title": "Move to Bottom", + "moveCardToTop-title": "Move to Top", + "moveSelectionPopup-title": "Move selection", + "multi-selection": "Multi-Selection", + "multi-selection-label": "Set label for selection", + "multi-selection-member": "Set member for selection", + "multi-selection-on": "Multi-Selection is on", + "muted": "Muted", + "muted-info": "You will never be notified of any changes in this board", + "my-boards": "My Boards", + "name": "Name", + "no-archived-cards": "No cards in Archive.", + "no-archived-lists": "No lists in Archive.", + "no-archived-swimlanes": "No swimlanes in Archive.", + "no-results": "No results", + "normal": "Normal", + "normal-desc": "Can view and edit cards. Can't change settings.", + "not-accepted-yet": "Invitation not accepted yet", + "notify-participate": "Receive updates to any cards you participate as creator or member", + "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", + "optional": "optional", + "or": "or", + "page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.", + "page-not-found": "Page not found.", + "password": "Password", + "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", + "participating": "Participating", + "preview": "Preview", + "previewAttachedImagePopup-title": "Preview", + "previewClipboardImagePopup-title": "Preview", + "private": "Private", + "private-desc": "This board is private. Only people added to the board can view and edit it.", + "profile": "Profile", + "public": "Public", + "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.", + "quick-access-description": "Star a board to add a shortcut in this bar.", + "remove-cover": "Remove cover image from minicard", + "remove-from-board": "Remove from Board", + "remove-label": "Remove Label", + "listDeletePopup-title": "Delete List ?", + "remove-member": "Remove Member", + "remove-member-from-card": "Remove from Card", + "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", + "removeMemberPopup-title": "Remove Member?", + "rename": "Rename", + "rename-board": "Rename Board", + "restore": "Restore", + "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions", + "rescue-card-description-dialogue": "Overwrite current card description with your changes?", + "save": "Save", + "search": "Search", + "rules": "Rules", + "search-cards": "Search from card/list titles, descriptions and custom fields on this board", + "search-example": "Write text you search and press Enter", + "select-color": "Select Color", + "select-board": "Select Board", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", + "shortcut-assign-self": "Assign yourself to current card", + "shortcut-autocomplete-emoji": "Autocomplete emoji", + "shortcut-autocomplete-members": "Autocomplete members", + "shortcut-clear-filters": "Clear all filters", + "shortcut-close-dialog": "Close Dialog", + "shortcut-filter-my-cards": "Filter my cards", + "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-show-shortcuts": "Bring up this shortcuts list", + "shortcut-toggle-filterbar": "Toggle Filter Sidebar", + "shortcut-toggle-searchbar": "Toggle Search Sidebar", + "shortcut-toggle-sidebar": "Toggle Board Sidebar", + "show-cards-minimum-count": "Show cards count if list contains more than", + "sidebar-open": "Open Sidebar", + "sidebar-close": "Close Sidebar", + "signupPopup-title": "Create an Account", + "star-board-title": "Click to star this board. It will show up at top of your boards list.", + "starred-boards": "Starred Boards", + "starred-boards-description": "Starred boards show up at the top of your boards list.", + "subscribe": "Subscribe", + "team": "Team", + "this-board": "this board", + "this-card": "this card", + "spent-time-hours": "Spent time (hours)", + "overtime-hours": "Overtime (hours)", + "overtime": "Overtime", + "has-overtime-cards": "Has overtime cards", + "has-spenttime-cards": "Has spent time cards", + "time": "Time", + "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", + "remove-labels-multiselect": "Multi-Selection removes labels 1-9", + "tracking": "Tracking", + "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", + "unassign-member": "Unassign member", + "unsaved-description": "You have an unsaved description.", + "unwatch": "Unwatch", + "upload": "Upload", + "upload-avatar": "Upload an avatar", + "uploaded-avatar": "Uploaded an avatar", + "custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL", + "custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL", + "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", + "custom-login-logo-image-url": "Custom Login Logo Image URL", + "custom-login-logo-link-url": "Custom Login Logo Link URL", + "custom-help-link-url": "Custom Help Link URL", + "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", + "username": "Username", + "import-usernames": "Import Usernames", + "view-it": "View it", + "warn-list-archived": "warning: this card is in an list at Archive", + "watch": "Watch", + "watching": "Watching", + "watching-info": "You will be notified of any change in this board", + "welcome-board": "Welcome Board", + "welcome-swimlane": "Milestone 1", + "welcome-list1": "Basics", + "welcome-list2": "Advanced", + "card-templates-swimlane": "Card Templates", + "list-templates-swimlane": "List Templates", + "board-templates-swimlane": "Board Templates", + "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", + "admin-panel": "Admin Panel", + "settings": "Settings", + "people": "People", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", + "disable-forgot-password": "Disable Forgot Password", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-tls-description": "Enable TLS support for SMTP server", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Username", + "smtp-password": "Password", + "smtp-tls": "TLS support", + "send-from": "From", + "send-smtp-test": "Send a test email to yourself", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ sent you an invitation", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "email-smtp-test-subject": "SMTP Test Email", + "email-smtp-test-text": "You have successfully sent an email", + "error-invitation-code-not-exist": "Invitation code doesn't exist", + "error-notAuthorized": "You are not authorized to view this page.", + "webhook-title": "Webhook Name", + "webhook-token": "Token (Optional for Authentication)", + "outgoing-webhooks": "Outgoing Webhooks", + "bidirectional-webhooks": "Two-Way Webhooks", + "outgoingWebhooksPopup-title": "Outgoing Webhooks", + "boardCardTitlePopup-title": "Card Title Filter", + "disable-webhook": "Disable This Webhook", + "global-webhook": "Global Webhooks", + "new-outgoing-webhook": "New Outgoing Webhook", + "no-name": "(Unknown)", + "Node_version": "Node version", + "Meteor_version": "Meteor version", + "MongoDB_version": "MongoDB version", + "MongoDB_storage_engine": "MongoDB storage engine", + "MongoDB_Oplog_enabled": "MongoDB Oplog enabled", + "OS_Arch": "OS Arch", + "OS_Cpus": "OS CPU Count", + "OS_Freemem": "OS Free Memory", + "OS_Loadavg": "OS Load Average", + "OS_Platform": "OS Platform", + "OS_Release": "OS Release", + "OS_Totalmem": "OS Total Memory", + "OS_Type": "OS Type", + "OS_Uptime": "OS Uptime", + "days": "days", + "hours": "hours", + "minutes": "minutes", + "seconds": "seconds", + "show-field-on-card": "Show this field on card", + "automatically-field-on-card": "Add field to new cards", + "always-field-on-card": "Add field to all cards", + "showLabel-field-on-card": "Show field label on minicard", + "showSum-field-on-list": "Show sum of fields at top of list", + "yes": "Yes", + "no": "No", + "accounts": "Accounts", + "accounts-allowEmailChange": "Allow Email Change", + "accounts-allowUserNameChange": "Allow Username Change", + "tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only", + "tableVisibilityMode" : "Boards visibility", + "createdAt": "Created at", + "modifiedAt": "Modified at", + "verified": "Verified", + "active": "Active", + "card-received": "Received", + "card-received-on": "Received on", + "card-end": "End", + "card-end-on": "Ends on", + "editCardReceivedDatePopup-title": "Change received date", + "editCardEndDatePopup-title": "Change end date", + "setCardColorPopup-title": "Set color", + "setCardActionsColorPopup-title": "Choose a color", + "setSwimlaneColorPopup-title": "Choose a color", + "setListColorPopup-title": "Choose a color", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "card-sorting-by-number": "Card sorting by number", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board", + "default-subtasks-board": "Subtasks for __board__ board", + "default": "Default", + "defaultdefault": "Default", + "queue": "Queue", + "subtask-settings": "Subtasks Settings", + "card-settings": "Card Settings", + "minicard-settings": "Minicard Settings", + "boardSubtaskSettingsPopup-title": "Board Subtasks Settings", + "boardCardSettingsPopup-title": "Card Settings", + "boardMinicardSettingsPopup-title": "Minicard Settings", + "deposit-subtasks-board": "Deposit subtasks to this board:", + "deposit-subtasks-list": "Landing list for subtasks deposited here:", + "show-parent-in-minicard": "Show parent in minicard:", + "description-on-minicard": "Description on minicard", + "cover-attachment-on-minicard": "Cover image on minicard", + "badge-attachment-on-minicard": "Count of attachments on minicard", + "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "prefix-with-full-path": "Prefix with full path", + "prefix-with-parent": "Prefix with parent", + "subtext-with-full-path": "Subtext with full path", + "subtext-with-parent": "Subtext with parent", + "change-card-parent": "Change card's parent", + "parent-card": "Parent card", + "source-board": "Source board", + "no-parent": "Don't show parent", + "activity-added-label": "added label '%s' to %s", + "activity-removed-label": "removed label '%s' from %s", + "activity-delete-attach": "deleted an attachment from %s", + "activity-added-label-card": "added label '%s'", + "activity-removed-label-card": "removed label '%s'", + "activity-delete-attach-card": "deleted an attachment", + "activity-set-customfield": "set custom field '%s' to '%s' in %s", + "activity-unset-customfield": "unset custom field '%s' in %s", + "r-rule": "Rule", + "r-add-trigger": "Add trigger", + "r-add-action": "Add action", + "r-board-rules": "Board rules", + "r-add-rule": "Add rule", + "r-view-rule": "View rule", + "r-delete-rule": "Delete rule", + "r-new-rule-name": "New rule title", + "r-no-rules": "No rules", + "r-trigger": "Trigger", + "r-action": "Action", + "r-when-a-card": "When a card", + "r-is": "is", + "r-is-moved": "is moved", + "r-added-to": "Added to", + "r-removed-from": "Removed from", + "r-the-board": "the board", + "r-list": "list", + "set-filter": "Set Filter", + "r-moved-to": "Moved to", + "r-moved-from": "Moved from", + "r-archived": "Moved to Archive", + "r-unarchived": "Restored from Archive", + "r-a-card": "a card", + "r-when-a-label-is": "When a label is", + "r-when-the-label": "When the label", + "r-list-name": "list name", + "r-when-a-member": "When a member is", + "r-when-the-member": "When the member", + "r-name": "name", + "r-when-a-attach": "When an attachment", + "r-when-a-checklist": "When a checklist is", + "r-when-the-checklist": "When the checklist", + "r-completed": "Completed", + "r-made-incomplete": "Made incomplete", + "r-when-a-item": "When a checklist item is", + "r-when-the-item": "When the checklist item", + "r-checked": "Checked", + "r-unchecked": "Unchecked", + "r-move-card-to": "Move card to", + "r-top-of": "Top of", + "r-bottom-of": "Bottom of", + "r-its-list": "its list", + "r-archive": "Move to Archive", + "r-unarchive": "Restore from Archive", + "r-card": "card", + "r-add": "Add", + "r-remove": "Remove", + "r-label": "label", + "r-member": "member", + "r-remove-all": "Remove all members from the card", + "r-set-color": "Set color to", + "r-checklist": "checklist", + "r-check-all": "Check all", + "r-uncheck-all": "Uncheck all", + "r-items-check": "items of checklist", + "r-check": "Check", + "r-uncheck": "Uncheck", + "r-item": "item", + "r-of-checklist": "of checklist", + "r-send-email": "Send an email", + "r-to": "to", + "r-of": "of", + "r-subject": "subject", + "r-rule-details": "Rule details", + "r-d-move-to-top-gen": "Move card to top of its list", + "r-d-move-to-top-spec": "Move card to top of list", + "r-d-move-to-bottom-gen": "Move card to bottom of its list", + "r-d-move-to-bottom-spec": "Move card to bottom of list", + "r-d-send-email": "Send email", + "r-d-send-email-to": "to", + "r-d-send-email-subject": "subject", + "r-d-send-email-message": "message", + "r-d-archive": "Move card to Archive", + "r-d-unarchive": "Restore card from Archive", + "r-d-add-label": "Add label", + "r-d-remove-label": "Remove label", + "r-create-card": "Create new card", + "r-in-list": "in list", + "r-in-swimlane": "in swimlane", + "r-d-add-member": "Add member", + "r-d-remove-member": "Remove member", + "r-d-remove-all-member": "Remove all member", + "r-d-check-all": "Check all items of a list", + "r-d-uncheck-all": "Uncheck all items of a list", + "r-d-check-one": "Check item", + "r-d-uncheck-one": "Uncheck item", + "r-d-check-of-list": "of checklist", + "r-d-add-checklist": "Add checklist", + "r-d-remove-checklist": "Remove checklist", + "r-by": "by", + "r-add-checklist": "Add checklist", + "r-with-items": "with items", + "r-items-list": "item1,item2,item3", + "r-add-swimlane": "Add swimlane", + "r-swimlane-name": "swimlane name", + "r-board-note": "Note: leave a field empty to match every possible value. ", + "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", + "r-when-a-card-is-moved": "When a card is moved to another list", + "r-set": "Set", + "r-update": "Update", + "r-datefield": "date field", + "r-df-start-at": "start", + "r-df-due-at": "due", + "r-df-end-at": "end", + "r-df-received-at": "received", + "r-to-current-datetime": "to current date/time", + "r-remove-value-from": "Remove value from", + "r-link-card": "Link card to", + "ldap": "LDAP", + "oauth2": "OAuth2", + "cas": "CAS", + "authentication-method": "Authentication method", + "authentication-type": "Authentication type", + "custom-product-name": "Custom Product Name", + "layout": "Layout", + "hide-logo": "Hide Logo", + "hide-card-counter-list": "Hide card counter list on All Boards", + "hide-board-member-list": "Hide board member list on All Boards", + "add-custom-html-after-body-start": "Add Custom HTML after <body> start", + "add-custom-html-before-body-end": "Add Custom HTML before </body> end", + "error-undefined": "Something went wrong", + "error-ldap-login": "An error occurred while trying to login", + "display-authentication-method": "Display Authentication Method", + "oidc-button-text": "Customize the OIDC button text", + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board", + "org-number": "The number of organizations is: ", + "team-number": "The number of teams is: ", + "people-number": "The number of people is: ", + "swimlaneDeletePopup-title": "Delete Swimlane ?", + "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", + "restore-all": "Restore all", + "delete-all": "Delete all", + "loading": "Loading, please wait.", + "previous_as": "last time was", + "act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__", + "act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)", + "act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)", + "act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)", + "a-dueAt": "modified due time to be", + "a-endAt": "modified ending time to be", + "a-startAt": "modified starting time to be", + "a-receivedAt": "modified received time to be", + "almostdue": "current due time %s is approaching", + "pastdue": "current due time %s is past", + "duenow": "current due time %s is today", + "act-newDue": "__list__/__card__ has 1st due reminder [__board__]", + "act-withDue": "__list__/__card__ due reminders [__board__]", + "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching", + "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", + "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", + "act-atUserComment": "You were mentioned in [__board__] __list__/__card__", + "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.", + "delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.", + "delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.", + "accounts-allowUserDelete": "Allow users to self delete their account", + "hide-minicard-label-text": "Hide minicard label text", + "show-desktop-drag-handles": "Show desktop drag handles", + "assignee": "Assignee", + "cardAssigneesPopup-title": "Assignee", + "addmore-detail": "Add a more detailed description", + "show-on-card": "Show on Card", + "show-on-minicard": "Show on Minicard", + "new": "New", + "editOrgPopup-title": "Edit Organization", + "newOrgPopup-title": "New Organization", + "editTeamPopup-title": "Edit Team", + "newTeamPopup-title": "New Team", + "editUserPopup-title": "Edit User", + "newUserPopup-title": "New User", + "notifications": "Notifications", + "help": "Help", + "view-all": "View All", + "filter-by-unread": "Filter by Unread", + "mark-all-as-read": "Mark all as read", + "remove-all-read": "Remove all read", + "allow-rename": "Allow Rename", + "allowRenamePopup-title": "Allow Rename", + "start-day-of-week": "Set day of the week start", + "monday": "Monday", + "tuesday": "Tuesday", + "wednesday": "Wednesday", + "thursday": "Thursday", + "friday": "Friday", + "saturday": "Saturday", + "sunday": "Sunday", + "status": "Status", + "swimlane": "Swimlane", + "owner": "Owner", + "last-modified-at": "Last modified at", + "last-activity": "Last activity", + "voting": "Voting", + "archived": "Archived", + "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", + "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", + "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", + "task": "Task", + "create-task": "Create Task", + "ok": "OK", + "organizations": "Organizations", + "teams": "Teams", + "displayName": "Display Name", + "shortName": "Short Name", + "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "website": "Website", + "person": "Person", + "my-cards": "My Cards", + "card": "Card", + "list": "List", + "board": "Board", + "context-separator": "/", + "myCardsViewChange-title": "My Cards View", + "myCardsViewChangePopup-title": "My Cards View", + "myCardsViewChange-choice-boards": "Boards", + "myCardsViewChange-choice-table": "Table", + "myCardsSortChange-title": "My Cards Sort", + "myCardsSortChangePopup-title": "My Cards Sort", + "myCardsSortChange-choice-board": "By Board", + "myCardsSortChange-choice-dueat": "By Due Date", + "dueCards-title": "Due Cards", + "dueCardsViewChange-title": "Due Cards View", + "dueCardsViewChangePopup-title": "Due Cards View", + "dueCardsViewChange-choice-me": "Me", + "dueCardsViewChange-choice-all": "All Users", + "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", + "broken-cards": "Broken Cards", + "board-title-not-found": "Board '%s' not found.", + "swimlane-title-not-found": "Swimlane '%s' not found.", + "list-title-not-found": "List '%s' not found.", + "label-not-found": "Label '%s' not found.", + "label-color-not-found": "Label color %s not found.", + "user-username-not-found": "Username '%s' not found.", + "comment-not-found": "Card with comment containing text '%s' not found.", + "org-name-not-found": "Organization '%s' not found.", + "team-name-not-found": "Team '%s' not found.", + "globalSearch-title": "Search All Boards", + "no-cards-found": "No Cards Found", + "one-card-found": "One Card Found", + "n-cards-found": "%s Cards Found", + "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", + "operator-board": "board", + "operator-board-abbrev": "b", + "operator-swimlane": "swimlane", + "operator-swimlane-abbrev": "s", + "operator-list": "list", + "operator-list-abbrev": "l", + "operator-label": "label", + "operator-label-abbrev": "#", + "operator-user": "user", + "operator-user-abbrev": "@", + "operator-member": "member", + "operator-member-abbrev": "m", + "operator-assignee": "assignee", + "operator-assignee-abbrev": "a", + "operator-creator": "creator", + "operator-status": "status", + "operator-due": "due", + "operator-created": "created", + "operator-modified": "modified", + "operator-sort": "sort", + "operator-comment": "comment", + "operator-has": "has", + "operator-limit": "limit", + "operator-debug": "debug", + "operator-org": "org", + "operator-team": "team", + "predicate-archived": "archived", + "predicate-open": "open", + "predicate-ended": "ended", + "predicate-all": "all", + "predicate-overdue": "overdue", + "predicate-week": "week", + "predicate-month": "month", + "predicate-quarter": "quarter", + "predicate-year": "year", + "predicate-due": "due", + "predicate-modified": "modified", + "predicate-created": "created", + "predicate-attachment": "attachment", + "predicate-description": "description", + "predicate-checklist": "checklist", + "predicate-start": "start", + "predicate-end": "end", + "predicate-assignee": "assignee", + "predicate-member": "member", + "predicate-public": "public", + "predicate-private": "private", + "predicate-selector": "selector", + "predicate-projection": "projection", + "operator-unknown-error": "%s is not an operator", + "operator-number-expected": "operator __operator__ expected a number, got '__value__'", + "operator-sort-invalid": "sort of '%s' is invalid", + "operator-status-invalid": "'%s' is not a valid status", + "operator-has-invalid": "%s is not a valid existence check", + "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", + "operator-debug-invalid": "%s is not a valid debug predicate", + "next-page": "Next Page", + "previous-page": "Previous Page", + "heading-notes": "Notes", + "globalSearch-instructions-heading": "Search Instructions", + "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-operators": "Available operators:", + "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", + "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", + "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", + "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", + "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - cards where *<username>* is the card's creator", + "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*", + "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", + "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", + "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", + "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", + "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", + "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", + "globalSearch-instructions-notes-1": "Multiple operators may be specified.", + "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", + "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", + "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", + "globalSearch-instructions-notes-4": "Text searches are case insensitive.", + "globalSearch-instructions-notes-5": "By default archived cards are not searched.", + "link-to-search": "Link to this search", + "excel-font": "Arial", + "number": "Number", + "label-colors": "Label Colors", + "label-names": "Label Names", + "archived-at": "archived at", + "sort-cards": "Sort Cards", + "sort-is-on": "Sort is on", + "cardsSortPopup-title": "Sort Cards", + "due-date": "Due Date", + "server-error": "Server Error", + "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`", + "title-alphabetically": "Title (Alphabetically)", + "created-at-newest-first": "Created At (Newest First)", + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", + "move-swimlane": "Move Swimlane", + "moveSwimlanePopup-title": "Move Swimlane", + "custom-field-stringtemplate": "String Template", + "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", + "custom-field-stringtemplate-separator": "Separator (use or   for a space)", + "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", + "creator": "Creator", + "creator-on-minicard": "Creator on minicard", + "filesReportTitle": "Files Report", + "reports": "Reports", + "rulesReportTitle": "Rules Report", + "boardsReportTitle": "Boards Report", + "cardsReportTitle": "Cards Report", + "copy-swimlane": "Copy Swimlane", + "copySwimlanePopup-title": "Copy Swimlane", + "display-card-creator": "Display Card Creator", + "wait-spinner": "Wait Spinner", + "Bounce": "Bounce Wait Spinner", + "Cube": "Cube Wait Spinner", + "Cube-Grid": "Cube-Grid Wait Spinner", + "Dot": "Dot Wait Spinner", + "Double-Bounce": "Double Bounce Wait Spinner", + "Rotateplane": "Rotateplane Wait Spinner", + "Scaleout": "Scaleout Wait Spinner", + "Wave": "Wave Wait Spinner", + "maximize-card": "Maximize Card", + "minimize-card": "Minimize Card", + "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", + "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", + "subject": "Subject", + "details": "Details", + "carbon-copy": "Carbon Copy (Cc:)", + "ticket": "Ticket", + "tickets": "Tickets", + "ticket-number": "Ticket Number", + "open": "Open", + "pending": "Pending", + "closed": "Closed", + "resolved": "Resolved", + "cancelled": "Cancelled", + "history": "History", + "request": "Request", + "requests": "Requests", + "help-request": "Help Request", + "editCardSortOrderPopup-title": "Change Sorting", + "cardDetailsPopup-title": "Card Details", + "add-teams": "Add teams", + "add-teams-label": "Added teams are displayed below:", + "remove-team-from-table": "Are you sure you want to remove this team from the board ?", + "confirm-btn": "Confirm", + "remove-btn": "Remove", + "filter-card-title-label": "Filter by card title", + "invite-people-success": "Invitation to register sent with success", + "invite-people-error": "Error while sending invitation to register", + "can-invite-if-same-mailDomainName": "Email domain name", + "to-create-teams-contact-admin": "To create teams, please contact the administrator.", + "Node_heap_total_heap_size": "Node heap: total heap size", + "Node_heap_total_heap_size_executable": "Node heap: total heap size executable", + "Node_heap_total_physical_size": "Node heap: total physical size", + "Node_heap_total_available_size": "Node heap: total available size", + "Node_heap_used_heap_size": "Node heap: used heap size", + "Node_heap_heap_size_limit": "Node heap: heap size limit", + "Node_heap_malloced_memory": "Node heap: malloced memory", + "Node_heap_peak_malloced_memory": "Node heap: peak malloced memory", + "Node_heap_does_zap_garbage": "Node heap: does zap garbage", + "Node_heap_number_of_native_contexts": "Node heap: number of native contexts", + "Node_heap_number_of_detached_contexts": "Node heap: number of detached contexts", + "Node_memory_usage_rss": "Node memory usage: resident set size", + "Node_memory_usage_heap_total": "Node memory usage: total size of the allocated heap", + "Node_memory_usage_heap_used": "Node memory usage: actual memory used", + "Node_memory_usage_external": "Node memory usage: external", + "add-organizations": "Add organizations", + "add-organizations-label": "Added organizations are displayed below:", + "remove-organization-from-board": "Are you sure you want to remove this organization from this board ?", + "to-create-organizations-contact-admin": "To create organizations, please contact administrator.", + "custom-legal-notice-link-url": "Custom legal notice page URL", + "acceptance_of_our_legalNotice": "By continuing, you accept our", + "legalNotice": "legal notice", + "copied": "Copied!", + "checklistActionsPopup-title": "Checklist Actions", + "moveChecklist": "Move Checklist", + "moveChecklistPopup-title": "Move Checklist", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", + "copyChecklist": "Copy Checklist", + "copyChecklistPopup-title": "Copy Checklist", + "card-show-lists": "Card Show Lists", + "subtaskActionsPopup-title": "Subtask Actions", + "attachmentActionsPopup-title": "Attachment Actions", + "attachment-move-storage-fs": "Move attachment to filesystem", + "attachment-move-storage-gridfs": "Move attachment to GridFS", + "attachment-move-storage-s3": "Move attachment to S3", + "attachment-move": "Move Attachment", + "move-all-attachments-to-fs": "Move all attachments to filesystem", + "move-all-attachments-to-gridfs": "Move all attachments to GridFS", + "move-all-attachments-to-s3": "Move all attachments to S3", + "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", + "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", + "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", + "path": "Path", + "version-name": "Version-Name", + "size": "Size", + "storage": "Storage", + "action": "Action", + "board-title": "Board Title", + "attachmentRenamePopup-title": "Rename", + "uploading": "Uploading", + "remaining_time": "Remaining time", + "speed": "Speed", + "progress": "Progress", + "password-again": "Password (again)", + "if-you-already-have-an-account": "If you already have an account", + "register": "Register", + "forgot-password": "Forgot password", + "minicardDetailsActionsPopup-title": "Card Details", + "Mongo_sessions_count": "Mongo sessions count", + "change-visibility": "Change Visibility", + "max-upload-filesize": "Max upload filesize in bytes:", + "allowed-upload-filetypes": "Allowed upload filetypes:", + "max-avatar-filesize": "Max avatar filesize in bytes:", + "allowed-avatar-filetypes": "Allowed avatar filetypes:", + "invalid-file": "If filename is invalid, upload or rename is cancelled.", + "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", + "drag-board": "Drag board", + "translation-number": "The number of custom translation strings is:", + "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", + "newTranslationPopup-title": "New custom translation string", + "editTranslationPopup-title": "Edit custom translation string", + "settingsTranslationPopup-title": "Delete this custom translation string?", + "translation": "Translation", + "text": "Text", + "translation-text": "Translation text", + "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", + "convert-to-markdown": "Convert to markdown", + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" +} diff --git a/imports/i18n/data/th.i18n.json b/imports/i18n/data/th.i18n.json index b5ea12cc9..5495c1efe 100644 --- a/imports/i18n/data/th.i18n.json +++ b/imports/i18n/data/th.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "แนบ %s ไปยัง %s", "activity-created": "สร้าง %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "ยกเว้น %s จาก %s", "activity-imported": "ถูกนำเข้า %s ไปยัง %s จาก %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "รายการตรวจสอบ", "click-to-star": "คลิกดาวบอร์ดนี้", "click-to-unstar": "คลิกยกเลิกดาวบอร์ดนี้", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard หรือลากและวาง", "close": "ปิด", "close-board": "ปิดบอร์ด", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "เหลือง", "unset-color": "Unset", + "comments": "Comments", "comment": "คอมเม็นต์", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "ส่งอีเมล์", "email-verifyEmail-subject": "ยืนยันที่อยู่อีเม์ของคุณบน __siteName__", "email-verifyEmail-text": "สวัสดี __user__,\n\nตรวจสอบบัญชีอีเมล์ของคุณ ง่าย ๆ ตามลิงค์ด้านล่าง \n\n__url__\n\n ขอบคุณค่ะ", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "บอร์ดนี้ไม่มีอยู่แล้ว", "error-board-notAdmin": "คุณจะต้องเป็นผู้ดูแลระบบถึงจะทำสิ่งเหล่านี้ได้", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "ชื่อ นามสกุล", "header-logo-title": "ย้อนกลับไปที่หน้าบอร์ดของคุณ", - "hide-system-messages": "ซ่อนข้อความของระบบ", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "สร้างบอร์ด", "home": "หน้าหลัก", "import": "นำเข้า", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "กำหนดตัวเองให้การ์ดนี้", "shortcut-autocomplete-emoji": "เติม emoji อัตโนมัติ", "shortcut-autocomplete-members": "เติมสมาชิกอัตโนมัติ", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "เวลา", "title": "หัวข้อ", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "ติดตาม", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/tk_TM.i18n.json b/imports/i18n/data/tk_TM.i18n.json new file mode 100644 index 000000000..78b62d375 --- /dev/null +++ b/imports/i18n/data/tk_TM.i18n.json @@ -0,0 +1,1272 @@ +{ + "accept": "Accept", + "act-activity-notify": "Activity Notification", + "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-createCustomField": "created custom field __customField__ at board __board__", + "act-deleteCustomField": "deleted custom field __customField__ at board __board__", + "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createList": "added list __list__ to board __board__", + "act-addBoardMember": "added member __member__ to board __board__", + "act-archivedBoard": "Board __board__ moved to Archive", + "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive", + "act-importBoard": "imported board __board__", + "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__", + "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", + "act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-removeBoardMember": "removed member __member__ from board __board__", + "act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-withBoardTitle": "__board__", + "act-withCardTitle": "[__board__] __card__", + "actions": "Actions", + "activities": "Activities", + "activity": "Activity", + "activity-added": "added %s to %s", + "activity-archived": "%s moved to Archive", + "activity-attached": "attached %s to %s", + "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", + "activity-customfield-created": "created custom field %s", + "activity-excluded": "excluded %s from %s", + "activity-imported": "imported %s into %s from %s", + "activity-imported-board": "imported %s from %s", + "activity-joined": "joined %s", + "activity-moved": "moved %s from %s to %s", + "activity-on": "on %s", + "activity-removed": "removed %s from %s", + "activity-sent": "sent %s to %s", + "activity-unjoined": "unjoined %s", + "activity-subtask-added": "added subtask to %s", + "activity-checked-item": "checked %s in checklist %s of %s", + "activity-unchecked-item": "unchecked %s in checklist %s of %s", + "activity-checklist-added": "added checklist to %s", + "activity-checklist-removed": "removed a checklist from %s", + "activity-checklist-completed": "completed checklist %s of %s", + "activity-checklist-uncompleted": "uncompleted the checklist %s of %s", + "activity-checklist-item-added": "added checklist item to '%s' in %s", + "activity-checklist-item-removed": "removed a checklist item from '%s' in %s", + "add": "Add", + "activity-checked-item-card": "checked %s in checklist %s", + "activity-unchecked-item-card": "unchecked %s in checklist %s", + "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checklist-uncompleted-card": "uncompleted the checklist %s", + "activity-editComment": "edited comment %s", + "activity-deleteComment": "deleted comment %s", + "activity-receivedDate": "edited received date to %s of %s", + "activity-startDate": "edited start date to %s of %s", + "activity-dueDate": "edited due date to %s of %s", + "activity-endDate": "edited end date to %s of %s", + "add-attachment": "Add Attachment", + "add-board": "Add Board", + "add-template": "Add Template", + "add-card": "Add Card", + "add-card-to-top-of-list": "Add Card to Top of List", + "add-card-to-bottom-of-list": "Add Card to Bottom of List", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "setSwimlaneHeightPopup-title": "Set Swimlane Height", + "set-swimlane-height": "Set Swimlane Height", + "set-swimlane-height-value": "Swimlane Height (pixels)", + "swimlane-height-error-message": "Swimlane height must be a positive integer", + "add-swimlane": "Add Swimlane", + "add-subtask": "Add Subtask", + "add-checklist": "Add Checklist", + "add-checklist-item": "Add an item to checklist", + "close-add-checklist-item": "Close add an item to checklist form", + "close-edit-checklist-item": "Close edit an item to checklist form", + "convertChecklistItemToCardPopup-title": "Convert to Card", + "add-cover": "Add cover image to minicard", + "add-label": "Add Label", + "add-list": "Add List", + "add-after-list": "Add After List", + "add-members": "Add Members", + "added": "Added", + "addMemberPopup-title": "Members", + "memberPopup-title": "Member Settings", + "admin": "Admin", + "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", + "all-boards": "All Boards", + "and-n-other-card": "And __count__ other card", + "and-n-other-card_plural": "And __count__ other cards", + "apply": "Apply", + "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.", + "app-try-reconnect": "Try to reconnect.", + "archive": "Move to Archive", + "archive-all": "Move All to Archive", + "archive-board": "Move Board to Archive", + "archive-card": "Move Card to Archive", + "archive-list": "Move List to Archive", + "archive-swimlane": "Move Swimlane to Archive", + "archive-selection": "Move selection to Archive", + "archiveBoardPopup-title": "Move Board to Archive?", + "archived-items": "Archive", + "archived-boards": "Boards in Archive", + "restore-board": "Restore Board", + "no-archived-boards": "No Boards in Archive.", + "archives": "Archive", + "template": "Template", + "templates": "Templates", + "template-container": "Template Container", + "add-template-container": "Add Template Container", + "assign-member": "Assign member", + "attached": "attached", + "attachment": "Attachment", + "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.", + "attachmentDeletePopup-title": "Delete Attachment?", + "attachments": "Attachments", + "auto-watch": "Automatically watch boards when they are created", + "avatar-too-big": "The avatar is too large (__size__ max)", + "back": "Back", + "board-change-color": "Change color", + "board-change-background-image": "Change Background Image", + "board-background-image-url": "Background Image URL", + "add-background-image": "Add Background Image", + "remove-background-image": "Remove Background Image", + "show-at-all-boards-page" : "Show at All Boards page", + "board-info-on-my-boards" : "All Boards Settings", + "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", + "boardInfoOnMyBoards-title": "All Boards Settings", + "show-card-counter-per-list": "Show card count per list", + "show-board_members-avatar": "Show Board members avatars", + "board-nb-stars": "%s stars", + "board-not-found": "Board not found", + "board-private-info": "This board will be <strong>private</strong>.", + "board-public-info": "This board will be <strong>public</strong>.", + "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.", + "boardChangeColorPopup-title": "Change Board Background", + "boardChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeColorPopup-title": "Change color", + "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "boardChangeTitlePopup-title": "Rename Board", + "boardChangeVisibilityPopup-title": "Change Visibility", + "boardChangeWatchPopup-title": "Change Watch", + "boardMenuPopup-title": "Board Settings", + "allBoardsMenuPopup-title": "Settings", + "boardChangeViewPopup-title": "Board View", + "boards": "Boards", + "board-view": "Board View", + "board-view-cal": "Calendar", + "board-view-swimlanes": "Swimlanes", + "board-view-collapse": "Collapse", + "board-view-gantt": "Gantt", + "board-view-lists": "Lists", + "bucket-example": "Like “Bucket List” for example", + "cancel": "Cancel", + "card-archived": "This card is moved to Archive.", + "board-archived": "This board is moved to Archive.", + "card-comments-title": "This card has %s comment.", + "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", + "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", + "card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.", + "card-archive-pop": "Card will not be visible at this list after archiving card.", + "card-archive-suggest-cancel": "You can later restore card from Archive.", + "card-due": "Due", + "card-due-on": "Due on", + "card-spent": "Spent Time", + "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", + "card-edit-labels": "Edit labels", + "card-edit-members": "Edit members", + "card-labels-title": "Change the labels for the card.", + "card-members-title": "Add or remove members of the board from the card.", + "card-start": "Start", + "card-start-on": "Starts on", + "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", + "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", + "card-edit-voting": "Edit voting", + "editVoteEndDatePopup-title": "Change vote end date", + "allowNonBoardMembers": "Allow all logged in users", + "vote-question": "Voting question", + "vote-public": "Show who voted what", + "vote-for-it": "for it", + "vote-against": "against", + "deleteVotePopup-title": "Delete vote?", + "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.", + "cardStartPlanningPokerPopup-title": "Start a Planning Poker", + "card-edit-planning-poker": "Edit Planning Poker", + "editPokerEndDatePopup-title": "Change Planning Poker vote end date", + "poker-question": "Planning Poker", + "poker-one": "1", + "poker-two": "2", + "poker-three": "3", + "poker-five": "5", + "poker-eight": "8", + "poker-thirteen": "13", + "poker-twenty": "20", + "poker-forty": "40", + "poker-oneHundred": "100", + "poker-unsure": "?", + "poker-finish": "Finish", + "poker-result-votes": "Votes", + "poker-result-who": "Who", + "poker-replay": "Replay", + "set-estimation": "Set Estimation", + "deletePokerPopup-title": "Delete planning poker?", + "poker-delete-pop": "Deleting is permanent. You will lose all actions associated with this planning poker.", + "cardDeletePopup-title": "Delete Card?", + "cardArchivePopup-title": "Archive Card?", + "cardDetailsActionsPopup-title": "Card Actions", + "cardLabelsPopup-title": "Labels", + "cardMembersPopup-title": "Members", + "cardMorePopup-title": "More", + "cardTemplatePopup-title": "Create template", + "cards": "Cards", + "cards-count": "Cards", + "cards-count-one": "Card", + "casSignIn": "Sign In with CAS", + "cardType-card": "Card", + "cardType-linkedCard": "Linked Card", + "cardType-linkedBoard": "Linked Board", + "change": "Change", + "change-avatar": "Change Avatar", + "change-password": "Change Password", + "change-permissions": "Change permissions", + "change-settings": "Change Settings", + "changeAvatarPopup-title": "Change Avatar", + "changeLanguagePopup-title": "Change Language", + "changePasswordPopup-title": "Change Password", + "changePermissionsPopup-title": "Change Permissions", + "changeSettingsPopup-title": "Change Settings", + "subtasks": "Subtasks", + "checklists": "Checklists", + "click-to-star": "Click to star this board.", + "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", + "clipboard": "Clipboard or drag & drop", + "close": "Close", + "close-board": "Close Board", + "close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.", + "close-card": "Close Card", + "color-black": "black", + "color-blue": "blue", + "color-crimson": "crimson", + "color-darkgreen": "darkgreen", + "color-gold": "gold", + "color-gray": "gray", + "color-green": "green", + "color-indigo": "indigo", + "color-lime": "lime", + "color-magenta": "magenta", + "color-mistyrose": "mistyrose", + "color-navy": "navy", + "color-orange": "orange", + "color-paleturquoise": "paleturquoise", + "color-peachpuff": "peachpuff", + "color-pink": "pink", + "color-plum": "plum", + "color-purple": "purple", + "color-red": "red", + "color-saddlebrown": "saddlebrown", + "color-silver": "silver", + "color-sky": "sky", + "color-slateblue": "slateblue", + "color-white": "white", + "color-yellow": "yellow", + "unset-color": "Unset", + "comments": "Comments", + "comment": "Comment", + "comment-placeholder": "Write Comment", + "comment-only": "Comment only", + "comment-only-desc": "Can comment on cards only.", + "comment-delete": "Are you sure you want to delete the comment?", + "deleteCommentPopup-title": "Delete comment?", + "no-comments": "No comments", + "no-comments-desc": "Can not see comments and activities.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", + "computer": "Computer", + "confirm-subtask-delete-popup": "Are you sure you want to delete subtask?", + "confirm-checklist-delete-popup": "Are you sure you want to delete the checklist?", + "subtaskDeletePopup-title": "Delete Subtask?", + "checklistDeletePopup-title": "Delete Checklist?", + "copy-card-link-to-clipboard": "Copy card link to clipboard", + "copy-text-to-clipboard": "Copy text to clipboard", + "linkCardPopup-title": "Link Card", + "searchElementPopup-title": "Search", + "copyCardPopup-title": "Copy Card", + "copyManyCardsPopup-title": "Copy Template to Many Cards", + "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", + "copyManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", + "create": "Create", + "createBoardPopup-title": "Create Board", + "chooseBoardSourcePopup-title": "Import board", + "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", + "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-currency": "Currency", + "custom-field-currency-option": "Currency Code", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", + "date": "Date", + "decline": "Decline", + "default-avatar": "Default avatar", + "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", + "deleteLabelPopup-title": "Delete Label?", + "description": "Description", + "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", + "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", + "discard": "Discard", + "done": "Done", + "download": "Download", + "edit": "Edit", + "edit-avatar": "Change Avatar", + "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", + "soft-wip-limit": "Soft WIP Limit", + "editCardStartDatePopup-title": "Change start date", + "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", + "addReactionPopup-title": "Add reaction", + "editCardSpentTimePopup-title": "Change spent time", + "editLabelPopup-title": "Change Label", + "editNotificationPopup-title": "Edit Notification", + "editProfilePopup-title": "Edit Profile", + "email": "Email", + "email-enrollAccount-subject": "An account created for you on __siteName__", + "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", + "email-fail": "Sending email failed", + "email-fail-text": "Error trying to send email", + "email-invalid": "Invalid email", + "email-invite": "Invite via Email", + "email-invite-subject": "__inviter__ sent you an invitation", + "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", + "email-resetPassword-subject": "Reset your password on __siteName__", + "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", + "email-sent": "Email sent", + "email-verifyEmail-subject": "Verify your email address on __siteName__", + "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-wip-limit": "Enable WIP Limit", + "error-board-doesNotExist": "This board does not exist", + "error-board-notAdmin": "You need to be admin of this board to do that", + "error-board-notAMember": "You need to be a member of this board to do that", + "error-json-malformed": "Your text is not valid JSON", + "error-json-schema": "Your JSON data does not include the proper information in the correct format", + "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ", + "error-list-doesNotExist": "This list does not exist", + "error-user-doesNotExist": "This user does not exist", + "error-user-notAllowSelf": "You can not invite yourself", + "error-user-notCreated": "This user is not created", + "error-username-taken": "This username is already taken", + "error-orgname-taken": "This organization name is already taken", + "error-teamname-taken": "This team name is already taken", + "error-email-taken": "Email has already been taken", + "export-board": "Export board", + "export-board-json": "Export board to JSON", + "export-board-csv": "Export board to CSV", + "export-board-tsv": "Export board to TSV", + "export-board-excel": "Export board to Excel", + "user-can-not-export-excel": "User can not export Excel", + "export-board-html": "Export board to HTML", + "export-card": "Export card", + "export-card-pdf": "Export card to PDF", + "user-can-not-export-card-to-pdf": "User can not export card to PDF", + "exportBoardPopup-title": "Export board", + "exportCardPopup-title": "Export card", + "sort": "Sort", + "sorted": "Sorted", + "remove-sort": "Remove sort", + "sort-desc": "Click to Sort List", + "list-sort-by": "Sort the List By:", + "list-label-modifiedAt": "Last Access Time", + "list-label-title": "Name of the List", + "list-label-sort": "Your Manual Order", + "list-label-short-modifiedAt": "(L)", + "list-label-short-title": "(N)", + "list-label-short-sort": "(M)", + "filter": "Filter", + "filter-cards": "Filter Cards or Lists", + "filter-dates-label": "Filter by date", + "filter-no-due-date": "No due date", + "filter-overdue": "Overdue", + "filter-due-today": "Due today", + "filter-due-this-week": "Due this week", + "filter-due-next-week": "Due next week", + "filter-due-tomorrow": "Due tomorrow", + "list-filter-label": "Filter List by Title", + "filter-clear": "Clear filter", + "filter-labels-label": "Filter by label", + "filter-no-label": "No label", + "filter-member-label": "Filter by member", + "filter-no-member": "No member", + "filter-assignee-label": "Filter by assignee", + "filter-no-assignee": "No assignee", + "filter-custom-fields-label": "Filter by Custom Fields", + "filter-no-custom-fields": "No Custom Fields", + "filter-show-archive": "Show archived lists", + "filter-hide-empty": "Hide empty lists", + "filter-on": "Filter is on", + "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", + "filter-to-selection": "Filter to selection", + "other-filters-label": "Other Filters", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "fullname": "Full Name", + "header-logo-title": "Go back to your boards page.", + "show-activities": "Show Activities", + "headerBarCreateBoardPopup-title": "Create Board", + "home": "Home", + "import": "Import", + "impersonate-user": "Impersonate user", + "link": "Link", + "import-board": "import board", + "import-board-c": "Import board", + "import-board-title-trello": "Import board from Trello", + "import-board-title-wekan": "Import board from previous export", + "import-board-title-csv": "Import board from CSV/TSV", + "from-trello": "From Trello", + "from-wekan": "From previous export", + "from-csv": "From CSV/TSV", + "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.", + "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .", + "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.", + "import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.", + "import-json-placeholder": "Paste your valid JSON data here", + "import-csv-placeholder": "Paste your valid CSV/TSV data here", + "import-map-members": "Map members", + "import-members-map": "Your imported board has some members. Please map the members you want to import to your users", + "import-members-map-note": "Note: Unmapped members will be assigned to the current user.", + "import-show-user-mapping": "Review members mapping", + "import-user-select": "Pick your existing user you want to use as this member", + "importMapMembersAddPopup-title": "Select member", + "info": "Version", + "initials": "Initials", + "invalid-date": "Invalid date", + "invalid-time": "Invalid time", + "invalid-user": "Invalid user", + "joined": "joined", + "just-invited": "You are just invited to this board", + "keyboard-shortcuts": "Keyboard shortcuts", + "label-create": "Create Label", + "label-default": "%s label (default)", + "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", + "labels": "Labels", + "language": "Language", + "last-admin-desc": "You can’t change roles because there must be at least one admin.", + "leave-board": "Leave Board", + "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", + "leaveBoardPopup-title": "Leave Board ?", + "link-card": "Link to this card", + "list-archive-cards": "Move all cards in this list to Archive", + "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.", + "list-move-cards": "Move all cards in this list", + "list-select-cards": "Select all cards in this list", + "set-color-list": "Set Color", + "listActionPopup-title": "List Actions", + "settingsUserPopup-title": "User Settings", + "settingsTeamPopup-title": "Team Settings", + "settingsOrgPopup-title": "Organization Settings", + "swimlaneActionPopup-title": "Swimlane Actions", + "swimlaneAddPopup-title": "Add a Swimlane below", + "listImportCardPopup-title": "Import a Trello card", + "listImportCardsTsvPopup-title": "Import Excel CSV/TSV", + "listMorePopup-title": "More", + "link-list": "Link to this list", + "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", + "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.", + "lists": "Lists", + "swimlanes": "Swimlanes", + "log-out": "Log Out", + "log-in": "Log In", + "loginPopup-title": "Log In", + "memberMenuPopup-title": "Member Settings", + "members": "Members", + "menu": "Menu", + "move-selection": "Move selection", + "moveCardPopup-title": "Move Card", + "moveCardToBottom-title": "Move to Bottom", + "moveCardToTop-title": "Move to Top", + "moveSelectionPopup-title": "Move selection", + "multi-selection": "Multi-Selection", + "multi-selection-label": "Set label for selection", + "multi-selection-member": "Set member for selection", + "multi-selection-on": "Multi-Selection is on", + "muted": "Muted", + "muted-info": "You will never be notified of any changes in this board", + "my-boards": "My Boards", + "name": "Name", + "no-archived-cards": "No cards in Archive.", + "no-archived-lists": "No lists in Archive.", + "no-archived-swimlanes": "No swimlanes in Archive.", + "no-results": "No results", + "normal": "Normal", + "normal-desc": "Can view and edit cards. Can't change settings.", + "not-accepted-yet": "Invitation not accepted yet", + "notify-participate": "Receive updates to any cards you participate as creator or member", + "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", + "optional": "optional", + "or": "or", + "page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.", + "page-not-found": "Page not found.", + "password": "Password", + "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", + "participating": "Participating", + "preview": "Preview", + "previewAttachedImagePopup-title": "Preview", + "previewClipboardImagePopup-title": "Preview", + "private": "Private", + "private-desc": "This board is private. Only people added to the board can view and edit it.", + "profile": "Profile", + "public": "Public", + "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.", + "quick-access-description": "Star a board to add a shortcut in this bar.", + "remove-cover": "Remove cover image from minicard", + "remove-from-board": "Remove from Board", + "remove-label": "Remove Label", + "listDeletePopup-title": "Delete List ?", + "remove-member": "Remove Member", + "remove-member-from-card": "Remove from Card", + "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", + "removeMemberPopup-title": "Remove Member?", + "rename": "Rename", + "rename-board": "Rename Board", + "restore": "Restore", + "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions", + "rescue-card-description-dialogue": "Overwrite current card description with your changes?", + "save": "Save", + "search": "Search", + "rules": "Rules", + "search-cards": "Search from card/list titles, descriptions and custom fields on this board", + "search-example": "Write text you search and press Enter", + "select-color": "Select Color", + "select-board": "Select Board", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", + "shortcut-assign-self": "Assign yourself to current card", + "shortcut-autocomplete-emoji": "Autocomplete emoji", + "shortcut-autocomplete-members": "Autocomplete members", + "shortcut-clear-filters": "Clear all filters", + "shortcut-close-dialog": "Close Dialog", + "shortcut-filter-my-cards": "Filter my cards", + "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-show-shortcuts": "Bring up this shortcuts list", + "shortcut-toggle-filterbar": "Toggle Filter Sidebar", + "shortcut-toggle-searchbar": "Toggle Search Sidebar", + "shortcut-toggle-sidebar": "Toggle Board Sidebar", + "show-cards-minimum-count": "Show cards count if list contains more than", + "sidebar-open": "Open Sidebar", + "sidebar-close": "Close Sidebar", + "signupPopup-title": "Create an Account", + "star-board-title": "Click to star this board. It will show up at top of your boards list.", + "starred-boards": "Starred Boards", + "starred-boards-description": "Starred boards show up at the top of your boards list.", + "subscribe": "Subscribe", + "team": "Team", + "this-board": "this board", + "this-card": "this card", + "spent-time-hours": "Spent time (hours)", + "overtime-hours": "Overtime (hours)", + "overtime": "Overtime", + "has-overtime-cards": "Has overtime cards", + "has-spenttime-cards": "Has spent time cards", + "time": "Time", + "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", + "remove-labels-multiselect": "Multi-Selection removes labels 1-9", + "tracking": "Tracking", + "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", + "unassign-member": "Unassign member", + "unsaved-description": "You have an unsaved description.", + "unwatch": "Unwatch", + "upload": "Upload", + "upload-avatar": "Upload an avatar", + "uploaded-avatar": "Uploaded an avatar", + "custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL", + "custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL", + "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", + "custom-login-logo-image-url": "Custom Login Logo Image URL", + "custom-login-logo-link-url": "Custom Login Logo Link URL", + "custom-help-link-url": "Custom Help Link URL", + "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", + "username": "Username", + "import-usernames": "Import Usernames", + "view-it": "View it", + "warn-list-archived": "warning: this card is in an list at Archive", + "watch": "Watch", + "watching": "Watching", + "watching-info": "You will be notified of any change in this board", + "welcome-board": "Welcome Board", + "welcome-swimlane": "Milestone 1", + "welcome-list1": "Basics", + "welcome-list2": "Advanced", + "card-templates-swimlane": "Card Templates", + "list-templates-swimlane": "List Templates", + "board-templates-swimlane": "Board Templates", + "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", + "admin-panel": "Admin Panel", + "settings": "Settings", + "people": "People", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", + "disable-forgot-password": "Disable Forgot Password", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-tls-description": "Enable TLS support for SMTP server", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Username", + "smtp-password": "Password", + "smtp-tls": "TLS support", + "send-from": "From", + "send-smtp-test": "Send a test email to yourself", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ sent you an invitation", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "email-smtp-test-subject": "SMTP Test Email", + "email-smtp-test-text": "You have successfully sent an email", + "error-invitation-code-not-exist": "Invitation code doesn't exist", + "error-notAuthorized": "You are not authorized to view this page.", + "webhook-title": "Webhook Name", + "webhook-token": "Token (Optional for Authentication)", + "outgoing-webhooks": "Outgoing Webhooks", + "bidirectional-webhooks": "Two-Way Webhooks", + "outgoingWebhooksPopup-title": "Outgoing Webhooks", + "boardCardTitlePopup-title": "Card Title Filter", + "disable-webhook": "Disable This Webhook", + "global-webhook": "Global Webhooks", + "new-outgoing-webhook": "New Outgoing Webhook", + "no-name": "(Unknown)", + "Node_version": "Node version", + "Meteor_version": "Meteor version", + "MongoDB_version": "MongoDB version", + "MongoDB_storage_engine": "MongoDB storage engine", + "MongoDB_Oplog_enabled": "MongoDB Oplog enabled", + "OS_Arch": "OS Arch", + "OS_Cpus": "OS CPU Count", + "OS_Freemem": "OS Free Memory", + "OS_Loadavg": "OS Load Average", + "OS_Platform": "OS Platform", + "OS_Release": "OS Release", + "OS_Totalmem": "OS Total Memory", + "OS_Type": "OS Type", + "OS_Uptime": "OS Uptime", + "days": "days", + "hours": "hours", + "minutes": "minutes", + "seconds": "seconds", + "show-field-on-card": "Show this field on card", + "automatically-field-on-card": "Add field to new cards", + "always-field-on-card": "Add field to all cards", + "showLabel-field-on-card": "Show field label on minicard", + "showSum-field-on-list": "Show sum of fields at top of list", + "yes": "Yes", + "no": "No", + "accounts": "Accounts", + "accounts-allowEmailChange": "Allow Email Change", + "accounts-allowUserNameChange": "Allow Username Change", + "tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only", + "tableVisibilityMode" : "Boards visibility", + "createdAt": "Created at", + "modifiedAt": "Modified at", + "verified": "Verified", + "active": "Active", + "card-received": "Received", + "card-received-on": "Received on", + "card-end": "End", + "card-end-on": "Ends on", + "editCardReceivedDatePopup-title": "Change received date", + "editCardEndDatePopup-title": "Change end date", + "setCardColorPopup-title": "Set color", + "setCardActionsColorPopup-title": "Choose a color", + "setSwimlaneColorPopup-title": "Choose a color", + "setListColorPopup-title": "Choose a color", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "card-sorting-by-number": "Card sorting by number", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board", + "default-subtasks-board": "Subtasks for __board__ board", + "default": "Default", + "defaultdefault": "Default", + "queue": "Queue", + "subtask-settings": "Subtasks Settings", + "card-settings": "Card Settings", + "minicard-settings": "Minicard Settings", + "boardSubtaskSettingsPopup-title": "Board Subtasks Settings", + "boardCardSettingsPopup-title": "Card Settings", + "boardMinicardSettingsPopup-title": "Minicard Settings", + "deposit-subtasks-board": "Deposit subtasks to this board:", + "deposit-subtasks-list": "Landing list for subtasks deposited here:", + "show-parent-in-minicard": "Show parent in minicard:", + "description-on-minicard": "Description on minicard", + "cover-attachment-on-minicard": "Cover image on minicard", + "badge-attachment-on-minicard": "Count of attachments on minicard", + "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "prefix-with-full-path": "Prefix with full path", + "prefix-with-parent": "Prefix with parent", + "subtext-with-full-path": "Subtext with full path", + "subtext-with-parent": "Subtext with parent", + "change-card-parent": "Change card's parent", + "parent-card": "Parent card", + "source-board": "Source board", + "no-parent": "Don't show parent", + "activity-added-label": "added label '%s' to %s", + "activity-removed-label": "removed label '%s' from %s", + "activity-delete-attach": "deleted an attachment from %s", + "activity-added-label-card": "added label '%s'", + "activity-removed-label-card": "removed label '%s'", + "activity-delete-attach-card": "deleted an attachment", + "activity-set-customfield": "set custom field '%s' to '%s' in %s", + "activity-unset-customfield": "unset custom field '%s' in %s", + "r-rule": "Rule", + "r-add-trigger": "Add trigger", + "r-add-action": "Add action", + "r-board-rules": "Board rules", + "r-add-rule": "Add rule", + "r-view-rule": "View rule", + "r-delete-rule": "Delete rule", + "r-new-rule-name": "New rule title", + "r-no-rules": "No rules", + "r-trigger": "Trigger", + "r-action": "Action", + "r-when-a-card": "When a card", + "r-is": "is", + "r-is-moved": "is moved", + "r-added-to": "Added to", + "r-removed-from": "Removed from", + "r-the-board": "the board", + "r-list": "list", + "set-filter": "Set Filter", + "r-moved-to": "Moved to", + "r-moved-from": "Moved from", + "r-archived": "Moved to Archive", + "r-unarchived": "Restored from Archive", + "r-a-card": "a card", + "r-when-a-label-is": "When a label is", + "r-when-the-label": "When the label", + "r-list-name": "list name", + "r-when-a-member": "When a member is", + "r-when-the-member": "When the member", + "r-name": "name", + "r-when-a-attach": "When an attachment", + "r-when-a-checklist": "When a checklist is", + "r-when-the-checklist": "When the checklist", + "r-completed": "Completed", + "r-made-incomplete": "Made incomplete", + "r-when-a-item": "When a checklist item is", + "r-when-the-item": "When the checklist item", + "r-checked": "Checked", + "r-unchecked": "Unchecked", + "r-move-card-to": "Move card to", + "r-top-of": "Top of", + "r-bottom-of": "Bottom of", + "r-its-list": "its list", + "r-archive": "Move to Archive", + "r-unarchive": "Restore from Archive", + "r-card": "card", + "r-add": "Add", + "r-remove": "Remove", + "r-label": "label", + "r-member": "member", + "r-remove-all": "Remove all members from the card", + "r-set-color": "Set color to", + "r-checklist": "checklist", + "r-check-all": "Check all", + "r-uncheck-all": "Uncheck all", + "r-items-check": "items of checklist", + "r-check": "Check", + "r-uncheck": "Uncheck", + "r-item": "item", + "r-of-checklist": "of checklist", + "r-send-email": "Send an email", + "r-to": "to", + "r-of": "of", + "r-subject": "subject", + "r-rule-details": "Rule details", + "r-d-move-to-top-gen": "Move card to top of its list", + "r-d-move-to-top-spec": "Move card to top of list", + "r-d-move-to-bottom-gen": "Move card to bottom of its list", + "r-d-move-to-bottom-spec": "Move card to bottom of list", + "r-d-send-email": "Send email", + "r-d-send-email-to": "to", + "r-d-send-email-subject": "subject", + "r-d-send-email-message": "message", + "r-d-archive": "Move card to Archive", + "r-d-unarchive": "Restore card from Archive", + "r-d-add-label": "Add label", + "r-d-remove-label": "Remove label", + "r-create-card": "Create new card", + "r-in-list": "in list", + "r-in-swimlane": "in swimlane", + "r-d-add-member": "Add member", + "r-d-remove-member": "Remove member", + "r-d-remove-all-member": "Remove all member", + "r-d-check-all": "Check all items of a list", + "r-d-uncheck-all": "Uncheck all items of a list", + "r-d-check-one": "Check item", + "r-d-uncheck-one": "Uncheck item", + "r-d-check-of-list": "of checklist", + "r-d-add-checklist": "Add checklist", + "r-d-remove-checklist": "Remove checklist", + "r-by": "by", + "r-add-checklist": "Add checklist", + "r-with-items": "with items", + "r-items-list": "item1,item2,item3", + "r-add-swimlane": "Add swimlane", + "r-swimlane-name": "swimlane name", + "r-board-note": "Note: leave a field empty to match every possible value. ", + "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", + "r-when-a-card-is-moved": "When a card is moved to another list", + "r-set": "Set", + "r-update": "Update", + "r-datefield": "date field", + "r-df-start-at": "start", + "r-df-due-at": "due", + "r-df-end-at": "end", + "r-df-received-at": "received", + "r-to-current-datetime": "to current date/time", + "r-remove-value-from": "Remove value from", + "r-link-card": "Link card to", + "ldap": "LDAP", + "oauth2": "OAuth2", + "cas": "CAS", + "authentication-method": "Authentication method", + "authentication-type": "Authentication type", + "custom-product-name": "Custom Product Name", + "layout": "Layout", + "hide-logo": "Hide Logo", + "hide-card-counter-list": "Hide card counter list on All Boards", + "hide-board-member-list": "Hide board member list on All Boards", + "add-custom-html-after-body-start": "Add Custom HTML after <body> start", + "add-custom-html-before-body-end": "Add Custom HTML before </body> end", + "error-undefined": "Something went wrong", + "error-ldap-login": "An error occurred while trying to login", + "display-authentication-method": "Display Authentication Method", + "oidc-button-text": "Customize the OIDC button text", + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board", + "org-number": "The number of organizations is: ", + "team-number": "The number of teams is: ", + "people-number": "The number of people is: ", + "swimlaneDeletePopup-title": "Delete Swimlane ?", + "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", + "restore-all": "Restore all", + "delete-all": "Delete all", + "loading": "Loading, please wait.", + "previous_as": "last time was", + "act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__", + "act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)", + "act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)", + "act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)", + "a-dueAt": "modified due time to be", + "a-endAt": "modified ending time to be", + "a-startAt": "modified starting time to be", + "a-receivedAt": "modified received time to be", + "almostdue": "current due time %s is approaching", + "pastdue": "current due time %s is past", + "duenow": "current due time %s is today", + "act-newDue": "__list__/__card__ has 1st due reminder [__board__]", + "act-withDue": "__list__/__card__ due reminders [__board__]", + "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching", + "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", + "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", + "act-atUserComment": "You were mentioned in [__board__] __list__/__card__", + "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.", + "delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.", + "delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.", + "accounts-allowUserDelete": "Allow users to self delete their account", + "hide-minicard-label-text": "Hide minicard label text", + "show-desktop-drag-handles": "Show desktop drag handles", + "assignee": "Assignee", + "cardAssigneesPopup-title": "Assignee", + "addmore-detail": "Add a more detailed description", + "show-on-card": "Show on Card", + "show-on-minicard": "Show on Minicard", + "new": "New", + "editOrgPopup-title": "Edit Organization", + "newOrgPopup-title": "New Organization", + "editTeamPopup-title": "Edit Team", + "newTeamPopup-title": "New Team", + "editUserPopup-title": "Edit User", + "newUserPopup-title": "New User", + "notifications": "Notifications", + "help": "Help", + "view-all": "View All", + "filter-by-unread": "Filter by Unread", + "mark-all-as-read": "Mark all as read", + "remove-all-read": "Remove all read", + "allow-rename": "Allow Rename", + "allowRenamePopup-title": "Allow Rename", + "start-day-of-week": "Set day of the week start", + "monday": "Monday", + "tuesday": "Tuesday", + "wednesday": "Wednesday", + "thursday": "Thursday", + "friday": "Friday", + "saturday": "Saturday", + "sunday": "Sunday", + "status": "Status", + "swimlane": "Swimlane", + "owner": "Owner", + "last-modified-at": "Last modified at", + "last-activity": "Last activity", + "voting": "Voting", + "archived": "Archived", + "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", + "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", + "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", + "task": "Task", + "create-task": "Create Task", + "ok": "OK", + "organizations": "Organizations", + "teams": "Teams", + "displayName": "Display Name", + "shortName": "Short Name", + "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "website": "Website", + "person": "Person", + "my-cards": "My Cards", + "card": "Card", + "list": "List", + "board": "Board", + "context-separator": "/", + "myCardsViewChange-title": "My Cards View", + "myCardsViewChangePopup-title": "My Cards View", + "myCardsViewChange-choice-boards": "Boards", + "myCardsViewChange-choice-table": "Table", + "myCardsSortChange-title": "My Cards Sort", + "myCardsSortChangePopup-title": "My Cards Sort", + "myCardsSortChange-choice-board": "By Board", + "myCardsSortChange-choice-dueat": "By Due Date", + "dueCards-title": "Due Cards", + "dueCardsViewChange-title": "Due Cards View", + "dueCardsViewChangePopup-title": "Due Cards View", + "dueCardsViewChange-choice-me": "Me", + "dueCardsViewChange-choice-all": "All Users", + "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", + "broken-cards": "Broken Cards", + "board-title-not-found": "Board '%s' not found.", + "swimlane-title-not-found": "Swimlane '%s' not found.", + "list-title-not-found": "List '%s' not found.", + "label-not-found": "Label '%s' not found.", + "label-color-not-found": "Label color %s not found.", + "user-username-not-found": "Username '%s' not found.", + "comment-not-found": "Card with comment containing text '%s' not found.", + "org-name-not-found": "Organization '%s' not found.", + "team-name-not-found": "Team '%s' not found.", + "globalSearch-title": "Search All Boards", + "no-cards-found": "No Cards Found", + "one-card-found": "One Card Found", + "n-cards-found": "%s Cards Found", + "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", + "operator-board": "board", + "operator-board-abbrev": "b", + "operator-swimlane": "swimlane", + "operator-swimlane-abbrev": "s", + "operator-list": "list", + "operator-list-abbrev": "l", + "operator-label": "label", + "operator-label-abbrev": "#", + "operator-user": "user", + "operator-user-abbrev": "@", + "operator-member": "member", + "operator-member-abbrev": "m", + "operator-assignee": "assignee", + "operator-assignee-abbrev": "a", + "operator-creator": "creator", + "operator-status": "status", + "operator-due": "due", + "operator-created": "created", + "operator-modified": "modified", + "operator-sort": "sort", + "operator-comment": "comment", + "operator-has": "has", + "operator-limit": "limit", + "operator-debug": "debug", + "operator-org": "org", + "operator-team": "team", + "predicate-archived": "archived", + "predicate-open": "open", + "predicate-ended": "ended", + "predicate-all": "all", + "predicate-overdue": "overdue", + "predicate-week": "week", + "predicate-month": "month", + "predicate-quarter": "quarter", + "predicate-year": "year", + "predicate-due": "due", + "predicate-modified": "modified", + "predicate-created": "created", + "predicate-attachment": "attachment", + "predicate-description": "description", + "predicate-checklist": "checklist", + "predicate-start": "start", + "predicate-end": "end", + "predicate-assignee": "assignee", + "predicate-member": "member", + "predicate-public": "public", + "predicate-private": "private", + "predicate-selector": "selector", + "predicate-projection": "projection", + "operator-unknown-error": "%s is not an operator", + "operator-number-expected": "operator __operator__ expected a number, got '__value__'", + "operator-sort-invalid": "sort of '%s' is invalid", + "operator-status-invalid": "'%s' is not a valid status", + "operator-has-invalid": "%s is not a valid existence check", + "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", + "operator-debug-invalid": "%s is not a valid debug predicate", + "next-page": "Next Page", + "previous-page": "Previous Page", + "heading-notes": "Notes", + "globalSearch-instructions-heading": "Search Instructions", + "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-operators": "Available operators:", + "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", + "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", + "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", + "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", + "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - cards where *<username>* is the card's creator", + "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*", + "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", + "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", + "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", + "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", + "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", + "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", + "globalSearch-instructions-notes-1": "Multiple operators may be specified.", + "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", + "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", + "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", + "globalSearch-instructions-notes-4": "Text searches are case insensitive.", + "globalSearch-instructions-notes-5": "By default archived cards are not searched.", + "link-to-search": "Link to this search", + "excel-font": "Arial", + "number": "Number", + "label-colors": "Label Colors", + "label-names": "Label Names", + "archived-at": "archived at", + "sort-cards": "Sort Cards", + "sort-is-on": "Sort is on", + "cardsSortPopup-title": "Sort Cards", + "due-date": "Due Date", + "server-error": "Server Error", + "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`", + "title-alphabetically": "Title (Alphabetically)", + "created-at-newest-first": "Created At (Newest First)", + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", + "move-swimlane": "Move Swimlane", + "moveSwimlanePopup-title": "Move Swimlane", + "custom-field-stringtemplate": "String Template", + "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", + "custom-field-stringtemplate-separator": "Separator (use or   for a space)", + "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", + "creator": "Creator", + "creator-on-minicard": "Creator on minicard", + "filesReportTitle": "Files Report", + "reports": "Reports", + "rulesReportTitle": "Rules Report", + "boardsReportTitle": "Boards Report", + "cardsReportTitle": "Cards Report", + "copy-swimlane": "Copy Swimlane", + "copySwimlanePopup-title": "Copy Swimlane", + "display-card-creator": "Display Card Creator", + "wait-spinner": "Wait Spinner", + "Bounce": "Bounce Wait Spinner", + "Cube": "Cube Wait Spinner", + "Cube-Grid": "Cube-Grid Wait Spinner", + "Dot": "Dot Wait Spinner", + "Double-Bounce": "Double Bounce Wait Spinner", + "Rotateplane": "Rotateplane Wait Spinner", + "Scaleout": "Scaleout Wait Spinner", + "Wave": "Wave Wait Spinner", + "maximize-card": "Maximize Card", + "minimize-card": "Minimize Card", + "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", + "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", + "subject": "Subject", + "details": "Details", + "carbon-copy": "Carbon Copy (Cc:)", + "ticket": "Ticket", + "tickets": "Tickets", + "ticket-number": "Ticket Number", + "open": "Open", + "pending": "Pending", + "closed": "Closed", + "resolved": "Resolved", + "cancelled": "Cancelled", + "history": "History", + "request": "Request", + "requests": "Requests", + "help-request": "Help Request", + "editCardSortOrderPopup-title": "Change Sorting", + "cardDetailsPopup-title": "Card Details", + "add-teams": "Add teams", + "add-teams-label": "Added teams are displayed below:", + "remove-team-from-table": "Are you sure you want to remove this team from the board ?", + "confirm-btn": "Confirm", + "remove-btn": "Remove", + "filter-card-title-label": "Filter by card title", + "invite-people-success": "Invitation to register sent with success", + "invite-people-error": "Error while sending invitation to register", + "can-invite-if-same-mailDomainName": "Email domain name", + "to-create-teams-contact-admin": "To create teams, please contact the administrator.", + "Node_heap_total_heap_size": "Node heap: total heap size", + "Node_heap_total_heap_size_executable": "Node heap: total heap size executable", + "Node_heap_total_physical_size": "Node heap: total physical size", + "Node_heap_total_available_size": "Node heap: total available size", + "Node_heap_used_heap_size": "Node heap: used heap size", + "Node_heap_heap_size_limit": "Node heap: heap size limit", + "Node_heap_malloced_memory": "Node heap: malloced memory", + "Node_heap_peak_malloced_memory": "Node heap: peak malloced memory", + "Node_heap_does_zap_garbage": "Node heap: does zap garbage", + "Node_heap_number_of_native_contexts": "Node heap: number of native contexts", + "Node_heap_number_of_detached_contexts": "Node heap: number of detached contexts", + "Node_memory_usage_rss": "Node memory usage: resident set size", + "Node_memory_usage_heap_total": "Node memory usage: total size of the allocated heap", + "Node_memory_usage_heap_used": "Node memory usage: actual memory used", + "Node_memory_usage_external": "Node memory usage: external", + "add-organizations": "Add organizations", + "add-organizations-label": "Added organizations are displayed below:", + "remove-organization-from-board": "Are you sure you want to remove this organization from this board ?", + "to-create-organizations-contact-admin": "To create organizations, please contact administrator.", + "custom-legal-notice-link-url": "Custom legal notice page URL", + "acceptance_of_our_legalNotice": "By continuing, you accept our", + "legalNotice": "legal notice", + "copied": "Copied!", + "checklistActionsPopup-title": "Checklist Actions", + "moveChecklist": "Move Checklist", + "moveChecklistPopup-title": "Move Checklist", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", + "copyChecklist": "Copy Checklist", + "copyChecklistPopup-title": "Copy Checklist", + "card-show-lists": "Card Show Lists", + "subtaskActionsPopup-title": "Subtask Actions", + "attachmentActionsPopup-title": "Attachment Actions", + "attachment-move-storage-fs": "Move attachment to filesystem", + "attachment-move-storage-gridfs": "Move attachment to GridFS", + "attachment-move-storage-s3": "Move attachment to S3", + "attachment-move": "Move Attachment", + "move-all-attachments-to-fs": "Move all attachments to filesystem", + "move-all-attachments-to-gridfs": "Move all attachments to GridFS", + "move-all-attachments-to-s3": "Move all attachments to S3", + "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", + "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", + "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", + "path": "Path", + "version-name": "Version-Name", + "size": "Size", + "storage": "Storage", + "action": "Action", + "board-title": "Board Title", + "attachmentRenamePopup-title": "Rename", + "uploading": "Uploading", + "remaining_time": "Remaining time", + "speed": "Speed", + "progress": "Progress", + "password-again": "Password (again)", + "if-you-already-have-an-account": "If you already have an account", + "register": "Register", + "forgot-password": "Forgot password", + "minicardDetailsActionsPopup-title": "Card Details", + "Mongo_sessions_count": "Mongo sessions count", + "change-visibility": "Change Visibility", + "max-upload-filesize": "Max upload filesize in bytes:", + "allowed-upload-filetypes": "Allowed upload filetypes:", + "max-avatar-filesize": "Max avatar filesize in bytes:", + "allowed-avatar-filetypes": "Allowed avatar filetypes:", + "invalid-file": "If filename is invalid, upload or rename is cancelled.", + "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", + "drag-board": "Drag board", + "translation-number": "The number of custom translation strings is:", + "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", + "newTranslationPopup-title": "New custom translation string", + "editTranslationPopup-title": "Edit custom translation string", + "settingsTranslationPopup-title": "Delete this custom translation string?", + "translation": "Translation", + "text": "Text", + "translation-text": "Translation text", + "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", + "convert-to-markdown": "Convert to markdown", + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" +} diff --git a/imports/i18n/data/tlh.i18n.json b/imports/i18n/data/tlh.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/tlh.i18n.json +++ b/imports/i18n/data/tlh.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index 846e68131..97e148dee 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -46,9 +46,10 @@ "activities": "Etkinlikler", "activity": "Etkinlik", "activity-added": "%s içine %s ekledi", - "activity-archived": "%s arşive taşındı", + "activity-archived": "%s Arşive taşındı", "activity-attached": "%s içine %s ekledi", "activity-created": "%s öğesini oluşturdu", + "activity-changedListTitle": "Liste adı %syapıldı", "activity-customfield-created": "%s adlı özel alan yaratıldı", "activity-excluded": "%s içinden %s çıkarttı", "activity-imported": "%s kaynağından %s öğesini %s öğesinin içine taşıdı", @@ -85,14 +86,16 @@ "add-card": "Kart Ekle", "add-card-to-top-of-list": "Listenin Başına Kart Ekle", "add-card-to-bottom-of-list": "Listenin Sonuna Kart Ekle", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", - "setSwimlaneHeightPopup-title": "Set Swimlane Height", - "set-swimlane-height": "Set Swimlane Height", - "set-swimlane-height-value": "Swimlane Height (pixels)", - "swimlane-height-error-message": "Swimlane height must be a positive integer", + "setListWidthPopup-title": "Genişlik Ata", + "set-list-width": "Genişlik Ata", + "set-list-width-value": "En Az & En Çok Genişlik (piksel) Ata ", + "list-width-error-message": "Liste genişliği 100'den büyük sayısal bir değer olmalı", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "setSwimlaneHeightPopup-title": "Kulvar Uzunluğunu Ayarla", + "set-swimlane-height": "Kulvar Uzunluğunu Ayarla", + "set-swimlane-height-value": "Kulvar Uzunluğu (piksel)", + "swimlane-height-error-message": "Kulvar Uzunluğu pozitif bir tam sayı olmak zorundadır.", "add-swimlane": "Kulvar Ekle", "add-subtask": "Alt Görev Ekle", "add-checklist": "Yapılacak Listesi Ekle", @@ -100,7 +103,7 @@ "close-add-checklist-item": "Close add an item to checklist form", "close-edit-checklist-item": "Close edit an item to checklist form", "convertChecklistItemToCardPopup-title": "Karta Çevir", - "add-cover": "Add cover image to minicard", + "add-cover": "Mini karta kapak resmi ekle", "add-label": "Etiket Ekle", "add-list": "Liste Ekle", "add-after-list": "Add After List", @@ -143,13 +146,13 @@ "attachmentDeletePopup-title": "Ek Silinsin mi?", "attachments": "Ekler", "auto-watch": "Oluşan yeni panoları kendiliğinden izlemeye al", - "avatar-too-big": "The avatar is too large (__size__ max)", + "avatar-too-big": "Avatar boyutu çok yüksek (__size__max)", "back": "Geri", "board-change-color": "Renk değiştir", - "board-change-background-image": "Change Background Image", - "board-background-image-url": "Background Image URL", - "add-background-image": "Add Background Image", - "remove-background-image": "Remove Background Image", + "board-change-background-image": "Arkaplan Resmini Değiştir", + "board-background-image-url": "Arkaplan Resmi URL", + "add-background-image": "Arkaplan Resmi Ekle", + "remove-background-image": "Arkaplan Resmini Kaldır", "show-at-all-boards-page" : "Show at All Boards page", "board-info-on-my-boards" : "All Boards Settings", "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", @@ -162,9 +165,9 @@ "board-public-info": "Bu pano <strong>genel</strong>e açılacaktır.", "board-drag-drop-reorder-or-click-open": "Tahta ikonlarını yeniden sıralamak için sürükleyip bırakın. Tahtayı açmak için tahta ikonuna tıklayın.", "boardChangeColorPopup-title": "Pano arkaplan rengini değiştir", - "boardChangeBackgroundImagePopup-title": "Change Background Image", + "boardChangeBackgroundImagePopup-title": "Arkaplan Resmini Değiştir.", "allBoardsChangeColorPopup-title": "Renk değiştir", - "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeBackgroundImagePopup-title": "Arkaplan Resmini Değiştir.", "boardChangeTitlePopup-title": "Panonun Adını Değiştir", "boardChangeVisibilityPopup-title": "Görünebilirliği Değiştir", "boardChangeWatchPopup-title": "İzleme Durumunu Değiştir", @@ -263,6 +266,9 @@ "checklists": "Yapılacak Listeleri", "click-to-star": "Bu panoyu yıldızlamak için tıkla.", "click-to-unstar": "Bu panunun yıldızını kaldırmak için tıkla.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Yapıştır veya sürükleyip bırak", "close": "Kapat", "close-board": "Panoyu kapat", @@ -294,6 +300,7 @@ "color-white": "beyaz", "color-yellow": "sarı", "unset-color": "Seçilmemiş", + "comments": "Yorumlar", "comment": "Yorum", "comment-placeholder": "Yorum Yaz", "comment-only": "Sadece yorum", @@ -354,8 +361,8 @@ "edit-profile": "Profili Düzenle", "edit-wip-limit": "Devam Eden İş Sınırını Düzenle", "soft-wip-limit": "Zayıf Devam Eden İş Sınırı", - "editCardStartDatePopup-title": "Change start date", - "editCardDueDatePopup-title": "Change due date", + "editCardStartDatePopup-title": "Başlangıç tarihini değiştir", + "editCardDueDatePopup-title": "Bitiş tarihini değiştir", "editCustomFieldPopup-title": "Alanı düzenle", "addReactionPopup-title": "Reaksiyon ekle", "editCardSpentTimePopup-title": "Harcanan zamanı değiştir", @@ -376,6 +383,7 @@ "email-sent": "E-posta gönderildi", "email-verifyEmail-subject": "__siteName__ üzerindeki e-posta adresini doğrulama", "email-verifyEmail-text": "Merhaba __user__,\n\nHesap e-posta adresini doğrulamak için aşağıdaki linke tıklaman yeterli.\n\n__url__\n\nTeşekkürler.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Devam Eden İş Sınırını Aç", "error-board-doesNotExist": "Pano bulunamadı", "error-board-notAdmin": "Bu işlemi yapmak için pano yöneticisi olmalısın.", @@ -414,7 +422,7 @@ "list-label-short-modifiedAt": "(S)", "list-label-short-title": "(A)", "list-label-short-sort": "(M)", - "filter": "Filter", + "filter": "Filtre", "filter-cards": "Kartları veya Listeleri Filtrele", "filter-dates-label": "Tarihe göre filtrele", "filter-no-due-date": "Son tarih yok", @@ -443,7 +451,7 @@ "advanced-filter-description": "Gelişmiş Filtre, aşağıdaki operatörleri içeren bir dize yazmaya izin verir: == != <= >= && || ( ) Operatörler arasında ayırıcı olarak boşluk kullanılır. Adlarını ve değerlerini yazarak tüm Özel Alanlar için filtre uygulayabilirsiniz. Örneğin: Alan1 == Değer1. Not: Alanlar veya değerler boşluk içeriyorsa, bunları tek tırnak içine almanız gerekir. Örneğin: 'Alan 1' == 'Değer 1'. Tek kontrol karakterlerinin (' \\\\/) atlanması için \\\\ kullanabilirsiniz. Örneğin: Alan1 == Ben. Ayrıca birden fazla koşulu birleştirebilirsiniz. Örneğin: F1 == V1 || F1 == V2. Normalde tüm operatörler soldan sağa doğru yorumlanır. Parantez koyarak sırayı değiştirebilirsiniz. Örneğin: F1 == V1 && ( F2 == V2 || F2 == V3 ). Ayrıca normal ifadeyi kullanarak metin alanlarında arama yapabilirsiniz: F1 == /Tes.*/i", "fullname": "Ad Soyad", "header-logo-title": "Panolar sayfanıza geri dön.", - "hide-system-messages": "Sistem mesajlarını gizle", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Pano Oluşturma", "home": "Ana Sayfa", "import": "İçeri aktar", @@ -572,6 +580,7 @@ "select-board": "Panoyu Seçin", "set-wip-limit-value": "Bu listedeki en fazla öğe sayısı için bir sınır belirleyin", "setWipLimitPopup-title": "Devam Eden İş Sınırı Belirle", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Kendini karta ata", "shortcut-autocomplete-emoji": "Emojileri otomatik tamamla", "shortcut-autocomplete-members": "Üye isimlerini otomatik tamamla", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Zaman geçirilmiş kartlar", "time": "Zaman", "title": "Başlık", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Kart için etiketler 1-9 arasında geçiş yapın. Çoklu Seçim, 1-9 arası etiketleri ekler", "remove-labels-multiselect": "Çoklu Seçim, 1-9 arasındaki etiketleri kaldırır", "tracking": "Takip", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Bu kartı, sahip olan bağlantılı kartı silmeden önce silemezsiniz.", "delete-linked-cards-before-this-list": "Bu listedeki kartlara işaret eden bağlantılı kartları silmeden önce bu listeyi silemezsiniz.", "hide-checked-items": "İşaretli öğeleri gizle", + "hide-finished-checklist": "Hide finished checklist", "task": "Görev", "create-task": "Görev Oluştur", "ok": "Tamam", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Oluşturulma Tarihi(En Yenisi ilk)", "created-at-oldest-first": "Oluşturulma Tarihi(En Eskisi İlk)", "links-heading": "Linkler", - "hide-system-messages-of-all-users": "Tüm kullanıcıların sistem mesajlarını gizle", - "now-system-messages-of-all-users-are-hidden": "Tüm kullanıcıların sistem mesajları gizlendi", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Kulvarı Taşı", "moveSwimlanePopup-title": "Kulvarı Taşı", "custom-field-stringtemplate": "Dize Şablonu", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Kontrol Listesi Eylemleri", "moveChecklist": "Kontrol Listesini Taşı", "moveChecklistPopup-title": "Kontrol Listesini Taşı", - "newlineBecomesNewChecklistItem": "Yeni satır, yeni kontrol listesi öğesi olur", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Kontrol Listesini Kopyala", "copyChecklistPopup-title": "Kontrol Listesini Kopyala", "card-show-lists": "Kart Gösteri Listeleri", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Metin", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Katla", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ug.i18n.json b/imports/i18n/data/ug.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/ug.i18n.json +++ b/imports/i18n/data/ug.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index c4dd1a9f3..8f94712ff 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -1,7 +1,7 @@ { "accept": "Прийняти", - "act-activity-notify": "Сповіщення про дії учасників", - "act-addAttachment": "прикріплено вкладення __attachment__ до картки__card__ у списку __list__ на доріжці __swimlane__ дошки__board__", + "act-activity-notify": "Сповіщення про активність учасників", + "act-addAttachment": "додано вкладення __attachment__ до картки __card__ у списку __list__ на доріжці __swimlane__ дошки __board__", "act-deleteAttachment": "видалено вкладення __attachment__ з картки __card__ у списку __list__ на доріжці __swimlane__ дошки __board__", "act-addSubtask": "додано підзадачу __subtask__ для картки __card__ у списку __list__ на доріжці __swimlane__ дошки __board__", "act-addLabel": "Додано мітку __label__ до картки __card__ у списку __list__ на доріжці __swimlane__ дошки __board__", @@ -19,27 +19,27 @@ "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-createBoard": "Дошку __board__створено", - "act-createSwimlane": "created swimlane __swimlane__ to board __board__", - "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", - "act-createCustomField": "created custom field __customField__ at board __board__", - "act-deleteCustomField": "deleted custom field __customField__ at board __board__", - "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-createList": "added list __list__ to board __board__", - "act-addBoardMember": "added member __member__ to board __board__", + "act-createBoard": "Дошку __board__ створено", + "act-createSwimlane": "створено доріжку __swimlane__ на дошці __board__", + "act-createCard": "створено картку __card__ у списку __list__ на доріжці __swimlane__ на дошці __board__", + "act-createCustomField": "створено спеціальне поле __customField__ на дошці __board__", + "act-deleteCustomField": "видалено спеціальне поле __customField__ на дошці __board__", + "act-setCustomField": "відредаговано спеціальне поле __customField__: __customFieldValue__ у картці __card__ у списку __list__ на доріжці __swimlane__ на дошці __board__", + "act-createList": "додано список __list__ на дошці __board__", + "act-addBoardMember": "додано учасника __member__ до дошки __board__", "act-archivedBoard": "Дошку __board__ переміщено до Архіву", - "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive", - "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive", - "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedCard": "Картку __card__ у списку __list__ на доріжці __swimlane__ на дошці __board__ переміщено до Архіву", + "act-archivedList": "Список __list__ на доріжці __swimlane__ на дошці __board__ переміщено до Архіву", + "act-archivedSwimlane": "Доріжку __swimlane__ на дошці __board__ переміщено до Архіву", "act-importBoard": "Імпортовано дошку __board__", - "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__", - "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__", - "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", - "act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__", - "act-removeBoardMember": "removed member __member__ from board __board__", - "act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__", - "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-importCard": "імпортовано картку __card__ у список __list__ на доріжку __swimlane__ до дошки __board__", + "act-importList": "імпортовано список __list__ у доріжку __swimlane__ на дошку __board__", + "act-joinMember": "додано учасника __member__ до картки __card__ у списку __list__ на доріжці __swimlane__ до дошки __board__", + "act-moveCard": "переміщено картку __card__ на дошці __board__ із списку __oldList__ на доріжку __oldSwimlane__ до списку __list__ на доріжку __swimlane__", + "act-moveCardToOtherBoard": "переміщено картку __card__ із списку __oldList__ на доріжку __oldSwimlane__ до дошки __oldBoard__ у список __list__ на доріжку __swimlane__ на дошці __board__", + "act-removeBoardMember": "видалено учасника __member__ з дошки __board__", + "act-restoredCard": "відновлено картку __card__ у список __list__ на доріжці __swimlane__ на дошці __board__", + "act-unjoinMember": "видалено учасника __member__ з картки __card__ у списку __list__ на доріжці __swimlane__ до дошки __board__", "act-withBoardTitle": "__board__", "act-withCardTitle": "[__board__] __card__", "actions": "Дії", @@ -48,8 +48,9 @@ "activity-added": "%s додано до %s", "activity-archived": "%s перенесено до архіву", "activity-attached": "%s прикріплено до %s", - "activity-created": "%sстворено", - "activity-customfield-created": "Створено спеціальне поле%s", + "activity-created": "%s створено", + "activity-changedListTitle": "перейменовано список у %s", + "activity-customfield-created": "Створено спеціальне поле %s", "activity-excluded": "%s виключено з %s", "activity-imported": "%s імпортовано до %s з %s", "activity-imported-board": "%s імпортовано з %s", @@ -60,8 +61,8 @@ "activity-sent": "%s відправлено до %s", "activity-unjoined": "unjoined %s", "activity-subtask-added": "Додано підзадачу до %s", - "activity-checked-item": "checked %s in checklist %s of %s", - "activity-unchecked-item": "unchecked %s in checklist %s of %s", + "activity-checked-item": "позначено виконаним %s у контрольному списку %s у картці %s у списку %s на доріжці %s дошки %s", + "activity-unchecked-item": "позначено як невиконане %s у контрольному списку %s у картці %s у списку %s на доріжці %s дошки %s", "activity-checklist-added": "Додано контрольний список до %s", "activity-checklist-removed": "removed a checklist from %s", "activity-checklist-completed": "completed checklist %s of %s", @@ -69,9 +70,9 @@ "activity-checklist-item-added": "added checklist item to '%s' in %s", "activity-checklist-item-removed": "removed a checklist item from '%s' in %s", "add": "Додати", - "activity-checked-item-card": "checked %s in checklist %s", - "activity-unchecked-item-card": "unchecked %s in checklist %s", - "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checked-item-card": "позначено виконаним %s у контрольному списку %s", + "activity-unchecked-item-card": "позначено як невиконане %s у контрольному списку %s", + "activity-checklist-completed-card": "completed checklist %s at card %s at list %s at swimlane %s at board %s", "activity-checklist-uncompleted-card": "uncompleted the checklist %s", "activity-editComment": "відредаговано коментар %s", "activity-deleteComment": "видалено коментар %s", @@ -85,139 +86,141 @@ "add-card": "Додати картку", "add-card-to-top-of-list": "Додати картку на початок списку", "add-card-to-bottom-of-list": "Додати картку у кінець списку", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", - "setSwimlaneHeightPopup-title": "Set Swimlane Height", - "set-swimlane-height": "Set Swimlane Height", - "set-swimlane-height-value": "Swimlane Height (pixels)", - "swimlane-height-error-message": "Swimlane height must be a positive integer", - "add-swimlane": "Add Swimlane", + "setListWidthPopup-title": "Встановити ширини", + "set-list-width": "Встановити ширини", + "set-list-width-value": "Встановити мін. та макс. ширину списку (у пікселях)", + "list-width-error-message": "Ширина списку має бути цілими числами, більшими за 100", + "keyboard-shortcuts-enabled": "Комбінації клавіш увімкнено. Натисніть, щоб вимкнути.", + "keyboard-shortcuts-disabled": "Комбінації клавіш вимкнено. Натисніть, щоб увімкнути.", + "setSwimlaneHeightPopup-title": "Встановити довжину доріжки", + "set-swimlane-height": "Встановити довжину доріжки", + "set-swimlane-height-value": "Висота доріжки (у пікселях)", + "swimlane-height-error-message": "Висота доріжки мусить бути цілим числом більше 0", + "add-swimlane": "Додати доріжку", "add-subtask": "Додати підзадачу", - "add-checklist": "Додати контрольній список", + "add-checklist": "Додати контрольний список", "add-checklist-item": "Додати елемент в список", - "close-add-checklist-item": "Close add an item to checklist form", - "close-edit-checklist-item": "Close edit an item to checklist form", + "close-add-checklist-item": "Закрити форму додавання елемента до контрольного списку", + "close-edit-checklist-item": "Закрити форму редагування елемента контрольного списку", "convertChecklistItemToCardPopup-title": "Перетворити у картку", - "add-cover": "Add cover image to minicard", + "add-cover": "Додати обкладинку", "add-label": "Додати мітку", "add-list": "Додати список", - "add-after-list": "Add After List", - "add-members": "Додати користувача", - "added": "Доданно", - "addMemberPopup-title": "Користувачі", - "memberPopup-title": "Налаштування користувачів", - "admin": "Адмін", - "admin-desc": "Може переглядати і редагувати картки, відаляти учасників та змінювати налаштування для дошки.", + "add-after-list": "Додати після списку", + "add-members": "Додати учасників", + "added": "Додано", + "addMemberPopup-title": "Учасники", + "memberPopup-title": "Налаштування учасників", + "admin": "Адміністратор", + "admin-desc": "Може переглядати і редагувати картки, видаляти учасників та змінювати налаштування для дошки.", "admin-announcement": "Оголошення", - "admin-announcement-active": "Active System-Wide Announcement", - "admin-announcement-title": "Announcement from Administrator", + "admin-announcement-active": "Активне системне оголошення", + "admin-announcement-title": "Оголошення адміністратора", "all-boards": "Всі дошки", - "and-n-other-card": "та __count__ інших карток", - "and-n-other-card_plural": "та __count__ інших карток", - "apply": "Прийняти", - "app-is-offline": "Завантаження, будь ласка, зачекайте. Оновлення сторінки призведе до втрати даних. Якщо завантаження не працює, перевірте, чи не зупинився сервер.", - "app-try-reconnect": "Повторити зєднання.", - "archive": "Перенести до Архіву", - "archive-all": "Перенести Все до Архіву", - "archive-board": "Перенести Дошку до Архіву", - "archive-card": "Перенести Картку до Архіву", - "archive-list": "Перенести Список до Архіву", - "archive-swimlane": "Move Swimlane to Archive", - "archive-selection": "Move selection to Archive", - "archiveBoardPopup-title": "Перенести Дошку до Архіву?", + "and-n-other-card": "і ще __count__ картка", + "and-n-other-card_plural": "і ще __count__ картки", + "apply": "Застосувати", + "app-is-offline": "Додаток офлайн. Зачекайте, будь ласка.", + "app-try-reconnect": "Спробувати з'єднатися знову", + "archive": "Перенести до архіву", + "archive-all": "Перенести все до архіву", + "archive-board": "Перенести дошку до архіву", + "archive-card": "Перенести картку до архіву", + "archive-list": "Перенести список до архіву", + "archive-swimlane": "Перенести доріжку до архіву", + "archive-selection": "Перенести вибране до архіву", + "archiveBoardPopup-title": "Перенести дошку до архіву?", "archived-items": "Архів", - "archived-boards": "Дошки в архіві", + "archived-boards": "Архівні дошки", "restore-board": "Відновити дошку", - "no-archived-boards": "Немає дошок в архіві", + "no-archived-boards": "Немає архівних дошок", "archives": "Архів", "template": "Шаблон", "templates": "Шаблони", - "template-container": "Template Container", - "add-template-container": "Add Template Container", + "template-container": "Шаблон контейнера", + "add-template-container": "Додати шаблон контейнера", "assign-member": "Призначити користувача", - "attached": "доданно", + "attached": "додано", "attachment": "Додаток", - "attachment-delete-pop": "Видалення Додатку безповоротне. Тут нема відміні (undo).", - "attachmentDeletePopup-title": "Видалити Додаток?", + "attachment-delete-pop": "Видалення додатку безповоротне. Відмінити не можна.", + "attachmentDeletePopup-title": "Видалити додаток?", "attachments": "Додатки", "auto-watch": "Автоматично дивитися дошки, коли вони створені", - "avatar-too-big": "The avatar is too large (__size__ max)", + "avatar-too-big": "Аватар надто великий (__size__max)", "back": "Назад", "board-change-color": "Змінити колір", - "board-change-background-image": "Change Background Image", - "board-background-image-url": "Background Image URL", - "add-background-image": "Add Background Image", - "remove-background-image": "Remove Background Image", - "show-at-all-boards-page" : "Show at All Boards page", - "board-info-on-my-boards" : "All Boards Settings", - "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", - "boardInfoOnMyBoards-title": "All Boards Settings", - "show-card-counter-per-list": "Show card count per list", - "show-board_members-avatar": "Show Board members avatars", - "board-nb-stars": "%s stars", + "board-change-background-image": "Змінити фонове зображення", + "board-background-image-url": "Посилання на фонове зображення", + "add-background-image": "Додати фонове зображення", + "remove-background-image": "Видалити фонове зображення", + "show-at-all-boards-page" : "Показувати на сторінці всіх дошок", + "board-info-on-my-boards" : "Налаштування всіх дошок", + "boardInfoOnMyBoardsPopup-title" : "Налаштування всіх дошок", + "boardInfoOnMyBoards-title": "Налаштування всіх дошок", + "show-card-counter-per-list": "Показувати кількість карток у списку", + "show-board_members-avatar": "Показати аватари учасників дошки", + "board-nb-stars": "%s зірок", "board-not-found": "Дошка не знайдена", - "board-private-info": "This board will be <strong>private</strong>.", - "board-public-info": "This board will be <strong>public</strong>.", - "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.", - "boardChangeColorPopup-title": "Змінити Фон Дошки", - "boardChangeBackgroundImagePopup-title": "Change Background Image", + "board-private-info": "Ця дошка буде <strong>приватною</strong>.", + "board-public-info": "Ця дошка буде <strong>публічною</strong>.", + "board-drag-drop-reorder-or-click-open": "Перетягніть та відпустіть, щоб змінити порядок іконок дошок. Натисніть на іконку дошки, щоб відкрити дошку.", + "boardChangeColorPopup-title": "Змінити фон дошки", + "boardChangeBackgroundImagePopup-title": "Змінити фонове зображення", "allBoardsChangeColorPopup-title": "Змінити колір", - "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeBackgroundImagePopup-title": "Змінити фонове зображення", "boardChangeTitlePopup-title": "Перейменувати дошку", - "boardChangeVisibilityPopup-title": "Change Visibility", - "boardChangeWatchPopup-title": "Change Watch", - "boardMenuPopup-title": "Board Settings", + "boardChangeVisibilityPopup-title": "Змінити налаштування видимості", + "boardChangeWatchPopup-title": "Змінити налаштування спостереження", + "boardMenuPopup-title": "Налаштування дошки", "allBoardsMenuPopup-title": "Налаштування", - "boardChangeViewPopup-title": "Вид Дошки", + "boardChangeViewPopup-title": "Вид дошки", "boards": "Дошки", - "board-view": "Вид Дошки", + "board-view": "Вид дошки", "board-view-cal": "Календар", - "board-view-swimlanes": "Swimlanes", - "board-view-collapse": "Collapse", - "board-view-gantt": "Gantt", - "board-view-lists": "Lists", - "bucket-example": "Like “Bucket List” for example", - "cancel": "Відміна", - "card-archived": "This card is moved to Archive.", - "board-archived": "This board is moved to Archive.", - "card-comments-title": "This card has %s comment.", + "board-view-swimlanes": "Свімлейни", + "board-view-collapse": "Згорнути", + "board-view-gantt": "Гантт", + "board-view-lists": "Списки", + "bucket-example": "Наприклад, 'Список бажань'", + "cancel": "Скасувати", + "card-archived": "Цю картку переміщено до архіву.", + "board-archived": "Цю дошку переміщено до архіву.", + "card-comments-title": "Ця картка має %s коментар.", "card-delete-notice": "Цю дію неможливо буде скасувати. Всі зміни, які ви вносили в картку будуть втрачені.", "card-delete-pop": "Усі дії буде видалено з каналу активності, і ви не зможете повторно відкрити картку. Цю дію не можна скасувати.", "card-delete-suggest-archive": "Ви можете перемістити картку до архіву, щоб прибрати її з дошки, зберігаючи всю історію дій учасників.", - "card-archive-pop": "Card will not be visible at this list after archiving card.", - "card-archive-suggest-cancel": "You can later restore card from Archive.", - "card-due": "Due", - "card-due-on": "Due on", + "card-archive-pop": "Картка не буде видимою у цьому списку після переміщення до архіву.", + "card-archive-suggest-cancel": "Пізніше ви зможете відновити картку з архіву.", + "card-due": "Термін", + "card-due-on": "Термін на", "card-spent": "Витрачено часу", - "card-edit-attachments": "Edit attachments", - "card-edit-custom-fields": "Edit custom fields", + "card-edit-attachments": "Змінити вкладення", + "card-edit-custom-fields": "Редагувати налаштування", "card-edit-labels": "Редагувати мітки", "card-edit-members": "Редагувати учасників", - "card-labels-title": "Change the labels for the card.", - "card-members-title": "Add or remove members of the board from the card.", - "card-start": "Start", - "card-start-on": "Starts on", - "cardAttachmentsPopup-title": "Attach From", - "cardCustomField-datePopup-title": "Change date", - "cardCustomFieldsPopup-title": "Edit custom fields", - "cardStartVotingPopup-title": "Start a vote", - "positiveVoteMembersPopup-title": "Proponents", - "negativeVoteMembersPopup-title": "Opponents", - "card-edit-voting": "Edit voting", - "editVoteEndDatePopup-title": "Change vote end date", - "allowNonBoardMembers": "Allow all logged in users", - "vote-question": "Voting question", - "vote-public": "Show who voted what", - "vote-for-it": "for it", - "vote-against": "against", - "deleteVotePopup-title": "Delete vote?", - "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.", - "cardStartPlanningPokerPopup-title": "Start a Planning Poker", - "card-edit-planning-poker": "Edit Planning Poker", - "editPokerEndDatePopup-title": "Change Planning Poker vote end date", - "poker-question": "Planning Poker", + "card-labels-title": "Змінити мітки для картки.", + "card-members-title": "Додати або видалити учасників дошки з картки.", + "card-start": "Початок", + "card-start-on": "Початок з", + "cardAttachmentsPopup-title": "Приєднати з", + "cardCustomField-datePopup-title": "Змінити дату", + "cardCustomFieldsPopup-title": "Редагувати налаштування", + "cardStartVotingPopup-title": "Розпочати голосування", + "positiveVoteMembersPopup-title": "Прихильники", + "negativeVoteMembersPopup-title": "Противники", + "card-edit-voting": "Редагувати голосування", + "editVoteEndDatePopup-title": "Змінити кінцеву дату голосування", + "allowNonBoardMembers": "Дозволити усім авторизованим користувачам", + "vote-question": "Питання для голосування", + "vote-public": "Показати, хто як голосував", + "vote-for-it": "за це", + "vote-against": "проти", + "deleteVotePopup-title": "Видалити голосування?", + "vote-delete-pop": "Видалення є безповоротним. Ви втратите всі дії, пов'язані з цим голосуванням.", + "cardStartPlanningPokerPopup-title": "Розпочати планувальний покер", + "card-edit-planning-poker": "Редагувати планувальний покер", + "editPokerEndDatePopup-title": "Змінити кінцеву дату голосування в планувальному покері", + "poker-question": "Планувальний покер", "poker-one": "1", "poker-two": "2", "poker-three": "3", @@ -228,1023 +231,1042 @@ "poker-forty": "40", "poker-oneHundred": "100", "poker-unsure": "?", - "poker-finish": "Finish", - "poker-result-votes": "Votes", - "poker-result-who": "Who", - "poker-replay": "Replay", - "set-estimation": "Set Estimation", - "deletePokerPopup-title": "Delete planning poker?", - "poker-delete-pop": "Deleting is permanent. You will lose all actions associated with this planning poker.", + "poker-finish": "Завершити", + "poker-result-votes": "Голоси", + "poker-result-who": "Хто", + "poker-replay": "Повторити", + "set-estimation": "Встановити оцінку", + "deletePokerPopup-title": "Видалити планувальний покер?", + "poker-delete-pop": "Видалення є безповоротним. Ви втратите всі дії, пов'язані з цим планувальним покером.", "cardDeletePopup-title": "Видалити картку?", - "cardArchivePopup-title": "Archive Card?", - "cardDetailsActionsPopup-title": "Card Actions", - "cardLabelsPopup-title": "Labels", - "cardMembersPopup-title": "Користувачі", - "cardMorePopup-title": "More", - "cardTemplatePopup-title": "Create template", + "cardArchivePopup-title": "Заархівувати картку?", + "cardDetailsActionsPopup-title": "Дії з карткою", + "cardLabelsPopup-title": "Мітки", + "cardMembersPopup-title": "Учасники", + "cardMorePopup-title": "Більше", + "cardTemplatePopup-title": "Створити шаблон", "cards": "Картки", "cards-count": "Картки", "cards-count-one": "Картка", - "casSignIn": "Sign In with CAS", + "casSignIn": "Увійти за допомогою CAS", "cardType-card": "Картка", - "cardType-linkedCard": "Linked Card", - "cardType-linkedBoard": "Linked Board", + "cardType-linkedCard": "Пов'язана картка", + "cardType-linkedBoard": "Пов'язана дошка", "change": "Змінити", "change-avatar": "Змінити аватар", "change-password": "Змінити пароль", - "change-permissions": "Change permissions", + "change-permissions": "Змінити права доступу", "change-settings": "Змінити налаштування", "changeAvatarPopup-title": "Змінити аватар", "changeLanguagePopup-title": "Змінити мову", "changePasswordPopup-title": "Змінити пароль", - "changePermissionsPopup-title": "Change Permissions", + "changePermissionsPopup-title": "Змінити права доступу", "changeSettingsPopup-title": "Змінити налаштування", "subtasks": "Підзадачі", - "checklists": "Checklists", - "click-to-star": "Click to star this board.", - "click-to-unstar": "Click to unstar this board.", - "clipboard": "Clipboard or drag & drop", + "checklists": "Контрольні списки", + "click-to-star": "Натисніть, щоб відзначити цю дошку зірочкою.", + "click-to-unstar": "Натисніть, щоб видалити зірочку з цієї дошки.", + "click-to-enable-auto-width": "Автоматична ширина списку вимкнена. Натисніть, щоб увімкнути.", + "click-to-disable-auto-width": "Увімкнено автоматичну ширину списку. Натисніть, щоб вимкнути.", + "auto-list-width": "Автоматична ширина списку", + "clipboard": "Буфер обміну або перетягнути і відпустити", "close": "Закрити", - "close-board": "Close Board", - "close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.", - "close-card": "Close Card", + "close-board": "Закрити дошку", + "close-board-pop": "Ви зможете відновити дошку, натиснувши кнопку «Архів» в заголовку домашньої сторінки.", + "close-card": "Закрити картку", "color-black": "чорний", "color-blue": "синій", - "color-crimson": "crimson", - "color-darkgreen": "darkgreen", - "color-gold": "gold", - "color-gray": "gray", + "color-crimson": "малиновий", + "color-darkgreen": "темно-зелений", + "color-gold": "золотий", + "color-gray": "сірий", "color-green": "зелений", - "color-indigo": "indigo", + "color-indigo": "індиго", "color-lime": "лайм", - "color-magenta": "magenta", - "color-mistyrose": "mistyrose", - "color-navy": "navy", + "color-magenta": "пурпурний", + "color-mistyrose": "тьмяно-рожевий", + "color-navy": "темно-синій", "color-orange": "помаранчевий", - "color-paleturquoise": "paleturquoise", - "color-peachpuff": "peachpuff", + "color-paleturquoise": "блідо-бірюзовий", + "color-peachpuff": "персиковий", "color-pink": "рожевий", - "color-plum": "plum", + "color-plum": "сливовий", "color-purple": "фіолетовий", "color-red": "червоний", - "color-saddlebrown": "saddlebrown", - "color-silver": "silver", - "color-sky": "sky", - "color-slateblue": "slateblue", - "color-white": "white", + "color-saddlebrown": "шкіряно-коричневий", + "color-silver": "срібний", + "color-sky": "голубий", + "color-slateblue": "сіро-голубий", + "color-white": "білий", "color-yellow": "жовтий", - "unset-color": "Unset", + "unset-color": "Скасувати колір", + "comments": "Коментарі", "comment": "Коментар", "comment-placeholder": "Написати коментар", - "comment-only": "Comment only", - "comment-only-desc": "Can comment on cards only.", - "comment-delete": "Are you sure you want to delete the comment?", - "deleteCommentPopup-title": "Delete comment?", + "comment-only": "Тільки коментарі", + "comment-only-desc": "Може коментувати тільки картки.", + "comment-delete": "Ви впевнені, що хочете видалити коментар?", + "deleteCommentPopup-title": "Видалити коментар?", "no-comments": "Немає коментарів", - "no-comments-desc": "Can not see comments and activities.", - "worker": "Worker", - "worker-desc": "Can only move cards, assign itself to card and comment.", - "computer": "Computer", - "confirm-subtask-delete-popup": "Are you sure you want to delete subtask?", - "confirm-checklist-delete-popup": "Are you sure you want to delete the checklist?", - "subtaskDeletePopup-title": "Delete Subtask?", - "checklistDeletePopup-title": "Delete Checklist?", + "no-comments-desc": "Не може бачити коментарі та активність.", + "worker": "Робітник", + "worker-desc": "Може тільки переміщати картки, призначати себе до картки і коментувати.", + "computer": "Комп'ютер", + "confirm-subtask-delete-popup": "Ви впевнені, що хочете видалити підзадачу?", + "confirm-checklist-delete-popup": "Ви впевнені, що хочете видалити контрольний список?", + "subtaskDeletePopup-title": "Видалити підзадачу?", + "checklistDeletePopup-title": "Видалити контрольний список?", "copy-card-link-to-clipboard": "Скопіювати посилання на картку в буфер обміну", - "copy-text-to-clipboard": "Copy text to clipboard", - "linkCardPopup-title": "Link Card", - "searchElementPopup-title": "Шукати", - "copyCardPopup-title": "Copy Card", - "copyManyCardsPopup-title": "Copy Template to Many Cards", - "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", - "copyManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", - "create": "Create", - "createBoardPopup-title": "Create Board", - "chooseBoardSourcePopup-title": "Import board", - "createLabelPopup-title": "Create Label", - "createCustomField": "Create Field", - "createCustomFieldPopup-title": "Create Field", - "current": "current", - "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", - "custom-field-checkbox": "Checkbox", - "custom-field-currency": "Currency", - "custom-field-currency-option": "Currency Code", + "copy-text-to-clipboard": "Скопіювати текст у буфер обміну", + "linkCardPopup-title": "Зв'язати картку", + "searchElementPopup-title": "Пошук", + "copyCardPopup-title": "Скопіювати картку", + "copyManyCardsPopup-title": "Скопіювати шаблон на багато карток", + "copyManyCardsPopup-instructions": "Заголовки та описи карток призначення у цьому JSON форматі", + "copyManyCardsPopup-format": "[{\"title\": \"Перший заголовок картки\", \"description\":\"Перший опис картки\"}, {\"title\":\"Другий заголовок картки\",\"description\":\"Другий опис картки\"},{\"title\":\"Останній заголовок картки\",\"description\":\"Останній опис картки\"} ]", + "create": "Створити", + "createBoardPopup-title": "Створити дошку", + "chooseBoardSourcePopup-title": "Імпортувати дошку", + "createLabelPopup-title": "Створити мітку", + "createCustomField": "Створити поле", + "createCustomFieldPopup-title": "Створити поле", + "current": "поточний", + "custom-field-delete-pop": "Немає відкату. Це видалить це налаштоване поле з усіх карток і знищить його історію.", + "custom-field-checkbox": "Прапорець", + "custom-field-currency": "Валюта", + "custom-field-currency-option": "Код валюти", "custom-field-date": "Дата", - "custom-field-dropdown": "Dropdown List", - "custom-field-dropdown-none": "(none)", - "custom-field-dropdown-options": "List Options", - "custom-field-dropdown-options-placeholder": "Press enter to add more options", - "custom-field-dropdown-unknown": "(unknown)", + "custom-field-dropdown": "Випадаючий список", + "custom-field-dropdown-none": "(жодного)", + "custom-field-dropdown-options": "Опції списку", + "custom-field-dropdown-options-placeholder": "Натисніть enter, щоб додати більше опцій", + "custom-field-dropdown-unknown": "(невідомо)", "custom-field-number": "Номер", "custom-field-text": "Текст", - "custom-fields": "Custom Fields", + "custom-fields": "Налаштовані поля", "date": "Дата", "decline": "Відхилити", "default-avatar": "Аватар за замовчуванням", "delete": "Видалити", - "deleteCustomFieldPopup-title": "Delete Custom Field?", - "deleteLabelPopup-title": "Delete Label?", + "deleteCustomFieldPopup-title": "Видалити налаштоване поле?", + "deleteLabelPopup-title": "Видалити мітку?", "description": "Опис", - "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", - "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", - "discard": "Відхилити", - "done": "Done", + "disambiguateMultiLabelPopup-title": "Розрізнити дію мітки", + "disambiguateMultiMemberPopup-title": "Розрізнити дію учасника", + "discard": "Відкинути", + "done": "Виконано", "download": "Завантажити", "edit": "Редагувати", "edit-avatar": "Змінити аватар", - "edit-profile": "Редагувати Профіль", - "edit-wip-limit": "Edit WIP Limit", - "soft-wip-limit": "Soft WIP Limit", - "editCardStartDatePopup-title": "Change start date", - "editCardDueDatePopup-title": "Change due date", - "editCustomFieldPopup-title": "Edit Field", - "addReactionPopup-title": "Add reaction", - "editCardSpentTimePopup-title": "Change spent time", - "editLabelPopup-title": "Change Label", - "editNotificationPopup-title": "Edit Notification", - "editProfilePopup-title": "Редагувати Профіль", + "edit-profile": "Редагувати профіль", + "edit-wip-limit": "Редагувати ліміт WIP", + "soft-wip-limit": "М'який ліміт WIP", + "editCardStartDatePopup-title": "Змінити дату початку", + "editCardDueDatePopup-title": "Змінити кінцеву дату", + "editCustomFieldPopup-title": "Редагувати поле", + "addReactionPopup-title": "Додати реакцію", + "editCardSpentTimePopup-title": "Змінити витрачений час", + "editLabelPopup-title": "Змінити мітку", + "editNotificationPopup-title": "Редагувати сповіщення", + "editProfilePopup-title": "Редагувати профіль", "email": "Email", - "email-enrollAccount-subject": "An account created for you on __siteName__", - "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", - "email-fail": "Sending email failed", - "email-fail-text": "Error trying to send email", - "email-invalid": "Invalid email", - "email-invite": "Invite via Email", - "email-invite-subject": "__inviter__ sent you an invitation", - "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", - "email-resetPassword-subject": "Reset your password on __siteName__", - "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", - "email-sent": "Email sent", - "email-verifyEmail-subject": "Verify your email address on __siteName__", - "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", - "enable-wip-limit": "Enable WIP Limit", - "error-board-doesNotExist": "This board does not exist", - "error-board-notAdmin": "You need to be admin of this board to do that", - "error-board-notAMember": "You need to be a member of this board to do that", - "error-json-malformed": "Your text is not valid JSON", - "error-json-schema": "Your JSON data does not include the proper information in the correct format", - "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ", - "error-list-doesNotExist": "This list does not exist", - "error-user-doesNotExist": "This user does not exist", - "error-user-notAllowSelf": "You can not invite yourself", - "error-user-notCreated": "This user is not created", - "error-username-taken": "This username is already taken", - "error-orgname-taken": "This organization name is already taken", - "error-teamname-taken": "This team name is already taken", - "error-email-taken": "Email has already been taken", - "export-board": "Export board", - "export-board-json": "Export board to JSON", - "export-board-csv": "Export board to CSV", - "export-board-tsv": "Export board to TSV", - "export-board-excel": "Export board to Excel", - "user-can-not-export-excel": "User can not export Excel", - "export-board-html": "Export board to HTML", - "export-card": "Export card", - "export-card-pdf": "Export card to PDF", - "user-can-not-export-card-to-pdf": "User can not export card to PDF", - "exportBoardPopup-title": "Export board", - "exportCardPopup-title": "Export card", - "sort": "Sort", - "sorted": "Sorted", - "remove-sort": "Remove sort", - "sort-desc": "Click to Sort List", - "list-sort-by": "Sort the List By:", - "list-label-modifiedAt": "Last Access Time", - "list-label-title": "Name of the List", - "list-label-sort": "Your Manual Order", + "email-enrollAccount-subject": "Акаунт створений для вас на __siteName__", + "email-enrollAccount-text": "Привіт __user__,\n\nЩоб почати користуватися сервісом, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.", + "email-fail": "Невдача при відправленні email", + "email-fail-text": "Помилка при спробі відправити email", + "email-invalid": "Неправильний email", + "email-invite": "Запрошення через email", + "email-invite-subject": "__inviter__ відправив вам запрошення", + "email-invite-text": "Дорогий __user__,\n\n__inviter__ запрошує вас приєднатися до дошки \"__board__\" для співпраці.\n\nБудь ласка, перейдіть за посиланням нижче:\n\n__url__\n\nДякуємо.", + "email-resetPassword-subject": "Скинути пароль на __siteName__", + "email-resetPassword-text": "Привіт __user__,\n\nЩоб скинути пароль, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.", + "email-sent": "Email відправлений", + "email-verifyEmail-subject": "Підтвердіть вашу email адресу на __siteName__", + "email-verifyEmail-text": "Привіт __user__,\n\nЩоб підтвердити ваш акаунт email, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.", + "enable-vertical-scrollbars": "Увімкнути вертикальні скроллбари", + "enable-wip-limit": "Увімкнути ліміт WIP", + "error-board-doesNotExist": "Ця дошка не існує", + "error-board-notAdmin": "Вам потрібно бути адміністратором цієї дошки, щоб зробити це", + "error-board-notAMember": "Вам потрібно бути учасником цієї дошки, щоб зробити це", + "error-json-malformed": "Ваш текст не є дійсним JSON", + "error-json-schema": "Ваш JSON не включає інформації у коректному форматі", + "error-csv-schema": "Ваш CSV(Comma Separated Values)/TSV(Tab Separated Values) не включає інформації у коректному форматі", + "error-list-doesNotExist": "Цей список не існує", + "error-user-doesNotExist": "Цей користувач не існує", + "error-user-notAllowSelf": "Ви не можете запросити себе", + "error-user-notCreated": "Цей користувач не створений", + "error-username-taken": "Це ім'я користувача вже зайняте", + "error-orgname-taken": "Ця назва організації вже зайнята", + "error-teamname-taken": "Ця назва команди вже зайнята", + "error-email-taken": "Email вже зайнятий", + "export-board": "Експортувати дошку", + "export-board-json": "Експортувати дошку в JSON", + "export-board-csv": "Експортувати дошку в CSV", + "export-board-tsv": "Експортувати дошку в TSV", + "export-board-excel": "Експортувати дошку в Excel", + "user-can-not-export-excel": "Користувач не може експортувати Excel", + "export-board-html": "Експортувати дошку в HTML", + "export-card": "Експортувати картку", + "export-card-pdf": "Експортувати картку в PDF", + "user-can-not-export-card-to-pdf": "Користувач не може експортувати картку в PDF", + "exportBoardPopup-title": "Експортувати дошку", + "exportCardPopup-title": "Експортувати картку", + "sort": "Сортувати", + "sorted": "Відсортовано", + "remove-sort": "Прибрати сортування", + "sort-desc": "Натисніть для сортування списку", + "list-sort-by": "Сортувати список за:", + "list-label-modifiedAt": "Час останнього доступу", + "list-label-title": "Назва списку", + "list-label-sort": "Ваше ручне впорядкування", "list-label-short-modifiedAt": "(L)", "list-label-short-title": "(N)", "list-label-short-sort": "(M)", - "filter": "Filter", - "filter-cards": "Filter Cards or Lists", - "filter-dates-label": "Filter by date", - "filter-no-due-date": "No due date", - "filter-overdue": "Overdue", - "filter-due-today": "Due today", - "filter-due-this-week": "Due this week", - "filter-due-next-week": "Due next week", - "filter-due-tomorrow": "Due tomorrow", - "list-filter-label": "Filter List by Title", - "filter-clear": "Clear filter", - "filter-labels-label": "Filter by label", - "filter-no-label": "No label", - "filter-member-label": "Filter by member", - "filter-no-member": "No member", - "filter-assignee-label": "Filter by assignee", - "filter-no-assignee": "No assignee", - "filter-custom-fields-label": "Filter by Custom Fields", - "filter-no-custom-fields": "No Custom Fields", - "filter-show-archive": "Show archived lists", - "filter-hide-empty": "Hide empty lists", - "filter-on": "Filter is on", - "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", - "filter-to-selection": "Filter to selection", - "other-filters-label": "Other Filters", - "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", - "fullname": "Full Name", - "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", - "headerBarCreateBoardPopup-title": "Create Board", - "home": "Home", - "import": "Import", - "impersonate-user": "Impersonate user", - "link": "Link", - "import-board": "import board", - "import-board-c": "Import board", - "import-board-title-trello": "Import board from Trello", - "import-board-title-wekan": "Import board from previous export", - "import-board-title-csv": "Import board from CSV/TSV", - "from-trello": "From Trello", - "from-wekan": "From previous export", - "from-csv": "From CSV/TSV", - "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.", - "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .", - "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.", - "import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.", - "import-json-placeholder": "Paste your valid JSON data here", - "import-csv-placeholder": "Paste your valid CSV/TSV data here", - "import-map-members": "Map members", - "import-members-map": "Your imported board has some members. Please map the members you want to import to your users", - "import-members-map-note": "Note: Unmapped members will be assigned to the current user.", - "import-show-user-mapping": "Review members mapping", - "import-user-select": "Pick your existing user you want to use as this member", - "importMapMembersAddPopup-title": "Select member", - "info": "Версія", - "initials": "Initials", - "invalid-date": "Invalid date", - "invalid-time": "Invalid time", - "invalid-user": "Invalid user", - "joined": "приєднано", + "filter": "Фільтр", + "filter-cards": "Фільтрувати картки або списки", + "filter-dates-label": "Фільтр за датою", + "filter-no-due-date": "Без терміну", + "filter-overdue": "Прострочено", + "filter-due-today": "Термін сьогодні", + "filter-due-this-week": "Термін цього тижня", + "filter-due-next-week": "Зробити наступного тижня", + "filter-due-tomorrow": "Термін завтра", + "list-filter-label": "Фільтрувати список за назвою", + "filter-clear": "Очистити фільтр", + "filter-labels-label": "Фільтр за міткою", + "filter-no-label": "Без мітки", + "filter-member-label": "Фільтр за учасником", + "filter-no-member": "Без учасника", + "filter-assignee-label": "Фільтр за виконавцем", + "filter-no-assignee": "Без виконавця", + "filter-custom-fields-label": "Фільтр за налаштованими полями", + "filter-no-custom-fields": "Без налаштованих полів", + "filter-show-archive": "Показати архівовані списки", + "filter-hide-empty": "Сховати порожні списки", + "filter-on": "Фільтр увімкнено", + "filter-on-desc": "Ви фільтруєте картки на цій дошці. Натисніть тут, щоб редагувати фільтр.", + "filter-to-selection": "Фільтрувати до вибору", + "other-filters-label": "Інші фільтри", + "advanced-filter-label": "Розширений фільтр", + "advanced-filter-description": "Розширений фільтр дозволяє писати рядок, що включає наступні оператори: == != <= => && || () Пробіл використовується як розділювач між операторами. Ви можете фільтрувати для всіх інформацію для всіх користувацьких полів за допомогою написання їхніх імен та значень. Наприклад: Field1=='Value1'. Примітка: якщо поля або значення містять Вам потрібно інкапсулювати їх у одинарні лапки. Наприклад: 'Field 1' == 'Value 1'. Для пропуску окремих керуючих символів (' \\/) можна використовувати \\. Наприклад: Field1 == I\\'m. Також, Ви можете суміщати декілька умов. Наприклад: F1 == V1 || F1 == V2. Зазвичай, всі оператори інтерпретуються зліва направо. Ви можете змінити порядок поставивши дужки. Наприклад: F1 == V1 && (F2 == V2 || F2 == V3). Також ви можете шукати текстові поля використовуючи regex: F1 == /Tes.*/i", + "fullname": "Повне ім'я", + "header-logo-title": "Повернутися на вашу сторінку дошок.", + "show-activities": "Показати дії", + "headerBarCreateBoardPopup-title": "Створити дошку", + "home": "Головна", + "import": "Імпорт", + "impersonate-user": "Втілитися в користувача", + "link": "Посилання", + "import-board": "імпортувати дошку", + "import-board-c": "Імпортувати дошку", + "import-board-title-trello": "Імпортувати дошку з Trello", + "import-board-title-wekan": "Імпортувати дошку з попереднього експорту", + "import-board-title-csv": "Імпортувати дошку з CSV/TSV", + "from-trello": "З Trello", + "from-wekan": "З попереднього експорту", + "from-csv": "З CSV/TSV", + "import-board-instruction-trello": "На вашій дошці Trello перейдіть до 'Меню', потім 'Більше', 'Друк і експорт', 'Експорт JSON' та скопіюйте отриманий текст.", + "import-board-instruction-csv": "Вставте ваші значення, розділені комами (CSV)/ табуляцією (TSV).", + "import-board-instruction-wekan": "На вашій дошці перейдіть до 'Меню', потім 'Експорт дошки', і скопіюйте текст у завантаженому файлі.", + "import-board-instruction-about-errors": "Якщо ви отримаєте помилки під час імпорту дошки, іноді імпорт все ще працює, і дошка з'явиться на сторінці всіх дошок.", + "import-json-placeholder": "Вставте ваші дійсні дані JSON тут", + "import-csv-placeholder": "Вставте ваші дійсні дані CSV/TSV тут", + "import-map-members": "Зіставити учасників", + "import-members-map": "Ваша імпортована дошка має деяких учасників. Будь ласка, зіставте учасників, яких ви хочете імпортувати, з вашими користувачами", + "import-members-map-note": "Примітка: Незіставлені учасники будуть призначені поточному користувачу.", + "import-show-user-mapping": "Переглянути зіставлення учасників", + "import-user-select": "Виберіть вашого існуючого користувача, якого ви хочете використовувати як цього учасника", + "importMapMembersAddPopup-title": "Вибрати учасника", + "info": "Інформація", + "initials": "Ініціали", + "invalid-date": "Невірна дата", + "invalid-time": "Неправильний час", + "invalid-user": "Неправильний користувач", + "joined": "приєднався", "just-invited": "Ви тільки що приєдналися до цієї дошки", - "keyboard-shortcuts": "Keyboard shortcuts", - "label-create": "Create Label", - "label-default": "%s label (default)", - "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", - "labels": "Labels", + "keyboard-shortcuts": "Комбінації клавіш", + "label-create": "Створити мітку", + "label-default": "%s мітка (за замовчуванням)", + "label-delete-pop": "Немає відкату. Це видалить цю мітку з усіх карток і знищить її історію.", + "labels": "Мітки", "language": "Мова", - "last-admin-desc": "Ви не можете змінити ролі, бо повинен бути хоча б один адміністратор", - "leave-board": "Leave Board", - "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", - "leaveBoardPopup-title": "Залишити Дошку?", + "last-admin-desc": "Ви не можете змінити ролі, тому що повинен бути хоча б один адміністратор", + "leave-board": "Залишити дошку", + "leave-board-pop": "Ви впевнені, що хочете залишити __boardTitle__? Ви будете видалені з усіх карток на цій дошці.", + "leaveBoardPopup-title": "Залишити дошку?", "link-card": "Посилання на цю картку", - "list-archive-cards": "Перенести всі картки в цьому переліку до Архиву", - "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.", - "list-move-cards": "Move all cards in this list", - "list-select-cards": "Select all cards in this list", - "set-color-list": "Встановити Колір", - "listActionPopup-title": "List Actions", - "settingsUserPopup-title": "User Settings", - "settingsTeamPopup-title": "Team Settings", - "settingsOrgPopup-title": "Organization Settings", - "swimlaneActionPopup-title": "Swimlane Actions", - "swimlaneAddPopup-title": "Add a Swimlane below", - "listImportCardPopup-title": "Import a Trello card", - "listImportCardsTsvPopup-title": "Import Excel CSV/TSV", - "listMorePopup-title": "More", - "link-list": "Link to this list", - "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", - "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.", - "lists": "Lists", - "swimlanes": "Swimlanes", - "log-out": "Log Out", - "log-in": "Log In", - "loginPopup-title": "Log In", + "list-archive-cards": "Перенести всі картки в цьому списку до архіву", + "list-archive-cards-pop": "Це видалить усі картки в цьому списку з дошки. Щоб переглянути картки в архіві та повернути їх на дошку, натисніть «Меню» > «Архів».", + "list-move-cards": "Перемістити всі картки в цьому списку", + "list-select-cards": "Вибрати всі картки в цьому списку", + "set-color-list": "Встановити колір", + "listActionPopup-title": "Дії зі списком", + "settingsUserPopup-title": "Налаштування користувача", + "settingsTeamPopup-title": "Налаштування команди", + "settingsOrgPopup-title": "Налаштування організації", + "swimlaneActionPopup-title": "Дії зі свімлейном", + "swimlaneAddPopup-title": "Додати свімлейн нижче", + "listImportCardPopup-title": "Імпортувати картку з Trello", + "listImportCardsTsvPopup-title": "Імпортувати Excel CSV/TSV", + "listMorePopup-title": "Більше", + "link-list": "Посилання на цей список", + "list-delete-pop": "Усі дії будуть видалені з каналу активності, і ви не зможете відновити список. Немає відкату.", + "list-delete-suggest-archive": "Ви можете перемістити список до архіву, щоб прибрати його з дошки та зберегти активність.", + "lists": "Списки", + "swimlanes": "Свімлейни", + "log-out": "Вийти", + "log-in": "Увійти", + "loginPopup-title": "Увійти", "memberMenuPopup-title": "Налаштування користувачів", "members": "Користувачі", "menu": "Меню", - "move-selection": "Перенести обране", - "moveCardPopup-title": "Move Card", - "moveCardToBottom-title": "Перенести до Низу", - "moveCardToTop-title": "Перенести на Початок", - "moveSelectionPopup-title": "Перенести обране", - "multi-selection": "Multi-Selection", - "multi-selection-label": "Set label for selection", - "multi-selection-member": "Set member for selection", - "multi-selection-on": "Multi-Selection is on", - "muted": "Muted", - "muted-info": "You will never be notified of any changes in this board", - "my-boards": "My Boards", - "name": "Name", - "no-archived-cards": "No cards in Archive.", - "no-archived-lists": "No lists in Archive.", - "no-archived-swimlanes": "No swimlanes in Archive.", - "no-results": "No results", - "normal": "Normal", - "normal-desc": "Can view and edit cards. Can't change settings.", - "not-accepted-yet": "Invitation not accepted yet", - "notify-participate": "Receive updates to any cards you participate as creator or member", - "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", - "optional": "optional", - "or": "or", - "page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.", - "page-not-found": "Page not found.", - "password": "Password", - "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", - "participating": "Participating", - "preview": "Preview", - "previewAttachedImagePopup-title": "Preview", - "previewClipboardImagePopup-title": "Preview", - "private": "Private", - "private-desc": "Це приватна дошка. Тільки люди, додані до цієї дошки можуть переглядати та редагувати її.", - "profile": "Profile", - "public": "Public", - "public-desc": "Цю дошку можуть переглядати усі, у кого є посилання. Також ця дошка може бути проіндексована пошуковими системами. Вносити зміни можуть тільки учасники.", - "quick-access-description": "Star a board to add a shortcut in this bar.", - "remove-cover": "Remove cover image from minicard", - "remove-from-board": "Remove from Board", - "remove-label": "Remove Label", - "listDeletePopup-title": "Видалити Список?", - "remove-member": "Видалити Учасника", - "remove-member-from-card": "Видалити з Картки", - "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", - "removeMemberPopup-title": "Видалити Учасника?", + "move-selection": "Перенести вибране", + "moveCardPopup-title": "Перемістити картку", + "moveCardToBottom-title": "Перемістити на низ", + "moveCardToTop-title": "Перемістити на початок", + "moveSelectionPopup-title": "Перенести вибране", + "multi-selection": "Мультивибір", + "multi-selection-label": "Встановити мітку для вибору", + "multi-selection-member": "Встановити учасника для вибору", + "multi-selection-on": "Мультивибір увімкнено", + "muted": "Приглушено", + "muted-info": "Ви ніколи не отримаєте сповіщень про будь-які зміни на цій дошці", + "my-boards": "Мої дошки", + "name": "Ім'я", + "no-archived-cards": "Немає карток в архіві.", + "no-archived-lists": "Немає списків в архіві.", + "no-archived-swimlanes": "Немає свімлейнів в архіві.", + "no-results": "Немає результатів", + "normal": "Звичайний", + "normal-desc": "Може переглядати та редагувати картки. Не може змінювати налаштування.", + "not-accepted-yet": "Запрошення ще не прийнято", + "notify-participate": "Отримувати оновлення по будь-яких картках, де ви берете участь як творець або учасник", + "notify-watch": "Отримувати оновлення по будь-яких дошках, списках або картках, за якими ви спостерігаєте", + "optional": "необов'язково", + "or": "або", + "page-maybe-private": "Ця сторінка може бути приватною. Ви можете переглянути її, <a href='%s'>увійшовши в систему</a>.", + "page-not-found": "Сторінку не знайдено.", + "password": "Пароль", + "paste-or-dragdrop": "вставте або перетягніть файл зображення сюди (тільки зображення)", + "participating": "Бере участь", + "preview": "Попередній перегляд", + "previewAttachedImagePopup-title": "Попередній перегляд", + "previewClipboardImagePopup-title": "Попередній перегляд", + "private": "Приватна", + "private-desc": "Це приватна дошка. Тільки люди, додані до цієї дошки, можуть переглядати та редагувати її.", + "profile": "Профіль", + "public": "Публічна", + "public-desc": "Цю дошку можуть переглядати всі, у кого є посилання. Також ця дошка може бути проіндексована пошуковими системами. Зміни можуть вносити тільки учасники.", + "quick-access-description": "Додайте зірочку до дошки, щоб створити ярлик на цій панелі.", + "remove-cover": "Видалити фонове зображення з міні-картки", + "remove-from-board": "Видалити з дошки", + "remove-label": "Видалити мітку", + "listDeletePopup-title": "Видалити список?", + "remove-member": "Видалити учасника", + "remove-member-from-card": "Видалити з картки", + "remove-member-pop": "Видалити __name__ (__username__) з __boardTitle__? Учасника буде видалено з усіх карток на цій дошці. Він отримає повідомлення.", + "removeMemberPopup-title": "Видалити учасника?", "rename": "Перейменувати", "rename-board": "Перейменувати дошку", "restore": "Відновити", - "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions", - "rescue-card-description-dialogue": "Overwrite current card description with your changes?", + "rescue-card-description": "Показувати діалог виправлення перед закриттям для незбережених описів карток", + "rescue-card-description-dialogue": "Перезаписати поточний опис картки вашими змінами?", "save": "Зберегти", "search": "Шукати", "rules": "Правила", - "search-cards": "Search from card/list titles, descriptions and custom fields on this board", - "search-example": "Write text you search and press Enter", - "select-color": "Оберіть Коліп", - "select-board": "Оберіть Дошку", - "set-wip-limit-value": "Встановіть обмеження максимальної кількості завдань в цьому списку", - "setWipLimitPopup-title": "Set WIP Limit", + "search-cards": "Пошук по заголовках карток/списків, описах та налаштованих полях на цій дошці", + "search-example": "Введіть текст для пошуку та натисніть Enter", + "select-color": "Обрати колір", + "select-board": "Обрати дошку", + "set-wip-limit-value": "Встановіть ліміт максимальної кількості завдань у цьому списку", + "setWipLimitPopup-title": "Встановити WIP ліміт", + "shortcut-add-self": "Додати себе до поточної картки", "shortcut-assign-self": "Призначити себе до поточної картки", - "shortcut-autocomplete-emoji": "Autocomplete emoji", + "shortcut-autocomplete-emoji": "Автозаповнення емодзі", "shortcut-autocomplete-members": "Автозавершення учасників", - "shortcut-clear-filters": "Clear all filters", - "shortcut-close-dialog": "Close Dialog", + "shortcut-clear-filters": "Очистити всі фільтри", + "shortcut-close-dialog": "Закрити діалог", "shortcut-filter-my-cards": "Фільтрувати мої картки", - "shortcut-filter-my-assigned-cards": "Filter my assigned cards", - "shortcut-show-shortcuts": "Bring up this shortcuts list", - "shortcut-toggle-filterbar": "Перемкнути бічну панель Фільтра", - "shortcut-toggle-searchbar": "Перемкнути бічну панель Пошуку", - "shortcut-toggle-sidebar": "Перемкнути бічну панель Дошки", - "show-cards-minimum-count": "Показувати кількість карток, якщо список містить більше, ніж", - "sidebar-open": "Відкрити бокову панель", - "sidebar-close": "Закрити бокову панель", - "signupPopup-title": "Створити Обліковий запис", - "star-board-title": "Click to star this board. It will show up at top of your boards list.", - "starred-boards": "Starred Boards", - "starred-boards-description": "Starred boards show up at the top of your boards list.", - "subscribe": "Subscribe", + "shortcut-filter-my-assigned-cards": "Фільтрувати мої призначені картки", + "shortcut-show-shortcuts": "Показати цей список ярликів", + "shortcut-toggle-filterbar": "Перемкнути бічну панель фільтра", + "shortcut-toggle-searchbar": "Перемкнути бічну панель пошуку", + "shortcut-toggle-sidebar": "Перемкнути бічну панель дошки", + "show-cards-minimum-count": "Показувати кількість карток, якщо список містить більше, ніж", + "sidebar-open": "Відкрити бічну панель", + "sidebar-close": "Закрити бічну панель", + "signupPopup-title": "Створити обліковий запис", + "star-board-title": "Натисніть, щоб додати дошку до обраних. Вона з'явиться у верхній частині списку ваших дошок.", + "starred-boards": "Обрані дошки", + "starred-boards-description": "Обрані дошки з'являються вгорі вашого списку дошок.", + "subscribe": "Підписатися", "team": "Команда", "this-board": "ця дошка", "this-card": "ця картка", - "spent-time-hours": "Витрачено часу(годин)", - "overtime-hours": "Overtime (hours)", - "overtime": "Overtime", - "has-overtime-cards": "Has overtime cards", - "has-spenttime-cards": "Has spent time cards", + "spent-time-hours": "Витрачено часу (години)", + "overtime-hours": "Надурочний час (години)", + "overtime": "Надурочний час", + "has-overtime-cards": "Має картки з надурочним часом", + "has-spenttime-cards": "Має картки з витраченим часом", "time": "Час", - "title": "Title", - "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", - "remove-labels-multiselect": "Multi-Selection removes labels 1-9", - "tracking": "Tracking", - "tracking-info": "Ви будете повідомлені про будь-які зміни в тих картках, в яких ви є творцем або учасником.", + "title": "Назва", + "toggle-assignees": "Перемикання призначень 1-9 для картки (за порядком додавання на дошку)", + "toggle-labels": "Перемкнути мітки 1-9 для картки. Мультивибір додає мітки 1-9", + "remove-labels-multiselect": "Мультивибір видаляє мітки 1-9", + "tracking": "Відстеження", + "tracking-info": "Ви будете повідомлені про будь-які зміни у тих картках, в яких ви є творцем або учасником.", "type": "Тип", - "unassign-member": "Unassign member", - "unsaved-description": "Ви маєте незбрежений опис", - "unwatch": "Unwatch", + "unassign-member": "Відв'язати учасника", + "unsaved-description": "У вас є незбережений опис", + "unwatch": "Припинити спостереження", "upload": "Завантажити", "upload-avatar": "Завантажити аватар", "uploaded-avatar": "Завантажений аватар", - "custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL", - "custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL", - "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", - "custom-login-logo-image-url": "Custom Login Logo Image URL", - "custom-login-logo-link-url": "Custom Login Logo Link URL", - "custom-help-link-url": "Custom Help Link URL", - "text-below-custom-login-logo": "Text below Custom Login Logo", - "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", - "username": "Username", - "import-usernames": "Import Usernames", + "custom-top-left-corner-logo-image-url": "Спеціальне зображення логотипу в лівому верхньому кутку", + "custom-top-left-corner-logo-link-url": "Спеціальне посилання на логотип у лівому верхньому кутку", + "custom-top-left-corner-logo-height": "Спеціальна висота логотипу в лівому верхньому кутку. За замовчуванням: 27", + "custom-login-logo-image-url": "Спеціальне зображення логотипу на сторінці входу", + "custom-login-logo-link-url": "Спеціальне посилання на логотип на сторінці входу", + "custom-help-link-url": "Спеціальне посилання на довідку", + "text-below-custom-login-logo": "Текст під спеціальним логотипом на сторінці входу", + "automatic-linked-url-schemes": "Спеціальні URL-схеми, які автоматично мають бути клікабельними. Одна URL-схема на рядок", + "username": "Ім'я користувача", + "import-usernames": "Імпортувати імена користувачів", "view-it": "Переглянути це", - "warn-list-archived": "warning: this card is in an list at Archive", - "watch": "Watch", - "watching": "Watching", - "watching-info": "You will be notified of any change in this board", - "welcome-board": "Welcome Board", - "welcome-swimlane": "Milestone 1", - "welcome-list1": "Basics", - "welcome-list2": "Advanced", - "card-templates-swimlane": "Card Templates", - "list-templates-swimlane": "List Templates", - "board-templates-swimlane": "Шаблони Дошок", + "warn-list-archived": "попередження: ця картка знаходиться у списку в Архіві", + "watch": "Спостерігати", + "watching": "Спостереження", + "watching-info": "Ви будете повідомлені про будь-які зміни на цій дошці", + "welcome-board": "Ласкаво просимо на дошку", + "welcome-swimlane": "Етап 1", + "welcome-list1": "Основи", + "welcome-list2": "Продвинуті", + "card-templates-swimlane": "Шаблони карток", + "list-templates-swimlane": "Шаблони списків", + "board-templates-swimlane": "Шаблони дошок", "what-to-do": "Що ви хочете зробити?", - "wipLimitErrorPopup-title": "Некоректне Обмеження WIP", + "wipLimitErrorPopup-title": "Некоректне обмеження WIP", "wipLimitErrorPopup-dialog-pt1": "Кількість завдань у цьому списку перевищує встановлений вами ліміт", "wipLimitErrorPopup-dialog-pt2": "Будь ласка, перенесіть деякі завдання з цього списку або збільште ліміт на кількість завдань", - "admin-panel": "Панель Адміністратора", + "admin-panel": "Панель адміністратора", "settings": "Налаштування", "people": "Люди", "registration": "Реєстрація", - "disable-self-registration": "Disable Self-Registration", - "disable-forgot-password": "Disable Forgot Password", - "invite": "Invite", - "invite-people": "Invite People", - "to-boards": "To board(s)", - "email-addresses": "Email Addresses", - "smtp-host-description": "The address of the SMTP server that handles your emails.", - "smtp-port-description": "The port your SMTP server uses for outgoing emails.", - "smtp-tls-description": "Enable TLS support for SMTP server", - "smtp-host": "SMTP Host", - "smtp-port": "SMTP Port", - "smtp-username": "Username", - "smtp-password": "Password", - "smtp-tls": "TLS support", - "send-from": "From", - "send-smtp-test": "Send a test email to yourself", - "invitation-code": "Invitation Code", - "email-invite-register-subject": "__inviter__ sent you an invitation", - "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "disable-self-registration": "Відключити самостійну реєстрацію", + "disable-forgot-password": "Відключити відновлення пароля", + "invite": "Запрошення", + "invite-people": "Запрошення людей", + "to-boards": "На дошки", + "email-addresses": "Email адреси", + "smtp-host-description": "Адреса сервера SMTP, який обробляє ваші email.", + "smtp-port-description": "Порт, який ваш SMTP сервер використовує для вихідних email.", + "smtp-tls-description": "Увімкнути підтримку TLS для SMTP сервера", + "smtp-host": "SMTP хост", + "smtp-port": "SMTP порт", + "smtp-username": "Ім'я користувача", + "smtp-password": "Пароль", + "smtp-tls": "Підтримка TLS", + "send-from": "Відправити від", + "send-smtp-test": "Надіслати тестовий email собі", + "invitation-code": "Код запрошення", + "email-invite-register-subject": "__inviter__ відправив вам запрошення", + "email-invite-register-text": "Дорогий __user__,\n\n__inviter__ запрошує вас до співпраці на дошці kanban.\n\nБудь ласка, перейдіть за посиланням нижче:\n__url__\n\nІ ваш код запрошення: __icode__\n\nДякуємо.", "email-smtp-test-subject": "Лист перевірки SMTP", "email-smtp-test-text": "Ви успішно надіслали e-mail", "error-invitation-code-not-exist": "Код запрошення не існує", "error-notAuthorized": "Ви не авторизовані для перегляду цієї сторінки.", - "webhook-title": "Webhook Name", - "webhook-token": "Token (Optional for Authentication)", - "outgoing-webhooks": "Outgoing Webhooks", - "bidirectional-webhooks": "Two-Way Webhooks", - "outgoingWebhooksPopup-title": "Outgoing Webhooks", - "boardCardTitlePopup-title": "Card Title Filter", - "disable-webhook": "Disable This Webhook", - "global-webhook": "Global Webhooks", - "new-outgoing-webhook": "New Outgoing Webhook", - "no-name": "(Unknown)", - "Node_version": "Node version", - "Meteor_version": "Meteor version", - "MongoDB_version": "MongoDB version", - "MongoDB_storage_engine": "MongoDB storage engine", - "MongoDB_Oplog_enabled": "MongoDB Oplog enabled", - "OS_Arch": "OS Arch", - "OS_Cpus": "OS CPU Count", - "OS_Freemem": "OS Free Memory", - "OS_Loadavg": "OS Load Average", - "OS_Platform": "OS Platform", - "OS_Release": "OS Release", - "OS_Totalmem": "OS Total Memory", - "OS_Type": "OS Type", - "OS_Uptime": "OS Uptime", - "days": "days", - "hours": "hours", - "minutes": "minutes", - "seconds": "seconds", - "show-field-on-card": "Show this field on card", - "automatically-field-on-card": "Add field to new cards", - "always-field-on-card": "Add field to all cards", - "showLabel-field-on-card": "Show field label on minicard", - "showSum-field-on-list": "Show sum of fields at top of list", - "yes": "Yes", - "no": "No", - "accounts": "Accounts", - "accounts-allowEmailChange": "Дозволити Зміну Email", - "accounts-allowUserNameChange": "Дозволити Зміну Імені Користувача", - "tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only", - "tableVisibilityMode" : "Boards visibility", + "webhook-title": "Назва Webhook", + "webhook-token": "Токен (Необов'язково для автентифікації)", + "outgoing-webhooks": "Вихідні Webhooks", + "bidirectional-webhooks": "Двосторонні Webhooks", + "outgoingWebhooksPopup-title": "Вихідні Webhooks", + "boardCardTitlePopup-title": "Фільтр назви картки", + "disable-webhook": "Відключити цей Webhook", + "global-webhook": "Глобальні Webhooks", + "new-outgoing-webhook": "Новий вихідний Webhook", + "no-name": "(Невідомо)", + "Node_version": "Версія Node", + "Meteor_version": "Версія Meteor", + "MongoDB_version": "Версія MongoDB", + "MongoDB_storage_engine": "Двигун зберігання MongoDB", + "MongoDB_Oplog_enabled": "MongoDB Oplog увімкнено", + "OS_Arch": "Архітектура ОС", + "OS_Cpus": "Кількість процесорів ОС", + "OS_Freemem": "Вільна пам'ять ОС", + "OS_Loadavg": "Середнє навантаження ОС", + "OS_Platform": "Платформа ОС", + "OS_Release": "Випуск ОС", + "OS_Totalmem": "Загальна пам'ять ОС", + "OS_Type": "Тип ОС", + "OS_Uptime": "Час роботи ОС", + "days": "дні", + "hours": "години", + "minutes": "хвилини", + "seconds": "секунди", + "show-field-on-card": "Показати це поле на картці", + "automatically-field-on-card": "Додати поле до нових карток", + "always-field-on-card": "Додати поле до усіх карток", + "showLabel-field-on-card": "Показати назву поля на міні-картці", + "showSum-field-on-list": "Показати суму полів у верхній частині списку", + "yes": "Так", + "no": "Ні", + "accounts": "Облікові записи", + "accounts-allowEmailChange": "Дозволити зміну Email", + "accounts-allowUserNameChange": "Дозволити зміну імені користувача", + "tableVisibilityMode-allowPrivateOnly": "Видимість дошок: дозволити тільки приватні дошки", + "tableVisibilityMode" : "Видимість дошок", "createdAt": "Створено", - "modifiedAt": "Modified at", + "modifiedAt": "Змінено", "verified": "Перевірено", "active": "Активно", "card-received": "Отримано", - "card-received-on": "Received on", + "card-received-on": "Отримано на", "card-end": "Кінець", "card-end-on": "Закінчується на", "editCardReceivedDatePopup-title": "Змінити дату отримання", - "editCardEndDatePopup-title": "Change end date", - "setCardColorPopup-title": "Set color", - "setCardActionsColorPopup-title": "Оберіть колір", - "setSwimlaneColorPopup-title": "Оберіть колір", - "setListColorPopup-title": "Оберіть колір", - "assigned-by": "Assigned By", + "editCardEndDatePopup-title": "Змінити дату закінчення", + "setCardColorPopup-title": "Встановити колір", + "setCardActionsColorPopup-title": "Вибрати колір", + "setSwimlaneColorPopup-title": "Вибрати колір", + "setListColorPopup-title": "Вибрати колір", + "assigned-by": "Призначено", "requested-by": "Запитано", - "card-sorting-by-number": "Card sorting by number", - "board-delete-notice": "Це видалення назавжди. Ви втратите всі листи, картки та дії, пов'язані з цією дошкою.", - "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", - "boardDeletePopup-title": "Delete Board?", - "delete-board": "Delete Board", - "default-subtasks-board": "Subtasks for __board__ board", - "default": "Default", - "defaultdefault": "Default", - "queue": "Queue", - "subtask-settings": "Subtasks Settings", - "card-settings": "Card Settings", - "minicard-settings": "Minicard Settings", - "boardSubtaskSettingsPopup-title": "Board Subtasks Settings", - "boardCardSettingsPopup-title": "Card Settings", - "boardMinicardSettingsPopup-title": "Minicard Settings", - "deposit-subtasks-board": "Deposit subtasks to this board:", - "deposit-subtasks-list": "Landing list for subtasks deposited here:", - "show-parent-in-minicard": "Show parent in minicard:", - "description-on-minicard": "Description on minicard", - "cover-attachment-on-minicard": "Cover image on minicard", - "badge-attachment-on-minicard": "Count of attachments on minicard", - "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", - "prefix-with-full-path": "Prefix with full path", - "prefix-with-parent": "Prefix with parent", - "subtext-with-full-path": "Subtext with full path", - "subtext-with-parent": "Subtext with parent", - "change-card-parent": "Change card's parent", - "parent-card": "Parent card", - "source-board": "Source board", - "no-parent": "Don't show parent", - "activity-added-label": "added label '%s' to %s", - "activity-removed-label": "removed label '%s' from %s", - "activity-delete-attach": "deleted an attachment from %s", - "activity-added-label-card": "added label '%s'", - "activity-removed-label-card": "removed label '%s'", - "activity-delete-attach-card": "deleted an attachment", - "activity-set-customfield": "set custom field '%s' to '%s' in %s", - "activity-unset-customfield": "unset custom field '%s' in %s", + "card-sorting-by-number": "Сортування карток за номером", + "board-delete-notice": "Це видалення назавжди. Ви втратите всі списки, картки та дії, пов'язані з цією дошкою.", + "delete-board-confirm-popup": "Усі списки, картки, мітки та діяльність будуть видалені, і ви не зможете відновити вміст дошки. Немає відкату.", + "boardDeletePopup-title": "Видалити дошку?", + "delete-board": "Видалити дошку", + "default-subtasks-board": "Підзадачі для дошки __board__", + "default": "За замовчуванням", + "defaultdefault": "За замовчуванням", + "queue": "Черга", + "subtask-settings": "Налаштування підзадач", + "card-settings": "Налаштування картки", + "minicard-settings": "Налаштування міні-картки", + "boardSubtaskSettingsPopup-title": "Налаштування підзадач дошки", + "boardCardSettingsPopup-title": "Налаштування картки", + "boardMinicardSettingsPopup-title": "Налаштування міні-картки", + "deposit-subtasks-board": "Перенести підзадачі на цю дошку:", + "deposit-subtasks-list": "Список приземлення для підзадач, що переносяться сюди:", + "show-parent-in-minicard": "Показати батька на міні-картці:", + "description-on-minicard": "Опис на міні-картці", + "cover-attachment-on-minicard": "Зображення обкладинки на міні-картці", + "badge-attachment-on-minicard": "Кількість вкладень на міні-картці", + "card-sorting-by-number-on-minicard": "Сортування за номерами на міні-картці", + "prefix-with-full-path": "Префікс з повним шляхом", + "prefix-with-parent": "Префікс з батьком", + "subtext-with-full-path": "Підтекст з повним шляхом", + "subtext-with-parent": "Підтекст з батьком", + "change-card-parent": "Змінити батька картки", + "parent-card": "Батьківська картка", + "source-board": "Джерельна дошка", + "no-parent": "Не показувати батька", + "activity-added-label": "додано мітку '%s' до %s", + "activity-removed-label": "видалено мітку '%s' з %s", + "activity-delete-attach": "видалено вкладення з %s", + "activity-added-label-card": "додано мітку '%s'", + "activity-removed-label-card": "видалено мітку '%s'", + "activity-delete-attach-card": "видалено вкладення", + "activity-set-customfield": "встановлено налаштоване поле '%s' до '%s' в %s", + "activity-unset-customfield": "видалено налаштоване поле '%s' з %s", "r-rule": "Правило", - "r-add-trigger": "Add trigger", - "r-add-action": "Add action", + "r-add-trigger": "Додати тригер", + "r-add-action": "Додати дію", "r-board-rules": "Дошка правил", - "r-add-rule": "Add rule", + "r-add-rule": "Додати правило", "r-view-rule": "Переглянути правило", "r-delete-rule": "Видалити правило", - "r-new-rule-name": "Заголовок нового правила", - "r-no-rules": "No rules", - "r-trigger": "Trigger", - "r-action": "Action", - "r-when-a-card": "When a card", - "r-is": "is", - "r-is-moved": "is moved", - "r-added-to": "Added to", - "r-removed-from": "Видалити з", - "r-the-board": "Дошка", - "r-list": "list", - "set-filter": "Set Filter", + "r-new-rule-name": "Назва нового правила", + "r-no-rules": "Правила відсутні", + "r-trigger": "Тригер", + "r-action": "Дія", + "r-when-a-card": "Коли картка", + "r-is": "є", + "r-is-moved": "переміщена", + "r-added-to": "Додано до", + "r-removed-from": "Видалено з", + "r-the-board": "дошки", + "r-list": "список", + "set-filter": "Встановити фільтр", "r-moved-to": "переміщено до", "r-moved-from": "переміщено з", - "r-archived": "переміщено до Архіву", - "r-unarchived": "Відновлено з Архіву", - "r-a-card": "a card", - "r-when-a-label-is": "When a label is", - "r-when-the-label": "When the label", - "r-list-name": "list name", - "r-when-a-member": "When a member is", - "r-when-the-member": "When the member", - "r-name": "name", - "r-when-a-attach": "When an attachment", - "r-when-a-checklist": "When a checklist is", - "r-when-the-checklist": "When the checklist", - "r-completed": "Completed", - "r-made-incomplete": "Made incomplete", - "r-when-a-item": "When a checklist item is", - "r-when-the-item": "When the checklist item", - "r-checked": "Checked", - "r-unchecked": "Unchecked", - "r-move-card-to": "Move card to", - "r-top-of": "Top of", - "r-bottom-of": "Bottom of", - "r-its-list": "its list", - "r-archive": "Перенести до Архіву", - "r-unarchive": "Restore from Archive", + "r-archived": "переміщено до архіву", + "r-unarchived": "відновлено з архіву", + "r-a-card": "картка", + "r-when-a-label-is": "Коли мітка", + "r-when-the-label": "Коли мітка", + "r-list-name": "назва списку", + "r-when-a-member": "Коли учасник", + "r-when-the-member": "Коли учасник", + "r-name": "назва", + "r-when-a-attach": "Коли вкладення", + "r-when-a-checklist": "Коли контрольний список", + "r-when-the-checklist": "Коли контрольний список", + "r-completed": "завершено", + "r-made-incomplete": "зроблено незавершеним", + "r-when-a-item": "Коли елемент контрольного списку", + "r-when-the-item": "Коли елемент", + "r-checked": "перевірено", + "r-unchecked": "неперевірено", + "r-move-card-to": "Перемістити картку до", + "r-top-of": "Верх", + "r-bottom-of": "Низ", + "r-its-list": "її список", + "r-archive": "Перемістити до архіву", + "r-unarchive": "Відновити з архіву", "r-card": "Картка", "r-add": "Додати", "r-remove": "Видалити", - "r-label": "label", - "r-member": "Користувач", - "r-remove-all": "Видалити усіх учасників картки", - "r-set-color": "Set color to", - "r-checklist": "checklist", - "r-check-all": "Check all", - "r-uncheck-all": "Uncheck all", - "r-items-check": "items of checklist", + "r-label": "мітку", + "r-member": "учасника", + "r-remove-all": "Видалити всіх учасників картки", + "r-set-color": "Встановити колір", + "r-checklist": "контрольний список", + "r-check-all": "Перевірити всі", + "r-uncheck-all": "Скасувати всі відмітки", + "r-items-check": "елементи контрольного списку", "r-check": "Обрати", - "r-uncheck": "Відхилити Обрання", - "r-item": "одиниця", - "r-of-checklist": "of checklist", - "r-send-email": "Send an email", - "r-to": "to", - "r-of": "of", - "r-subject": "Об'єкт", - "r-rule-details": "Rule details", - "r-d-move-to-top-gen": "Move card to top of its list", - "r-d-move-to-top-spec": "Move card to top of list", - "r-d-move-to-bottom-gen": "Move card to bottom of its list", - "r-d-move-to-bottom-spec": "Move card to bottom of list", + "r-uncheck": "Скасувати обрання", + "r-item": "елемент", + "r-of-checklist": "контрольного списку", + "r-send-email": "Відправити email", + "r-to": "до", + "r-of": "з", + "r-subject": "Тема", + "r-rule-details": "Деталі правила", + "r-d-move-to-top-gen": "Перемістити картку на верх її списку", + "r-d-move-to-top-spec": "Перемістити картку на верх списку", + "r-d-move-to-bottom-gen": "Перемістити картку на низ її списку", + "r-d-move-to-bottom-spec": "Перемістити картку на низ списку", "r-d-send-email": "Відправити email", - "r-d-send-email-to": "to", - "r-d-send-email-subject": "Об'єкт", + "r-d-send-email-to": "до", + "r-d-send-email-subject": "Тема", "r-d-send-email-message": "повідомлення", - "r-d-archive": "Перенести Картку до Архиву", - "r-d-unarchive": "Відновити Картку з Архіву", - "r-d-add-label": "Додатку мітку", + "r-d-archive": "Перемістити картку до архіву", + "r-d-unarchive": "Відновити картку з архіву", + "r-d-add-label": "Додати мітку", "r-d-remove-label": "Видалити мітку", "r-create-card": "Створити нову картку", - "r-in-list": "в переліку", - "r-in-swimlane": "in swimlane", - "r-d-add-member": "Додати користувача", - "r-d-remove-member": "Видалити користувача", + "r-in-list": "у списку", + "r-in-swimlane": "у свімлейні", + "r-d-add-member": "Додати учасника", + "r-d-remove-member": "Видалити учасника", "r-d-remove-all-member": "Видалити всіх учасників", - "r-d-check-all": "Check all items of a list", - "r-d-uncheck-all": "Uncheck all items of a list", - "r-d-check-one": "Check item", - "r-d-uncheck-one": "Uncheck item", - "r-d-check-of-list": "of checklist", - "r-d-add-checklist": "Add checklist", - "r-d-remove-checklist": "Remove checklist", - "r-by": "by", - "r-add-checklist": "Add checklist", - "r-with-items": "with items", - "r-items-list": "item1,item2,item3", - "r-add-swimlane": "Add swimlane", - "r-swimlane-name": "swimlane name", - "r-board-note": "Note: leave a field empty to match every possible value. ", - "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", - "r-when-a-card-is-moved": "When a card is moved to another list", - "r-set": "Set", + "r-d-check-all": "Відмітити всі елементи списку", + "r-d-uncheck-all": "Скасувати відмітки всіх елементів списку", + "r-d-check-one": "Відмітити елемент", + "r-d-uncheck-one": "Скасувати відмітку елемента", + "r-d-check-of-list": "контрольного списку", + "r-d-add-checklist": "Додати контрольний список", + "r-d-remove-checklist": "Видалити контрольний список", + "r-by": "від", + "r-add-checklist": "Додати контрольний список", + "r-with-items": "з елементами", + "r-items-list": "елемент1,елемент2,елемент3", + "r-add-swimlane": "Додати свімлейн", + "r-swimlane-name": "назва свімлейна", + "r-board-note": "Примітка: залиште поле порожнім, щоб відповідати будь-якому можливому значенню", + "r-checklist-note": "Примітка: елементи контрольного списку повинні бути записані через кому.", + "r-when-a-card-is-moved": "Коли картка переміщена в інший список", + "r-set": "Встановити", "r-update": "Оновити", - "r-datefield": "поле для дати", + "r-datefield": "поле дати", "r-df-start-at": "початок", - "r-df-due-at": "до", + "r-df-due-at": "термін", "r-df-end-at": "кінець", "r-df-received-at": "отримано", - "r-to-current-datetime": "to current date/time", - "r-remove-value-from": "Remove value from", - "r-link-card": "Link card to", + "r-to-current-datetime": "до поточної дати/часу", + "r-remove-value-from": "Видалити значення з", + "r-link-card": "Зв'язати картку з", "ldap": "LDAP", "oauth2": "OAuth2", "cas": "CAS", - "authentication-method": "метод Автентифікації", - "authentication-type": "тип Автентифікації", - "custom-product-name": "Custom Product Name", - "layout": "Layout", - "hide-logo": "Hide Logo", - "hide-card-counter-list": "Hide card counter list on All Boards", - "hide-board-member-list": "Hide board member list on All Boards", - "add-custom-html-after-body-start": "Add Custom HTML after <body> start", - "add-custom-html-before-body-end": "Add Custom HTML before </body> end", - "error-undefined": "Something went wrong", - "error-ldap-login": "An error occurred while trying to login", - "display-authentication-method": "Display Authentication Method", - "oidc-button-text": "Customize the OIDC button text", - "default-authentication-method": "Default Authentication Method", - "duplicate-board": "Duplicate Board", - "org-number": "The number of organizations is: ", - "team-number": "The number of teams is: ", - "people-number": "The number of people is: ", - "swimlaneDeletePopup-title": "Delete Swimlane ?", - "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", + "authentication-method": "метод автентифікації", + "authentication-type": "тип автентифікації", + "custom-product-name": "Назва спеціального продукту", + "layout": "Макет", + "hide-logo": "Сховати логотип", + "hide-card-counter-list": "Сховати лічильник карток на Всіх дошках", + "hide-board-member-list": "Сховати список учасників дошки на Всіх дошках", + "add-custom-html-after-body-start": "Додати спеціальний HTML після початку <body>", + "add-custom-html-before-body-end": "Додати спеціальний HTML перед кінцем </body>", + "error-undefined": "Щось пішло не так", + "error-ldap-login": "Помилка під час спроби входу", + "display-authentication-method": "Показати метод автентифікації", + "oidc-button-text": "Налаштувати текст кнопки OIDC", + "default-authentication-method": "Стандартний метод автентифікації", + "duplicate-board": "Дублювати дошку", + "org-number": "Кількість організацій:", + "team-number": "Кількість команд:", + "people-number": "Кількість людей:", + "swimlaneDeletePopup-title": "Видалити свімлейн?", + "swimlane-delete-pop": "Всі дії будуть видалені з журналу активності, і ви не зможете відновити свімлейн. Немає можливості відмінити.", "restore-all": "Відновити все", "delete-all": "Видалити все", - "loading": "Завантаження, зачекайте будь-ласка.", - "previous_as": "last time was", - "act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__", - "act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)", - "act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)", - "act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)", - "a-dueAt": "modified due time to be", - "a-endAt": "modified ending time to be", - "a-startAt": "modified starting time to be", - "a-receivedAt": "modified received time to be", - "almostdue": "current due time %s is approaching", - "pastdue": "current due time %s is past", - "duenow": "current due time %s is today", - "act-newDue": "__list__/__card__ має 1-ше нагадування визначеного терміну [__board__]", - "act-withDue": "__list__/__card__ due reminders [__board__]", - "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching", - "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", - "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", - "act-atUserComment": "Ви були згадані у [__board__] __list__/__card__", - "delete-user-confirm-popup": "Ви дійсно бажаєте видалити даний обліковий запис? Цю дію не можна відмінити.", - "delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.", - "delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.", - "accounts-allowUserDelete": "Дозволити користувачам видаляти їх власні облікові записи", - "hide-minicard-label-text": "Hide minicard label text", - "show-desktop-drag-handles": "Show desktop drag handles", - "assignee": "Assignee", - "cardAssigneesPopup-title": "Assignee", - "addmore-detail": "Add a more detailed description", - "show-on-card": "Show on Card", - "show-on-minicard": "Show on Minicard", - "new": "New", - "editOrgPopup-title": "Edit Organization", - "newOrgPopup-title": "New Organization", - "editTeamPopup-title": "Edit Team", - "newTeamPopup-title": "New Team", - "editUserPopup-title": "Edit User", - "newUserPopup-title": "New User", - "notifications": "Notifications", - "help": "Help", - "view-all": "View All", - "filter-by-unread": "Filter by Unread", - "mark-all-as-read": "Mark all as read", - "remove-all-read": "Remove all read", - "allow-rename": "Allow Rename", - "allowRenamePopup-title": "Allow Rename", - "start-day-of-week": "Set day of the week start", - "monday": "Monday", - "tuesday": "Tuesday", - "wednesday": "Wednesday", - "thursday": "Thursday", - "friday": "Friday", - "saturday": "Saturday", - "sunday": "Sunday", + "loading": "Завантаження, будь ласка, зачекайте.", + "previous_as": "останній раз було", + "act-a-dueAt": "змінено час завершення на \nКоли: __timeValue__\nДе: __card__\n попередній термін був __timeOldValue__", + "act-a-endAt": "змінено час закінчення на __timeValue__ з (__timeOldValue__)", + "act-a-startAt": "змінено час початку на __timeValue__ з (__timeOldValue__)", + "act-a-receivedAt": "змінено час отримання на __timeValue__ з (__timeOldValue__)", + "a-dueAt": "змінено час завершення на", + "a-endAt": "змінено час закінчення на", + "a-startAt": "змінено час початку на", + "a-receivedAt": "змінено час отримання на", + "almostdue": "поточний час завершення %s наближається", + "pastdue": "поточний час завершення %s пройшов", + "duenow": "поточний час завершення %s сьогодні", + "act-newDue": "__list__/__card__ має перше нагадування про термін [__board__]", + "act-withDue": "__list__/__card__ нагадування про терміни [__board__]", + "act-almostdue": "нагадувало, що поточний термін (__timeValue__) __card__ наближається", + "act-pastdue": "нагадувало, що поточний термін (__timeValue__) __card__ пройшов", + "act-duenow": "нагадувало, що поточний термін (__timeValue__) __card__ зараз", + "act-atUserComment": "Вас згадали в [__board__] __list__/__card__", + "delete-user-confirm-popup": "Ви дійсно бажаєте видалити цей обліковий запис? Цю дію не можна скасувати.", + "delete-team-confirm-popup": "Ви впевнені, що хочете видалити цю команду? Немає можливості відмінити.", + "delete-org-confirm-popup": "Ви впевнені, що хочете видалити цю організацію? Немає можливості відмінити.", + "accounts-allowUserDelete": "Дозволити користувачам видаляти свої облікові записи", + "hide-minicard-label-text": "Сховати текст мітки міні-картки", + "show-desktop-drag-handles": "Показати ручки перетягування на робочому столі", + "assignee": "Виконавець", + "cardAssigneesPopup-title": "Виконавець", + "addmore-detail": "Додати більш детальний опис", + "show-on-card": "Показати на картці", + "show-on-minicard": "Показати на міні-картці", + "new": "Новий", + "editOrgPopup-title": "Редагувати організацію", + "newOrgPopup-title": "Нова організація", + "editTeamPopup-title": "Редагувати команду", + "newTeamPopup-title": "Нова команда", + "editUserPopup-title": "Редагувати користувача", + "newUserPopup-title": "Новий користувач", + "notifications": "Сповіщення", + "help": "Допомога", + "view-all": "Показати все", + "filter-by-unread": "Фільтрувати непрочитані", + "mark-all-as-read": "Позначити всі як прочитані", + "remove-all-read": "Видалити всі прочитані", + "allow-rename": "Дозволити перейменування", + "allowRenamePopup-title": "Дозволити перейменування", + "start-day-of-week": "Встановити день початку тижня", + "monday": "Понеділок", + "tuesday": "Вівторок", + "wednesday": "Середа", + "thursday": "Четвер", + "friday": "П'ятниця", + "saturday": "Субота", + "sunday": "Неділя", "status": "Статус", - "swimlane": "Swimlane", + "swimlane": "Лінія", "owner": "Власник", "last-modified-at": "Востаннє змінено", "last-activity": "Остання активність", "voting": "Голосування", "archived": "Архівовано", - "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", - "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", - "hide-checked-items": "Сховати обрані елементи", - "task": "Task", - "create-task": "Create Task", + "delete-linked-card-before-this-card": "Ви не можете видалити цю картку, поки не видалите пов'язану картку, яка має", + "delete-linked-cards-before-this-list": "Ви не можете видалити цей список, поки не видалите пов'язані картки, які вказують на картки в цьому списку", + "hide-checked-items": "Сховати відмічені елементи", + "hide-finished-checklist": "Сховати виконані контрольні списки", + "task": "Завдання", + "create-task": "Створити завдання", "ok": "OK", - "organizations": "Organizations", - "teams": "Teams", - "displayName": "Display Name", - "shortName": "Short Name", - "autoAddUsersWithDomainName": "Automatically add users with the domain name", - "website": "Website", - "person": "Person", - "my-cards": "My Cards", + "organizations": "Організації", + "teams": "Команди", + "displayName": "Відображене Ім'я", + "shortName": "Коротке Ім'я", + "autoAddUsersWithDomainName": "Автоматично додавати користувачів з доменним ім'ям", + "website": "Веб-сайт", + "person": "Особа", + "my-cards": "Мої картки", "card": "Картка", - "list": "List", - "board": "Board", + "list": "Список", + "board": "Дошка", "context-separator": "/", - "myCardsViewChange-title": "My Cards View", - "myCardsViewChangePopup-title": "My Cards View", + "myCardsViewChange-title": "Мій Погляд на Картки", + "myCardsViewChangePopup-title": "Мій Погляд на Картки", "myCardsViewChange-choice-boards": "Дошки", - "myCardsViewChange-choice-table": "Table", - "myCardsSortChange-title": "My Cards Sort", - "myCardsSortChangePopup-title": "My Cards Sort", - "myCardsSortChange-choice-board": "By Board", - "myCardsSortChange-choice-dueat": "By Due Date", - "dueCards-title": "Due Cards", - "dueCardsViewChange-title": "Due Cards View", - "dueCardsViewChangePopup-title": "Due Cards View", - "dueCardsViewChange-choice-me": "Me", - "dueCardsViewChange-choice-all": "All Users", - "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", - "broken-cards": "Broken Cards", - "board-title-not-found": "Board '%s' not found.", - "swimlane-title-not-found": "Swimlane '%s' not found.", - "list-title-not-found": "List '%s' not found.", - "label-not-found": "Label '%s' not found.", - "label-color-not-found": "Label color %s not found.", - "user-username-not-found": "Username '%s' not found.", - "comment-not-found": "Card with comment containing text '%s' not found.", - "org-name-not-found": "Organization '%s' not found.", - "team-name-not-found": "Team '%s' not found.", - "globalSearch-title": "Search All Boards", - "no-cards-found": "No Cards Found", - "one-card-found": "One Card Found", - "n-cards-found": "%s Cards Found", - "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", - "operator-board": "board", - "operator-board-abbrev": "b", - "operator-swimlane": "swimlane", - "operator-swimlane-abbrev": "s", - "operator-list": "list", - "operator-list-abbrev": "l", - "operator-label": "label", + "myCardsViewChange-choice-table": "Таблиця", + "myCardsSortChange-title": "Моє Сортування Карток", + "myCardsSortChangePopup-title": "Моє Сортування Карток", + "myCardsSortChange-choice-board": "По Дошці", + "myCardsSortChange-choice-dueat": "По Терміну", + "dueCards-title": "Картки за Терміном", + "dueCardsViewChange-title": "Вид Карток за Терміном", + "dueCardsViewChangePopup-title": "Вид Карток за Терміном", + "dueCardsViewChange-choice-me": "Я", + "dueCardsViewChange-choice-all": "Усі Користувачі", + "dueCardsViewChange-choice-all-description": "Показує всі незавершені картки з датою Термін з дошок, для яких користувач має дозвіл.", + "broken-cards": "Пошкоджені Картки", + "board-title-not-found": "Дошку '%s' не знайдено.", + "swimlane-title-not-found": "Лінію '%s' не знайдено.", + "list-title-not-found": "Список '%s' не знайдено.", + "label-not-found": "Мітку '%s' не знайдено.", + "label-color-not-found": "Колір мітки %s не знайдено.", + "user-username-not-found": "Ім'я користувача '%s' не знайдено.", + "comment-not-found": "Картку з коментарем, що містить текст '%s', не знайдено.", + "org-name-not-found": "Організацію '%s' не знайдено.", + "team-name-not-found": "Команду '%s' не знайдено.", + "globalSearch-title": "Пошук по всіх дошках", + "no-cards-found": "Картки не знайдено", + "one-card-found": "Знайдено одну картку", + "n-cards-found": "Знайдено %s карток", + "n-n-of-n-cards-found": "start-end з total Карток знайдено", + "operator-board": "дошка", + "operator-board-abbrev": "д", + "operator-swimlane": "лінія", + "operator-swimlane-abbrev": "л", + "operator-list": "список", + "operator-list-abbrev": "с", + "operator-label": "мітка", "operator-label-abbrev": "#", - "operator-user": "user", + "operator-user": "користувач", "operator-user-abbrev": "@", "operator-member": "Користувач", - "operator-member-abbrev": "m", - "operator-assignee": "assignee", - "operator-assignee-abbrev": "a", - "operator-creator": "creator", - "operator-status": "status", + "operator-member-abbrev": "м", + "operator-assignee": "виконавець", + "operator-assignee-abbrev": "в", + "operator-creator": "автор", + "operator-status": "статус", "operator-due": "до", - "operator-created": "created", - "operator-modified": "modified", - "operator-sort": "sort", - "operator-comment": "comment", - "operator-has": "has", - "operator-limit": "limit", - "operator-debug": "debug", - "operator-org": "org", - "operator-team": "team", - "predicate-archived": "archived", - "predicate-open": "open", - "predicate-ended": "ended", - "predicate-all": "all", - "predicate-overdue": "overdue", - "predicate-week": "week", - "predicate-month": "month", - "predicate-quarter": "quarter", - "predicate-year": "year", + "operator-created": "створено", + "operator-modified": "змінено", + "operator-sort": "сортувати", + "operator-comment": "коментар", + "operator-has": "має", + "operator-limit": "обмеження", + "operator-debug": "налагодження", + "operator-org": "орг", + "operator-team": "команда", + "predicate-archived": "архівовано", + "predicate-open": "відкрито", + "predicate-ended": "завершено", + "predicate-all": "всі", + "predicate-overdue": "прострочено", + "predicate-week": "тиждень", + "predicate-month": "місяць", + "predicate-quarter": "квартал", + "predicate-year": "рік", "predicate-due": "до", - "predicate-modified": "modified", - "predicate-created": "created", - "predicate-attachment": "attachment", - "predicate-description": "description", - "predicate-checklist": "checklist", + "predicate-modified": "змінено", + "predicate-created": "створено", + "predicate-attachment": "вкладення", + "predicate-description": "опис", + "predicate-checklist": "чеклист", "predicate-start": "початок", "predicate-end": "кінець", - "predicate-assignee": "assignee", + "predicate-assignee": "виконавець", "predicate-member": "Користувач", - "predicate-public": "public", - "predicate-private": "private", - "predicate-selector": "selector", - "predicate-projection": "projection", - "operator-unknown-error": "%s is not an operator", - "operator-number-expected": "operator __operator__ expected a number, got '__value__'", - "operator-sort-invalid": "sort of '%s' is invalid", - "operator-status-invalid": "'%s' is not a valid status", - "operator-has-invalid": "%s is not a valid existence check", - "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", - "operator-debug-invalid": "%s is not a valid debug predicate", - "next-page": "Next Page", - "previous-page": "Previous Page", - "heading-notes": "Notes", - "globalSearch-instructions-heading": "Search Instructions", - "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", - "globalSearch-instructions-operators": "Available operators:", - "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", - "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", - "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", - "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", - "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", - "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", - "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", - "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", - "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", - "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", - "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - cards where *<username>* is the card's creator", - "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*", - "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*", - "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", - "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", - "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", - "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", - "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", - "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", - "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", - "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", - "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", - "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", - "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", - "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", - "globalSearch-instructions-notes-1": "Multiple operators may be specified.", - "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", - "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", - "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", - "globalSearch-instructions-notes-4": "Text searches are case insensitive.", - "globalSearch-instructions-notes-5": "By default archived cards are not searched.", - "link-to-search": "Link to this search", + "predicate-public": "публічний", + "predicate-private": "приватний", + "predicate-selector": "селектор", + "predicate-projection": "проекція", + "operator-unknown-error": "%s не є оператором", + "operator-number-expected": "оператор operator очікував число, отримано 'value'", + "operator-sort-invalid": "сортування '%s' є недійсним", + "operator-status-invalid": "'%s' не є допустимим статусом", + "operator-has-invalid": "%s не є дійсною перевіркою існування", + "operator-limit-invalid": "%s не є дійсним обмеженням. Обмеження повинно бути додатнім цілим числом.", + "operator-debug-invalid": "%s не є дійсною налагоджувальною пропозицією", + "next-page": "Наступна сторінка", + "previous-page": "Попередня сторінка", + "heading-notes": "Нотатки", + "globalSearch-instructions-heading": "Інструкції пошуку", + "globalSearch-instructions-description": "Пошук може містити оператори для уточнення пошуку. Оператори вказуються шляхом запису назви оператора та значення, розділеного двокрапкою. Наприклад, специфікація оператора список:Заблоковано обмежить пошук карток, що містяться у списку з назвою Заблоковано. Якщо значення містить пробіли або спеціальні символи, воно повинно бути укладено в подвійні лапки (наприклад, список:\"На розгляд\").", + "globalSearch-instructions-operators": "Доступні оператори:", + "globalSearch-instructions-operator-board": "дошка:<назва> - картки на дошках, що відповідають вказаній <назві>", + "globalSearch-instructions-operator-list": "список:<назва> - картки у списках, що відповідають вказаній <назві>", + "globalSearch-instructions-operator-swimlane": "лінія:<назва> - картки в лініях, що відповідають вказаній <назві>", + "globalSearch-instructions-operator-comment": "коментар:<текст> - картки з коментарем, що містить <текст>.", + "globalSearch-instructions-operator-label": "мітка:<колір> мітка:<назва> - картки, які мають мітку, що відповідає <коліру> або <назві>", + "globalSearch-instructions-operator-hash": "#<назва|колір> - скорочення для мітка:<колір> або мітка:<назва>", + "globalSearch-instructions-operator-user": "користувач:<ім'я_користувача> - картки, де <ім'я_користувача> є членом або виконавцем", + "globalSearch-instructions-operator-at": "@<ім'я_користувача> - скорочення для користувач:<ім'я_користувача>", + "globalSearch-instructions-operator-member": "Користувач:<ім'я_користувача> - картки, де <ім'я_користувача> є членом", + "globalSearch-instructions-operator-assignee": "виконавець:<ім'я_користувача> - картки, де <ім'я_користувача> є виконавцем", + "globalSearch-instructions-operator-creator": "автор:<ім'я_користувача> - картки, де <ім'я_користувача> є автором картки", + "globalSearch-instructions-operator-org": "орг:<відображене_ім'я|коротке_ім'я> - картки, що належать до дошки, призначеної організації <назва>", + "globalSearch-instructions-operator-team": "команда:<відображене_ім'я|коротке_ім'я> - картки, що належать до дошки, призначеної команді <назва>", + "globalSearch-instructions-operator-due": "до:<n> - картки, які повинні бути виконані протягом <n> днів відтепер. до:прострочено перелічує всі картки, що минули свій термін виконання.", + "globalSearch-instructions-operator-created": "створено:<n> - картки, які були створені <n> днів тому або менше", + "globalSearch-instructions-operator-modified": "змінено:<n> - картки, які були змінені <n> днів тому або менше", + "globalSearch-instructions-operator-status": "статус:<статус> - де <статус> один із наступних:", + "globalSearch-instructions-status-archived": "архівовано - архівовані картки", + "globalSearch-instructions-status-all": "всі - всі архівовані та неархівовані картки", + "globalSearch-instructions-status-ended": "завершено - картки з кінцевою датою", + "globalSearch-instructions-status-public": "публічний - картки лише на публічних дошках", + "globalSearch-instructions-status-private": "приватний - картки лише на приватних дошках", + "globalSearch-instructions-operator-has": "має:<поле> - де <поле> одне з вкладення, чеклист, опис, початок, до, кінець, виконавець або член. Поставивши - перед <полем>, ви шукаєте картки без значення у цьому полі (наприклад, має:-до шукає картки без терміну виконання).", + "globalSearch-instructions-operator-sort": "сортування:<назва_сортування> - де <назва_сортування> одна з до, створено або змінено. Для сортування за зменшенням, перед назвою сортування поставте -.", + "globalSearch-instructions-operator-limit": "обмеження:<n> - де <n> - це додатне ціле число, що виражає кількість карток, які будуть відображені на сторінці.", + "globalSearch-instructions-notes-1": "Можна вказати кілька операторів.", + "globalSearch-instructions-notes-2": "Подібні оператори додаються ORразом. Повертаються картки, які відповідають будь-яким умовам.\nсписок:Доступно список:Заблоковано поверне картки, що містяться в будь-якому списку з назвою Доступно або Заблоковано.", + "globalSearch-instructions-notes-3": "Відмінні оператори додаються ANDразом. Повертаються лише картки, що відповідають усім відмінним операторам. список:Доступно мітка:червоний повертає лише картки у списку Доступно з червоною міткою.", + "globalSearch-instructions-notes-3-2": "Дні можна вказати як додатне або від'ємне ціле число або використовуючи тиждень, місяць, квартал або рік для поточного періоду.", + "globalSearch-instructions-notes-4": "Пошук тексту нечутливий до регістру.", + "globalSearch-instructions-notes-5": "За замовчуванням не архівуються картки.", + "link-to-search": "Посилання на цей пошук", "excel-font": "Arial", "number": "Номер", - "label-colors": "Label Colors", - "label-names": "Label Names", - "archived-at": "archived at", - "sort-cards": "Sort Cards", - "sort-is-on": "Sort is on", - "cardsSortPopup-title": "Sort Cards", - "due-date": "Due Date", - "server-error": "Server Error", - "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`", - "title-alphabetically": "Title (Alphabetically)", - "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)", - "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", - "move-swimlane": "Move Swimlane", - "moveSwimlanePopup-title": "Move Swimlane", - "custom-field-stringtemplate": "String Template", - "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", - "custom-field-stringtemplate-separator": "Separator (use or   for a space)", - "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", - "creator": "Creator", - "creator-on-minicard": "Creator on minicard", - "filesReportTitle": "Files Report", - "reports": "Reports", - "rulesReportTitle": "Rules Report", - "boardsReportTitle": "Boards Report", - "cardsReportTitle": "Cards Report", - "copy-swimlane": "Copy Swimlane", - "copySwimlanePopup-title": "Copy Swimlane", - "display-card-creator": "Display Card Creator", - "wait-spinner": "Wait Spinner", - "Bounce": "Bounce Wait Spinner", - "Cube": "Cube Wait Spinner", - "Cube-Grid": "Cube-Grid Wait Spinner", - "Dot": "Dot Wait Spinner", - "Double-Bounce": "Double Bounce Wait Spinner", - "Rotateplane": "Rotateplane Wait Spinner", - "Scaleout": "Scaleout Wait Spinner", - "Wave": "Wave Wait Spinner", - "maximize-card": "Maximize Card", - "minimize-card": "Minimize Card", - "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", - "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", - "subject": "Subject", - "details": "Details", - "carbon-copy": "Carbon Copy (Cc:)", - "ticket": "Ticket", - "tickets": "Tickets", - "ticket-number": "Ticket Number", - "open": "Відкрити", - "pending": "Pending", - "closed": "Closed", - "resolved": "Resolved", - "cancelled": "Cancelled", - "history": "History", - "request": "Request", - "requests": "Requests", - "help-request": "Help Request", - "editCardSortOrderPopup-title": "Change Sorting", - "cardDetailsPopup-title": "Card Details", - "add-teams": "Add teams", - "add-teams-label": "Added teams are displayed below:", - "remove-team-from-table": "Are you sure you want to remove this team from the board ?", - "confirm-btn": "Confirm", + "label-colors": "Кольори міток", + "label-names": "Назви міток", + "archived-at": "заархівовано", + "sort-cards": "Сортування карток", + "sort-is-on": "Сортування увімкнене", + "cardsSortPopup-title": "Сортування карток", + "due-date": "Термін виконання", + "server-error": "Помилка сервера", + "server-error-troubleshooting": "Будь ласка, надішліть помилку, що виникла на сервері.\nДля встановлення через Snap, виконайте: `sudo snap logs wekan.wekan`\nДля встановлення через Docker, виконайте: `sudo docker logs wekan-app`", + "title-alphabetically": "Назва (за алфавітом)", + "created-at-newest-first": "Створено (спочатку найновіші)", + "created-at-oldest-first": "Створено (спочатку найстаріші)", + "links-heading": "Посилання", + "hide-activities-of-all-boards": "Не показуйте дії дошки на всіх дошках", + "now-activities-of-all-boards-are-hidden": "Тепер усі дії всіх дощок приховані", + "move-swimlane": "Перемістити лінію плавання", + "moveSwimlanePopup-title": "Перемістити лінію плавання", + "custom-field-stringtemplate": "Строковий шаблон", + "custom-field-stringtemplate-format": "Формат (використовуйте %{value} як заповнювач)", + "custom-field-stringtemplate-separator": "Роздільник (використовуйте або для пробілу)", + "custom-field-stringtemplate-item-placeholder": "Натисніть Enter, щоб додати ще елементи", + "creator": "Автор", + "creator-on-minicard": "Автор на міні-картці", + "filesReportTitle": "Звіт про файли", + "reports": "Звіти", + "rulesReportTitle": "Звіт про правила", + "boardsReportTitle": "Звіт про дошки", + "cardsReportTitle": "Звіт про картки", + "copy-swimlane": "Копіювати лінію плавання", + "copySwimlanePopup-title": "Копіювати лінію плавання", + "display-card-creator": "Показати автора картки", + "wait-spinner": "Обертовий маркер очікування", + "Bounce": "Обертовий маркер очікування (Bounce)", + "Cube": "Обертовий маркер очікування (Cube)", + "Cube-Grid": "Обертовий маркер очікування (Cube-Grid)", + "Dot": "Обертовий маркер очікування (Dot)", + "Double-Bounce": "Обертовий маркер очікування (Double Bounce)", + "Rotateplane": "Обертовий маркер очікування (Rotateplane)", + "Scaleout": "Обертовий маркер очікування (Scaleout)", + "Wave": "Обертовий маркер очікування (Wave)", + "maximize-card": "Збільшити картку", + "minimize-card": "Зменшити картку", + "delete-org-warning-message": "Не можливо видалити цю організацію, є принаймні один користувач, який до неї належить", + "delete-team-warning-message": "Не можливо видалити цю команду, є принаймні один користувач, який до неї належить", + "subject": "Тема", + "details": "Деталі", + "carbon-copy": "Копія (Cc:)", + "ticket": "Заявка", + "tickets": "Заявки", + "ticket-number": "Номер заявки", + "open": "Відкрита", + "pending": "В очікуванні", + "closed": "Закрита", + "resolved": "Вирішена", + "cancelled": "Скасована", + "history": "Історія", + "request": "Запит", + "requests": "Запити", + "help-request": "Запит на допомогу", + "editCardSortOrderPopup-title": "Змінити порядок сортування", + "cardDetailsPopup-title": "Деталі картки", + "add-teams": "Додати команди", + "add-teams-label": "Додані команди відображаються нижче:", + "remove-team-from-table": "Ви впевнені, що хочете видалити цю команду з дошки?", + "confirm-btn": "Підтвердити", "remove-btn": "Видалити", - "filter-card-title-label": "Filter by card title", - "invite-people-success": "Invitation to register sent with success", - "invite-people-error": "Error while sending invitation to register", - "can-invite-if-same-mailDomainName": "Email domain name", - "to-create-teams-contact-admin": "To create teams, please contact the administrator.", - "Node_heap_total_heap_size": "Node heap: total heap size", - "Node_heap_total_heap_size_executable": "Node heap: total heap size executable", - "Node_heap_total_physical_size": "Node heap: total physical size", - "Node_heap_total_available_size": "Node heap: total available size", - "Node_heap_used_heap_size": "Node heap: used heap size", - "Node_heap_heap_size_limit": "Node heap: heap size limit", - "Node_heap_malloced_memory": "Node heap: malloced memory", - "Node_heap_peak_malloced_memory": "Node heap: peak malloced memory", - "Node_heap_does_zap_garbage": "Node heap: does zap garbage", - "Node_heap_number_of_native_contexts": "Node heap: number of native contexts", - "Node_heap_number_of_detached_contexts": "Node heap: number of detached contexts", - "Node_memory_usage_rss": "Node memory usage: resident set size", - "Node_memory_usage_heap_total": "Node memory usage: total size of the allocated heap", - "Node_memory_usage_heap_used": "Node memory usage: actual memory used", - "Node_memory_usage_external": "Node memory usage: external", - "add-organizations": "Додати організацію", - "add-organizations-label": "Added organizations are displayed below:", - "remove-organization-from-board": "Are you sure you want to remove this organization from this board ?", - "to-create-organizations-contact-admin": "To create organizations, please contact administrator.", - "custom-legal-notice-link-url": "Custom legal notice page URL", - "acceptance_of_our_legalNotice": "By continuing, you accept our", - "legalNotice": "legal notice", - "copied": "Копійовано!", - "checklistActionsPopup-title": "Checklist Actions", - "moveChecklist": "Move Checklist", - "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", - "copyChecklist": "Copy Checklist", - "copyChecklistPopup-title": "Copy Checklist", - "card-show-lists": "Card Show Lists", - "subtaskActionsPopup-title": "Subtask Actions", - "attachmentActionsPopup-title": "Attachment Actions", - "attachment-move-storage-fs": "Move attachment to filesystem", - "attachment-move-storage-gridfs": "Move attachment to GridFS", - "attachment-move-storage-s3": "Move attachment to S3", - "attachment-move": "Move Attachment", - "move-all-attachments-to-fs": "Move all attachments to filesystem", - "move-all-attachments-to-gridfs": "Move all attachments to GridFS", - "move-all-attachments-to-s3": "Move all attachments to S3", - "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", - "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", - "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", - "path": "Path", - "version-name": "Version-Name", - "size": "Size", - "storage": "Storage", - "action": "Action", - "board-title": "Board Title", - "attachmentRenamePopup-title": "Перейменувати", - "uploading": "Uploading", - "remaining_time": "Remaining time", - "speed": "Speed", - "progress": "Progress", - "password-again": "Password (again)", - "if-you-already-have-an-account": "If you already have an account", - "register": "Register", - "forgot-password": "Forgot password", - "minicardDetailsActionsPopup-title": "Card Details", - "Mongo_sessions_count": "Mongo sessions count", - "change-visibility": "Change Visibility", - "max-upload-filesize": "Max upload filesize in bytes:", - "allowed-upload-filetypes": "Allowed upload filetypes:", - "max-avatar-filesize": "Max avatar filesize in bytes:", - "allowed-avatar-filetypes": "Allowed avatar filetypes:", - "invalid-file": "If filename is invalid, upload or rename is cancelled.", - "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", - "drag-board": "Drag board", - "translation-number": "The number of custom translation strings is:", - "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", - "newTranslationPopup-title": "New custom translation string", - "editTranslationPopup-title": "Edit custom translation string", - "settingsTranslationPopup-title": "Delete this custom translation string?", - "translation": "Translation", + "filter-card-title-label": "Фільтрувати за назвою картки", + "invite-people-success": "Запрошення на реєстрацію надіслано успішно", + "invite-people-error": "Помилка під час надсилання запрошення на реєстрацію", + "can-invite-if-same-mailDomainName": "Домен електронної пошти", + "to-create-teams-contact-admin": "Для створення команд зв'яжіться з адміністратором.", + "Node_heap_total_heap_size": "Пам'ять кучі Node: загальний розмір кучі", + "Node_heap_total_heap_size_executable": "Пам'ять кучі Node: загальний розмір виконуваного файлу кучі", + "Node_heap_total_physical_size": "Пам'ять кучі Node: загальний фізичний розмір", + "Node_heap_total_available_size": "Пам'ять кучі Node: загальний доступний розмір", + "Node_heap_used_heap_size": "Пам'ять кучі Node: використаний розмір кучі", + "Node_heap_heap_size_limit": "Пам'ять кучі Node: обмеження розміру кучі", + "Node_heap_malloced_memory": "Пам'ять кучі Node: видалена пам'ять", + "Node_heap_peak_malloced_memory": "Пам'ять кучі Node: пікова видалена пам'ять", + "Node_heap_does_zap_garbage": "Пам'ять кучі Node: зміни гарбиж-коллектора", + "Node_heap_number_of_native_contexts": "Пам'ять кучі Node: кількість контекстів Native", + "Node_heap_number_of_detached_contexts": "Пам'ять кучі Node: кількість відокремлених контекстів", + "Node_memory_usage_rss": "Використання пам'яті Node: резидентний розмір набору", + "Node_memory_usage_heap_total": "Використання пам'яті Node: загальний розмір виділеної кучі", + "Node_memory_usage_heap_used": "Використання пам'яті Node: фактично використана пам'ять", + "Node_memory_usage_external": "Використання пам'яті Node: зовнішня", + "add-organizations": "Додати організації", + "add-organizations-label": "Додані організації відображаються нижче:", + "remove-organization-from-board": "Ви впевнені, що хочете видалити цю організацію з цієї дошки?", + "to-create-organizations-contact-admin": "Для створення організацій, будь ласка, зв'яжіться з адміністратором.", + "custom-legal-notice-link-url": "URL сторінки зі спеціальним юридичним повідомленням", + "acceptance_of_our_legalNotice": "Продовжуючи, ви приймаєте наше", + "legalNotice": "юридичне повідомлення", + "copied": "Скопійовано!", + "checklistActionsPopup-title": "Дії з чек-листом", + "moveChecklist": "Перемістити чек-лист", + "moveChecklistPopup-title": "Переміщення чек-листу", + "newlineBecomesNewChecklistItem": "Кожен рядок тексту стає одним із пунктів контрольного списку", + "newLineNewItem": "Один рядок тексту = один пункт контрольного списку", + "newlineBecomesNewChecklistItemOriginOrder": "Кожен рядок тексту стає одним із пунктів контрольного списку, в оригінальному порядку", + "originOrder": "оригінальний порядок", + "copyChecklist": "Скопіювати чек-лист", + "copyChecklistPopup-title": "Копіювання чек-листу", + "card-show-lists": "Карта Показ списків", + "subtaskActionsPopup-title": "Дії з підзавданнями", + "attachmentActionsPopup-title": "Дії з вкладеннями", + "attachment-move-storage-fs": "Перемістити вкладення в файлову систему", + "attachment-move-storage-gridfs": "Перемістити вкладення в GridFS", + "attachment-move-storage-s3": "Перемістити вкладення в S3", + "attachment-move": "Перемістити вкладення", + "move-all-attachments-to-fs": "Перемістити всі вкладення в файлову систему", + "move-all-attachments-to-gridfs": "Перемістити всі вкладення в GridFS", + "move-all-attachments-to-s3": "Перемістити всі вкладення в S3", + "move-all-attachments-of-board-to-fs": "Перемістити всі вкладення дошки в файлову систему", + "move-all-attachments-of-board-to-gridfs": "Перемістити всі вкладення дошки в GridFS", + "move-all-attachments-of-board-to-s3": "Перемістити всі вкладення дошки в S3", + "path": "Шлях", + "version-name": "Назва версії", + "size": "Розмір", + "storage": "Сховище", + "action": "Дія", + "board-title": "Назва дошки", + "attachmentRenamePopup-title": "Перейменувати вкладення", + "uploading": "Завантаження", + "remaining_time": "Залишилось часу", + "speed": "Швидкість", + "progress": "Прогрес", + "password-again": "Пароль (ще раз)", + "if-you-already-have-an-account": "Якщо у вас вже є обліковий запис", + "register": "Реєстрація", + "forgot-password": "Забули пароль", + "minicardDetailsActionsPopup-title": "Дії з міні-карткою", + "Mongo_sessions_count": "Кількість сесій MongoDB", + "change-visibility": "Змінити видимість", + "max-upload-filesize": "Максимальний розмір файлу для завантаження (у байтах)", + "allowed-upload-filetypes": "Дозволені типи файлів для завантаження:", + "max-avatar-filesize": "Максимальний розмір аватара (у байтах):", + "allowed-avatar-filetypes": "Дозволені типи файлів для аватарів:", + "invalid-file": "Якщо ім'я файлу неправильне, завантаження або перейменування скасовується", + "preview-pdf-not-supported": "Попередній перегляд PDF не підтримується на вашому пристрої. Спробуйте завантажити файл", + "drag-board": "Перетягнути дошку", + "translation-number": "Кількість рядків для перекладу:", + "delete-translation-confirm-popup": "Ви впевнені, що хочете видалити користувацький рядок перекладу? Цю дію не можна скасувати.", + "newTranslationPopup-title": "Новий користувацький рядок перекладу", + "editTranslationPopup-title": "Редагування користувацького рядка перекладу", + "settingsTranslationPopup-title": "Видалити користувацький рядок перекладу?", + "translation": "Переклад", "text": "Текст", - "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", - "show-subtasks-field": "Show subtasks field", - "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "translation-text": "Перекласти текст", + "show-subtasks-field": "Показати поле підзавдань", + "show-week-of-year": "Показати тиждень року (ISO 8601)", + "convert-to-markdown": "Конвертувати в Markdown", + "import-board-zip": "Додати файл .zip, який містить файли JSON дошки та підкаталоги з назвами дошок і вкладеннями", + "collapse": "Згорнути", + "uncollapse": "Розгорнути", + "hideCheckedChecklistItems": "Приховати відмічені елементи чек-листа", + "hideAllChecklistItems": "Приховати всі пункти чек-листа", + "support": "Підтримка", + "supportPopup-title": "Підтримка", + "accessibility-page-enabled": "Доступность сторінки ввімкнена", + "accessibility-title": "Доступность теми", + "accessibility-content": "Доступность вмісту" } diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index 2b123c3c1..396f77407 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -1,7 +1,7 @@ { "accept": "Прийняти", "act-activity-notify": "Сповіщення про активність учасників", - "act-addAttachment": "прикріплено вкладення __attachment__ до картки__card__ у списку __list__ на доріжці __swimlane__ дошки__board__", + "act-addAttachment": "додано вкладення __attachment__ до картки __card__ у списку __list__ на доріжці __swimlane__ дошки __board__", "act-deleteAttachment": "видалено вкладення __attachment__ з картки __card__ у списку __list__ на доріжці __swimlane__ дошки __board__", "act-addSubtask": "додано підзадачу __subtask__ для картки __card__ у списку __list__ на доріжці __swimlane__ дошки __board__", "act-addLabel": "Додано мітку __label__ до картки __card__ у списку __list__ на доріжці __swimlane__ дошки __board__", @@ -19,37 +19,38 @@ "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-createBoard": "Дошку __board__створено", - "act-createSwimlane": "created swimlane __swimlane__ to board __board__", - "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", - "act-createCustomField": "created custom field __customField__ at board __board__", - "act-deleteCustomField": "deleted custom field __customField__ at board __board__", - "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-createList": "added list __list__ to board __board__", - "act-addBoardMember": "added member __member__ to board __board__", + "act-createBoard": "Дошку __board__ створено", + "act-createSwimlane": "створено доріжку __swimlane__ на дошці __board__", + "act-createCard": "створено картку __card__ у списку __list__ на доріжці __swimlane__ на дошці __board__", + "act-createCustomField": "створено спеціальне поле __customField__ на дошці __board__", + "act-deleteCustomField": "видалено спеціальне поле __customField__ на дошці __board__", + "act-setCustomField": "відредаговано спеціальне поле __customField__: __customFieldValue__ у картці __card__ у списку __list__ на доріжці __swimlane__ на дошці __board__", + "act-createList": "додано список __list__ на дошці __board__", + "act-addBoardMember": "додано учасника __member__ до дошки __board__", "act-archivedBoard": "Дошку __board__ переміщено до Архіву", - "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive", - "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive", - "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedCard": "Картку __card__ у списку __list__ на доріжці __swimlane__ на дошці __board__ переміщено до Архіву", + "act-archivedList": "Список __list__ на доріжці __swimlane__ на дошці __board__ переміщено до Архіву", + "act-archivedSwimlane": "Доріжку __swimlane__ на дошці __board__ переміщено до Архіву", "act-importBoard": "Імпортовано дошку __board__", - "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__", - "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__", - "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", - "act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__", - "act-removeBoardMember": "removed member __member__ from board __board__", - "act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__", - "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-importCard": "імпортовано картку __card__ у список __list__ на доріжку __swimlane__ до дошки __board__", + "act-importList": "імпортовано список __list__ у доріжку __swimlane__ на дошку __board__", + "act-joinMember": "додано учасника __member__ до картки __card__ у списку __list__ на доріжці __swimlane__ до дошки __board__", + "act-moveCard": "переміщено картку __card__ на дошці __board__ із списку __oldList__ на доріжку __oldSwimlane__ до списку __list__ на доріжку __swimlane__", + "act-moveCardToOtherBoard": "переміщено картку __card__ із списку __oldList__ на доріжку __oldSwimlane__ до дошки __oldBoard__ у список __list__ на доріжку __swimlane__ на дошці __board__", + "act-removeBoardMember": "видалено учасника __member__ з дошки __board__", + "act-restoredCard": "відновлено картку __card__ у список __list__ на доріжці __swimlane__ на дошці __board__", + "act-unjoinMember": "видалено учасника __member__ з картки __card__ у списку __list__ на доріжці __swimlane__ до дошки __board__", "act-withBoardTitle": "__board__", "act-withCardTitle": "[__board__] __card__", "actions": "Дії", "activities": "Діяльності", - "activity": "Діяльність", + "activity": "Активність", "activity-added": "%s додано до %s", "activity-archived": "%s перенесено до архіву", "activity-attached": "%s прикріплено до %s", - "activity-created": "%sстворено", - "activity-customfield-created": "Створено спеціальне поле%s", + "activity-created": "%s створено", + "activity-changedListTitle": "перейменовано список у %s", + "activity-customfield-created": "Створено спеціальне поле %s", "activity-excluded": "%s виключено з %s", "activity-imported": "%s імпортовано до %s з %s", "activity-imported-board": "%s імпортовано з %s", @@ -60,8 +61,8 @@ "activity-sent": "%s відправлено до %s", "activity-unjoined": "unjoined %s", "activity-subtask-added": "Додано підзадачу до %s", - "activity-checked-item": "checked %s in checklist %s of %s", - "activity-unchecked-item": "unchecked %s in checklist %s of %s", + "activity-checked-item": "позначено виконаним %s у контрольному списку %s у картці %s у списку %s на доріжці %s дошки %s", + "activity-unchecked-item": "позначено як невиконане %s у контрольному списку %s у картці %s у списку %s на доріжці %s дошки %s", "activity-checklist-added": "Додано контрольний список до %s", "activity-checklist-removed": "removed a checklist from %s", "activity-checklist-completed": "completed checklist %s of %s", @@ -69,9 +70,9 @@ "activity-checklist-item-added": "added checklist item to '%s' in %s", "activity-checklist-item-removed": "removed a checklist item from '%s' in %s", "add": "Додати", - "activity-checked-item-card": "checked %s in checklist %s", - "activity-unchecked-item-card": "unchecked %s in checklist %s", - "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checked-item-card": "позначено виконаним %s у контрольному списку %s", + "activity-unchecked-item-card": "позначено як невиконане %s у контрольному списку %s", + "activity-checklist-completed-card": "completed checklist %s at card %s at list %s at swimlane %s at board %s", "activity-checklist-uncompleted-card": "uncompleted the checklist %s", "activity-editComment": "відредаговано коментар %s", "activity-deleteComment": "видалено коментар %s", @@ -81,143 +82,145 @@ "activity-endDate": "edited end date to %s of %s", "add-attachment": "Додати вкладення", "add-board": "Додати дошку", - "add-template": "Add Template", + "add-template": "Додати шаблон", "add-card": "Додати картку", - "add-card-to-top-of-list": "Add Card to Top of List", - "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Встановити ширину списку", - "set-list-width": "Встановити ширину списку", - "set-list-width-value": "Ширина списку (у пікселях)", - "list-width-error-message": "Список має бути цілим числом, що є більше за 0", + "add-card-to-top-of-list": "Додати картку на початок списку", + "add-card-to-bottom-of-list": "Додати картку у кінець списку", + "setListWidthPopup-title": "Встановити ширину", + "set-list-width": "Встановити ширину", + "set-list-width-value": "Встановити мін. та макс. ширину (у пікселях)", + "list-width-error-message": "Ширина списку має бути цілим числом, більшим за 100", + "keyboard-shortcuts-enabled": "Комбінації клавіш увімкнено. Натисніть, щоб вимкнути.", + "keyboard-shortcuts-disabled": "Комбінації клавіш вимкнено. Натисніть, щоб увімкнути.", "setSwimlaneHeightPopup-title": "Встановити довжину доріжки", "set-swimlane-height": "Встановити довжину доріжки", "set-swimlane-height-value": "Висота доріжки (у пікселях)", "swimlane-height-error-message": "Висота доріжки мусить бути цілим числом більше 0", - "add-swimlane": "Add Swimlane", + "add-swimlane": "Додати доріжку", "add-subtask": "Додати підзадачу", - "add-checklist": "Add Checklist", + "add-checklist": "Додати контрольний список", "add-checklist-item": "Додати елемент в список", - "close-add-checklist-item": "Close add an item to checklist form", - "close-edit-checklist-item": "Close edit an item to checklist form", - "convertChecklistItemToCardPopup-title": "Convert to Card", - "add-cover": "Додати фонове зоображення до міні-картки", + "close-add-checklist-item": "Закрити форму додавання елемента до контрольного списку", + "close-edit-checklist-item": "Закрити форму редагування елемента контрольного списку", + "convertChecklistItemToCardPopup-title": "Перетворити у картку", + "add-cover": "Додати обкладинку", "add-label": "Додати мітку", "add-list": "Додати список", "add-after-list": "Додати після списку", - "add-members": "Додати користувача", - "added": "Доданно", - "addMemberPopup-title": "Користувачі", - "memberPopup-title": "Member Settings", - "admin": "Адмін", - "admin-desc": "Може переглядати і редагувати картки, відаляти учасників та змінювати налаштування для дошки.", + "add-members": "Додати учасників", + "added": "Додано", + "addMemberPopup-title": "Учасники", + "memberPopup-title": "Налаштування учасників", + "admin": "Адміністратор", + "admin-desc": "Може переглядати і редагувати картки, видаляти учасників та змінювати налаштування для дошки.", "admin-announcement": "Оголошення", - "admin-announcement-active": "Active System-Wide Announcement", - "admin-announcement-title": "Announcement from Administrator", + "admin-announcement-active": "Активне системне оголошення", + "admin-announcement-title": "Оголошення адміністратора", "all-boards": "Всі дошки", - "and-n-other-card": "та __count__ інших карток", - "and-n-other-card_plural": "та __count__ інших карток", - "apply": "Прийняти", - "app-is-offline": "Завантаження, будь ласка, зачекайте. Оновлення сторінки призведе до втрати даних. Якщо завантаження не працює, перевірте, чи не зупинився сервер.", - "app-try-reconnect": "Try to reconnect.", - "archive": "Перенести до Архіву", - "archive-all": "Перенести Все до Архіву", - "archive-board": "Перенести Дошку до Архіву", - "archive-card": "Перенести Картку до Архіву", - "archive-list": "Перенести Список до Архіву", - "archive-swimlane": "Move Swimlane to Archive", - "archive-selection": "Move selection to Archive", - "archiveBoardPopup-title": "Перенести Дошку до Архіву?", + "and-n-other-card": "і ще __count__ картка", + "and-n-other-card_plural": "і ще __count__ картки", + "apply": "Застосувати", + "app-is-offline": "Додаток офлайн. Зачекайте, будь ласка.", + "app-try-reconnect": "Спробувати з'єднатися знову", + "archive": "Перенести до архіву", + "archive-all": "Перенести все до архіву", + "archive-board": "Перенести дошку до архіву", + "archive-card": "Перенести картку до архіву", + "archive-list": "Перенести список до архіву", + "archive-swimlane": "Перенести доріжку до архіву", + "archive-selection": "Перенести вибране до архіву", + "archiveBoardPopup-title": "Перенести дошку до архіву?", "archived-items": "Архів", - "archived-boards": "Дошки в архіві", + "archived-boards": "Архівні дошки", "restore-board": "Відновити дошку", - "no-archived-boards": "Немає дошок в архіві", + "no-archived-boards": "Немає архівних дошок", "archives": "Архів", "template": "Шаблон", "templates": "Шаблони", - "template-container": "Template Container", - "add-template-container": "Add Template Container", + "template-container": "Шаблон контейнера", + "add-template-container": "Додати шаблон контейнера", "assign-member": "Призначити користувача", - "attached": "доданно", + "attached": "додано", "attachment": "Додаток", - "attachment-delete-pop": "Видалення Додатку безповоротне. Тут нема відміні (undo).", - "attachmentDeletePopup-title": "Видалити Додаток?", + "attachment-delete-pop": "Видалення додатку безповоротне. Відмінити не можна.", + "attachmentDeletePopup-title": "Видалити додаток?", "attachments": "Додатки", "auto-watch": "Автоматично дивитися дошки, коли вони створені", "avatar-too-big": "Аватар надто великий (__size__max)", "back": "Назад", "board-change-color": "Змінити колір", - "board-change-background-image": "Змінити Фонове Зоображення\n", - "board-background-image-url": "Посилання на Фонове зоображення", - "add-background-image": "Додати фонове зоображення", - "remove-background-image": "Видалити фонове зоображення", - "show-at-all-boards-page" : "Show at All Boards page", - "board-info-on-my-boards" : "All Boards Settings", - "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", - "boardInfoOnMyBoards-title": "All Boards Settings", - "show-card-counter-per-list": "Show card count per list", - "show-board_members-avatar": "Show Board members avatars", - "board-nb-stars": "%s stars", + "board-change-background-image": "Змінити фонове зображення", + "board-background-image-url": "Посилання на фонове зображення", + "add-background-image": "Додати фонове зображення", + "remove-background-image": "Видалити фонове зображення", + "show-at-all-boards-page" : "Показувати на сторінці всіх дошок", + "board-info-on-my-boards" : "Налаштування всіх дошок", + "boardInfoOnMyBoardsPopup-title" : "Налаштування всіх дошок", + "boardInfoOnMyBoards-title": "Налаштування всіх дошок", + "show-card-counter-per-list": "Показувати кількість карток у списку", + "show-board_members-avatar": "Показати аватари учасників дошки", + "board-nb-stars": "%s зірок", "board-not-found": "Дошка не знайдена", - "board-private-info": "This board will be <strong>private</strong>.", - "board-public-info": "This board will be <strong>public</strong>.", - "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.", - "boardChangeColorPopup-title": "Змінити Фон Дошки", - "boardChangeBackgroundImagePopup-title": "Змінити Фонове Зоображення\n", + "board-private-info": "Ця дошка буде <strong>приватною</strong>.", + "board-public-info": "Ця дошка буде <strong>публічною</strong>.", + "board-drag-drop-reorder-or-click-open": "Перетягніть та відпустіть, щоб змінити порядок іконок дошок. Натисніть на іконку дошки, щоб відкрити дошку.", + "boardChangeColorPopup-title": "Змінити фон дошки", + "boardChangeBackgroundImagePopup-title": "Змінити фонове зображення", "allBoardsChangeColorPopup-title": "Змінити колір", - "allBoardsChangeBackgroundImagePopup-title": "Змінити Фонове Зоображення\n", + "allBoardsChangeBackgroundImagePopup-title": "Змінити фонове зображення", "boardChangeTitlePopup-title": "Перейменувати дошку", - "boardChangeVisibilityPopup-title": "Change Visibility", - "boardChangeWatchPopup-title": "Change Watch", - "boardMenuPopup-title": "Board Settings", + "boardChangeVisibilityPopup-title": "Змінити налаштування видимості", + "boardChangeWatchPopup-title": "Змінити налаштування спостереження", + "boardMenuPopup-title": "Налаштування дошки", "allBoardsMenuPopup-title": "Налаштування", - "boardChangeViewPopup-title": "Вид Дошки", + "boardChangeViewPopup-title": "Вид дошки", "boards": "Дошки", - "board-view": "Вид Дошки", + "board-view": "Вид дошки", "board-view-cal": "Календар", - "board-view-swimlanes": "Swimlanes", - "board-view-collapse": "Collapse", - "board-view-gantt": "Gantt", - "board-view-lists": "Lists", - "bucket-example": "Like “Bucket List” for example", - "cancel": "Відміна", - "card-archived": "This card is moved to Archive.", - "board-archived": "This board is moved to Archive.", - "card-comments-title": "This card has %s comment.", + "board-view-swimlanes": "Свімлейни", + "board-view-collapse": "Згорнути", + "board-view-gantt": "Гантт", + "board-view-lists": "Списки", + "bucket-example": "Наприклад, 'Список бажань'", + "cancel": "Скасувати", + "card-archived": "Цю картку переміщено до архіву.", + "board-archived": "Цю дошку переміщено до архіву.", + "card-comments-title": "Ця картка має %s коментар.", "card-delete-notice": "Цю дію неможливо буде скасувати. Всі зміни, які ви вносили в картку будуть втрачені.", "card-delete-pop": "Усі дії буде видалено з каналу активності, і ви не зможете повторно відкрити картку. Цю дію не можна скасувати.", "card-delete-suggest-archive": "Ви можете перемістити картку до архіву, щоб прибрати її з дошки, зберігаючи всю історію дій учасників.", - "card-archive-pop": "Card will not be visible at this list after archiving card.", - "card-archive-suggest-cancel": "You can later restore card from Archive.", - "card-due": "Due", - "card-due-on": "Due on", + "card-archive-pop": "Картка не буде видимою у цьому списку після переміщення до архіву.", + "card-archive-suggest-cancel": "Пізніше ви зможете відновити картку з архіву.", + "card-due": "Термін", + "card-due-on": "Термін на", "card-spent": "Витрачено часу", - "card-edit-attachments": "Edit attachments", - "card-edit-custom-fields": "Edit custom fields", + "card-edit-attachments": "Змінити вкладення", + "card-edit-custom-fields": "Редагувати налаштування", "card-edit-labels": "Редагувати мітки", "card-edit-members": "Редагувати учасників", - "card-labels-title": "Change the labels for the card.", - "card-members-title": "Add or remove members of the board from the card.", - "card-start": "Start", - "card-start-on": "Starts on", - "cardAttachmentsPopup-title": "Attach From", - "cardCustomField-datePopup-title": "Change date", - "cardCustomFieldsPopup-title": "Edit custom fields", - "cardStartVotingPopup-title": "Start a vote", - "positiveVoteMembersPopup-title": "Proponents", - "negativeVoteMembersPopup-title": "Opponents", - "card-edit-voting": "Edit voting", - "editVoteEndDatePopup-title": "Change vote end date", - "allowNonBoardMembers": "Allow all logged in users", - "vote-question": "Voting question", - "vote-public": "Show who voted what", - "vote-for-it": "for it", - "vote-against": "against", - "deleteVotePopup-title": "Delete vote?", - "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.", - "cardStartPlanningPokerPopup-title": "Start a Planning Poker", - "card-edit-planning-poker": "Edit Planning Poker", - "editPokerEndDatePopup-title": "Change Planning Poker vote end date", - "poker-question": "Planning Poker", + "card-labels-title": "Змінити мітки для картки.", + "card-members-title": "Додати або видалити учасників дошки з картки.", + "card-start": "Початок", + "card-start-on": "Початок з", + "cardAttachmentsPopup-title": "Приєднати з", + "cardCustomField-datePopup-title": "Змінити дату", + "cardCustomFieldsPopup-title": "Редагувати налаштування", + "cardStartVotingPopup-title": "Розпочати голосування", + "positiveVoteMembersPopup-title": "Прихильники", + "negativeVoteMembersPopup-title": "Противники", + "card-edit-voting": "Редагувати голосування", + "editVoteEndDatePopup-title": "Змінити кінцеву дату голосування", + "allowNonBoardMembers": "Дозволити усім авторизованим користувачам", + "vote-question": "Питання для голосування", + "vote-public": "Показати, хто як голосував", + "vote-for-it": "за це", + "vote-against": "проти", + "deleteVotePopup-title": "Видалити голосування?", + "vote-delete-pop": "Видалення є безповоротним. Ви втратите всі дії, пов'язані з цим голосуванням.", + "cardStartPlanningPokerPopup-title": "Розпочати планувальний покер", + "card-edit-planning-poker": "Редагувати планувальний покер", + "editPokerEndDatePopup-title": "Змінити кінцеву дату голосування в планувальному покері", + "poker-question": "Планувальний покер", "poker-one": "1", "poker-two": "2", "poker-three": "3", @@ -228,1023 +231,1042 @@ "poker-forty": "40", "poker-oneHundred": "100", "poker-unsure": "?", - "poker-finish": "Finish", - "poker-result-votes": "Votes", - "poker-result-who": "Who", - "poker-replay": "Replay", - "set-estimation": "Set Estimation", - "deletePokerPopup-title": "Delete planning poker?", - "poker-delete-pop": "Deleting is permanent. You will lose all actions associated with this planning poker.", + "poker-finish": "Завершити", + "poker-result-votes": "Голоси", + "poker-result-who": "Хто", + "poker-replay": "Повторити", + "set-estimation": "Встановити оцінку", + "deletePokerPopup-title": "Видалити планувальний покер?", + "poker-delete-pop": "Видалення є безповоротним. Ви втратите всі дії, пов'язані з цим планувальним покером.", "cardDeletePopup-title": "Видалити картку?", - "cardArchivePopup-title": "Archive Card?", - "cardDetailsActionsPopup-title": "Card Actions", - "cardLabelsPopup-title": "Labels", - "cardMembersPopup-title": "Користувачі", - "cardMorePopup-title": "More", - "cardTemplatePopup-title": "Create template", + "cardArchivePopup-title": "Заархівувати картку?", + "cardDetailsActionsPopup-title": "Дії з карткою", + "cardLabelsPopup-title": "Мітки", + "cardMembersPopup-title": "Учасники", + "cardMorePopup-title": "Більше", + "cardTemplatePopup-title": "Створити шаблон", "cards": "Картки", "cards-count": "Картки", "cards-count-one": "Картка", - "casSignIn": "Sign In with CAS", + "casSignIn": "Увійти за допомогою CAS", "cardType-card": "Картка", - "cardType-linkedCard": "Linked Card", - "cardType-linkedBoard": "Linked Board", + "cardType-linkedCard": "Пов'язана картка", + "cardType-linkedBoard": "Пов'язана дошка", "change": "Змінити", "change-avatar": "Змінити аватар", "change-password": "Змінити пароль", - "change-permissions": "Change permissions", + "change-permissions": "Змінити права доступу", "change-settings": "Змінити налаштування", "changeAvatarPopup-title": "Змінити аватар", "changeLanguagePopup-title": "Змінити мову", "changePasswordPopup-title": "Змінити пароль", - "changePermissionsPopup-title": "Change Permissions", + "changePermissionsPopup-title": "Змінити права доступу", "changeSettingsPopup-title": "Змінити налаштування", "subtasks": "Підзадачі", - "checklists": "Checklists", - "click-to-star": "Click to star this board.", - "click-to-unstar": "Click to unstar this board.", - "clipboard": "Clipboard or drag & drop", + "checklists": "Контрольні списки", + "click-to-star": "Натисніть, щоб відзначити цю дошку зірочкою.", + "click-to-unstar": "Натисніть, щоб видалити зірочку з цієї дошки.", + "click-to-enable-auto-width": "Автоматична ширина списку вимкнена. Натисніть, щоб увімкнути.", + "click-to-disable-auto-width": "Автоматична ширина списку увімкнена. Натисніть, щоб вимкнути.", + "auto-list-width": "Автоматична ширина списку", + "clipboard": "Буфер обміну або перетягнути і відпустити", "close": "Закрити", - "close-board": "Close Board", - "close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.", - "close-card": "Close Card", + "close-board": "Закрити дошку", + "close-board-pop": "Ви зможете відновити дошку, натиснувши кнопку «Архів» в заголовку домашньої сторінки.", + "close-card": "Закрити картку", "color-black": "чорний", "color-blue": "синій", - "color-crimson": "crimson", - "color-darkgreen": "darkgreen", - "color-gold": "gold", - "color-gray": "gray", + "color-crimson": "малиновий", + "color-darkgreen": "темно-зелений", + "color-gold": "золотий", + "color-gray": "сірий", "color-green": "зелений", - "color-indigo": "indigo", + "color-indigo": "індиго", "color-lime": "лайм", - "color-magenta": "magenta", - "color-mistyrose": "mistyrose", - "color-navy": "navy", + "color-magenta": "пурпурний", + "color-mistyrose": "тьмяно-рожевий", + "color-navy": "темно-синій", "color-orange": "помаранчевий", - "color-paleturquoise": "paleturquoise", - "color-peachpuff": "peachpuff", + "color-paleturquoise": "блідо-бірюзовий", + "color-peachpuff": "персиковий", "color-pink": "рожевий", - "color-plum": "plum", + "color-plum": "сливовий", "color-purple": "фіолетовий", "color-red": "червоний", - "color-saddlebrown": "saddlebrown", - "color-silver": "silver", - "color-sky": "sky", - "color-slateblue": "slateblue", - "color-white": "white", + "color-saddlebrown": "шкіряно-коричневий", + "color-silver": "срібний", + "color-sky": "голубий", + "color-slateblue": "сіро-голубий", + "color-white": "білий", "color-yellow": "жовтий", - "unset-color": "Unset", + "unset-color": "Скасувати колір", + "comments": "Коментарі", "comment": "Коментар", "comment-placeholder": "Написати коментар", - "comment-only": "Comment only", - "comment-only-desc": "Can comment on cards only.", - "comment-delete": "Are you sure you want to delete the comment?", - "deleteCommentPopup-title": "Delete comment?", + "comment-only": "Тільки коментарі", + "comment-only-desc": "Може коментувати тільки картки.", + "comment-delete": "Ви впевнені, що хочете видалити коментар?", + "deleteCommentPopup-title": "Видалити коментар?", "no-comments": "Немає коментарів", - "no-comments-desc": "Can not see comments and activities.", - "worker": "Worker", - "worker-desc": "Can only move cards, assign itself to card and comment.", - "computer": "Computer", - "confirm-subtask-delete-popup": "Are you sure you want to delete subtask?", - "confirm-checklist-delete-popup": "Are you sure you want to delete the checklist?", - "subtaskDeletePopup-title": "Delete Subtask?", - "checklistDeletePopup-title": "Delete Checklist?", + "no-comments-desc": "Не може бачити коментарі та активність.", + "worker": "Робітник", + "worker-desc": "Може тільки переміщати картки, призначати себе до картки і коментувати.", + "computer": "Комп'ютер", + "confirm-subtask-delete-popup": "Ви впевнені, що хочете видалити підзадачу?", + "confirm-checklist-delete-popup": "Ви впевнені, що хочете видалити контрольний список?", + "subtaskDeletePopup-title": "Видалити підзадачу?", + "checklistDeletePopup-title": "Видалити контрольний список?", "copy-card-link-to-clipboard": "Скопіювати посилання на картку в буфер обміну", - "copy-text-to-clipboard": "Copy text to clipboard", - "linkCardPopup-title": "Link Card", - "searchElementPopup-title": "Шукати", - "copyCardPopup-title": "Copy Card", - "copyManyCardsPopup-title": "Copy Template to Many Cards", - "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", - "copyManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", - "create": "Create", - "createBoardPopup-title": "Create Board", - "chooseBoardSourcePopup-title": "Import board", - "createLabelPopup-title": "Create Label", - "createCustomField": "Create Field", - "createCustomFieldPopup-title": "Create Field", - "current": "current", - "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", - "custom-field-checkbox": "Checkbox", - "custom-field-currency": "Currency", - "custom-field-currency-option": "Currency Code", + "copy-text-to-clipboard": "Скопіювати текст у буфер обміну", + "linkCardPopup-title": "Зв'язати картку", + "searchElementPopup-title": "Пошук", + "copyCardPopup-title": "Скопіювати картку", + "copyManyCardsPopup-title": "Скопіювати шаблон на багато карток", + "copyManyCardsPopup-instructions": "Заголовки та описи карток призначення у цьому JSON форматі", + "copyManyCardsPopup-format": "[{\"title\": \"Перший заголовок картки\", \"description\":\"Перший опис картки\"}, {\"title\":\"Другий заголовок картки\",\"description\":\"Другий опис картки\"},{\"title\":\"Останній заголовок картки\",\"description\":\"Останній опис картки\"} ]", + "create": "Створити", + "createBoardPopup-title": "Створити дошку", + "chooseBoardSourcePopup-title": "Імпортувати дошку", + "createLabelPopup-title": "Створити мітку", + "createCustomField": "Створити поле", + "createCustomFieldPopup-title": "Створити поле", + "current": "поточний", + "custom-field-delete-pop": "Немає відкату. Це видалить це налаштоване поле з усіх карток і знищить його історію.", + "custom-field-checkbox": "Прапорець", + "custom-field-currency": "Валюта", + "custom-field-currency-option": "Код валюти", "custom-field-date": "Дата", - "custom-field-dropdown": "Dropdown List", - "custom-field-dropdown-none": "(none)", - "custom-field-dropdown-options": "List Options", - "custom-field-dropdown-options-placeholder": "Press enter to add more options", - "custom-field-dropdown-unknown": "(unknown)", + "custom-field-dropdown": "Випадаючий список", + "custom-field-dropdown-none": "(жодного)", + "custom-field-dropdown-options": "Опції списку", + "custom-field-dropdown-options-placeholder": "Натисніть enter, щоб додати більше опцій", + "custom-field-dropdown-unknown": "(невідомо)", "custom-field-number": "Номер", "custom-field-text": "Текст", - "custom-fields": "Custom Fields", + "custom-fields": "Налаштовані поля", "date": "Дата", "decline": "Відхилити", "default-avatar": "Аватар за замовчуванням", "delete": "Видалити", - "deleteCustomFieldPopup-title": "Delete Custom Field?", - "deleteLabelPopup-title": "Delete Label?", + "deleteCustomFieldPopup-title": "Видалити налаштоване поле?", + "deleteLabelPopup-title": "Видалити мітку?", "description": "Опис", - "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", - "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", - "discard": "Відхилити", - "done": "Done", + "disambiguateMultiLabelPopup-title": "Розрізнити дію мітки", + "disambiguateMultiMemberPopup-title": "Розрізнити дію учасника", + "discard": "Відкинути", + "done": "Виконано", "download": "Завантажити", "edit": "Редагувати", "edit-avatar": "Змінити аватар", - "edit-profile": "Редагувати Профіль", - "edit-wip-limit": "Edit WIP Limit", - "soft-wip-limit": "Soft WIP Limit", - "editCardStartDatePopup-title": "Change start date", - "editCardDueDatePopup-title": "Change due date", - "editCustomFieldPopup-title": "Edit Field", - "addReactionPopup-title": "Add reaction", - "editCardSpentTimePopup-title": "Change spent time", - "editLabelPopup-title": "Change Label", - "editNotificationPopup-title": "Edit Notification", - "editProfilePopup-title": "Редагувати Профіль", + "edit-profile": "Редагувати профіль", + "edit-wip-limit": "Редагувати ліміт WIP", + "soft-wip-limit": "М'який ліміт WIP", + "editCardStartDatePopup-title": "Змінити дату початку", + "editCardDueDatePopup-title": "Змінити кінцеву дату", + "editCustomFieldPopup-title": "Редагувати поле", + "addReactionPopup-title": "Додати реакцію", + "editCardSpentTimePopup-title": "Змінити витрачений час", + "editLabelPopup-title": "Змінити мітку", + "editNotificationPopup-title": "Редагувати сповіщення", + "editProfilePopup-title": "Редагувати профіль", "email": "Email", - "email-enrollAccount-subject": "An account created for you on __siteName__", - "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", - "email-fail": "Sending email failed", - "email-fail-text": "Error trying to send email", - "email-invalid": "Invalid email", - "email-invite": "Invite via Email", - "email-invite-subject": "__inviter__ sent you an invitation", - "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", - "email-resetPassword-subject": "Reset your password on __siteName__", - "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", - "email-sent": "Email sent", - "email-verifyEmail-subject": "Verify your email address on __siteName__", - "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", - "enable-wip-limit": "Enable WIP Limit", - "error-board-doesNotExist": "This board does not exist", - "error-board-notAdmin": "You need to be admin of this board to do that", - "error-board-notAMember": "You need to be a member of this board to do that", - "error-json-malformed": "Your text is not valid JSON", - "error-json-schema": "Your JSON data does not include the proper information in the correct format", + "email-enrollAccount-subject": "Акаунт створений для вас на __siteName__", + "email-enrollAccount-text": "Привіт __user__,\n\nЩоб почати користуватися сервісом, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.", + "email-fail": "Невдача при відправленні email", + "email-fail-text": "Помилка при спробі відправити email", + "email-invalid": "Неправильний email", + "email-invite": "Запрошення через email", + "email-invite-subject": "__inviter__ відправив вам запрошення", + "email-invite-text": "Дорогий __user__,\n\n__inviter__ запрошує вас приєднатися до дошки \"__board__\" для співпраці.\n\nБудь ласка, перейдіть за посиланням нижче:\n\n__url__\n\nДякуємо.", + "email-resetPassword-subject": "Скинути пароль на __siteName__", + "email-resetPassword-text": "Привіт __user__,\n\nЩоб скинути пароль, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.", + "email-sent": "Email відправлений", + "email-verifyEmail-subject": "Підтвердіть вашу email адресу на __siteName__", + "email-verifyEmail-text": "Привіт __user__,\n\nЩоб підтвердити ваш акаунт email, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.", + "enable-vertical-scrollbars": "Увімкнути вертикальні скроллбари", + "enable-wip-limit": "Увімкнути ліміт WIP", + "error-board-doesNotExist": "Ця дошка не існує", + "error-board-notAdmin": "Вам потрібно бути адміністратором цієї дошки, щоб зробити це", + "error-board-notAMember": "Вам потрібно бути учасником цієї дошки, щоб зробити це", + "error-json-malformed": "Ваш текст не є дійсним JSON", + "error-json-schema": "Ваш JSON не включає інформації у коректному форматі", "error-csv-schema": "Ваш CSV(Comma Separated Values)/TSV(Tab Separated Values) не включає інформації у коректному форматі", - "error-list-doesNotExist": "This list does not exist", - "error-user-doesNotExist": "This user does not exist", - "error-user-notAllowSelf": "You can not invite yourself", - "error-user-notCreated": "This user is not created", - "error-username-taken": "This username is already taken", - "error-orgname-taken": "This organization name is already taken", - "error-teamname-taken": "This team name is already taken", - "error-email-taken": "Email has already been taken", - "export-board": "Export board", - "export-board-json": "Export board to JSON", - "export-board-csv": "Export board to CSV", - "export-board-tsv": "Export board to TSV", - "export-board-excel": "Export board to Excel", - "user-can-not-export-excel": "User can not export Excel", - "export-board-html": "Export board to HTML", - "export-card": "Export card", - "export-card-pdf": "Export card to PDF", - "user-can-not-export-card-to-pdf": "User can not export card to PDF", - "exportBoardPopup-title": "Export board", - "exportCardPopup-title": "Export card", - "sort": "Sort", - "sorted": "Sorted", - "remove-sort": "Remove sort", - "sort-desc": "Click to Sort List", - "list-sort-by": "Sort the List By:", - "list-label-modifiedAt": "Last Access Time", - "list-label-title": "Name of the List", - "list-label-sort": "Your Manual Order", + "error-list-doesNotExist": "Цей список не існує", + "error-user-doesNotExist": "Цей користувач не існує", + "error-user-notAllowSelf": "Ви не можете запросити себе", + "error-user-notCreated": "Цей користувач не створений", + "error-username-taken": "Це ім'я користувача вже зайняте", + "error-orgname-taken": "Ця назва організації вже зайнята", + "error-teamname-taken": "Ця назва команди вже зайнята", + "error-email-taken": "Email вже зайнятий", + "export-board": "Експортувати дошку", + "export-board-json": "Експортувати дошку в JSON", + "export-board-csv": "Експортувати дошку в CSV", + "export-board-tsv": "Експортувати дошку в TSV", + "export-board-excel": "Експортувати дошку в Excel", + "user-can-not-export-excel": "Користувач не може експортувати Excel", + "export-board-html": "Експортувати дошку в HTML", + "export-card": "Експортувати картку", + "export-card-pdf": "Експортувати картку в PDF", + "user-can-not-export-card-to-pdf": "Користувач не може експортувати картку в PDF", + "exportBoardPopup-title": "Експортувати дошку", + "exportCardPopup-title": "Експортувати картку", + "sort": "Сортувати", + "sorted": "Відсортовано", + "remove-sort": "Прибрати сортування", + "sort-desc": "Натисніть для сортування списку", + "list-sort-by": "Сортувати список за:", + "list-label-modifiedAt": "Час останнього доступу", + "list-label-title": "Назва списку", + "list-label-sort": "Ваше ручне впорядкування", "list-label-short-modifiedAt": "(L)", "list-label-short-title": "(N)", "list-label-short-sort": "(M)", - "filter": "Filter", - "filter-cards": "Filter Cards or Lists", - "filter-dates-label": "Filter by date", - "filter-no-due-date": "No due date", - "filter-overdue": "Overdue", - "filter-due-today": "Due today", - "filter-due-this-week": "Due this week", + "filter": "Фільтр", + "filter-cards": "Фільтрувати картки або списки", + "filter-dates-label": "Фільтр за датою", + "filter-no-due-date": "Без терміну", + "filter-overdue": "Прострочено", + "filter-due-today": "Термін сьогодні", + "filter-due-this-week": "Термін цього тижня", "filter-due-next-week": "Зробити наступного тижня", - "filter-due-tomorrow": "Due tomorrow", - "list-filter-label": "Filter List by Title", - "filter-clear": "Clear filter", - "filter-labels-label": "Filter by label", - "filter-no-label": "No label", - "filter-member-label": "Filter by member", - "filter-no-member": "No member", - "filter-assignee-label": "Filter by assignee", - "filter-no-assignee": "No assignee", - "filter-custom-fields-label": "Filter by Custom Fields", - "filter-no-custom-fields": "No Custom Fields", - "filter-show-archive": "Show archived lists", - "filter-hide-empty": "Hide empty lists", - "filter-on": "Filter is on", - "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", - "filter-to-selection": "Filter to selection", - "other-filters-label": "Other Filters", - "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Просунутий фільт дозволяє писати рядок, що включає наступні оператори: == != <= => && || () Пробіл використовується як розділювач між операторами. Ви можете фільтрувати для всіх інформацію для всіх користувацьких полів за допомогою написання їхніх імен та значень. Наприклад: Field1=='Value1'. Примітка: якщо поля або значення містять Вам потрібно інкапсулювати їх у одинарні лапки. Наприклад: 'Field 1' == 'Value 1'. Для пропуску окремих керуючих символів (' \\/) можна використовувати \\. Наприклад: Field1 == I\\'m. Також, Ви можете суміщати декілька умов. Наприклад: F1 == V1 || F1 == V2. Зазвичай, всі оператори інтерпретуються зліва направо. Ви можете змінити порядок поставивши дужки. Наприклад: F1 == V1 && (F2 == V2 || F2 == V3). Також ви можете шукати текстові поля використовуючи regex: F1 == /Tes.*/i", - "fullname": "Full Name", - "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", - "headerBarCreateBoardPopup-title": "Create Board", - "home": "Home", - "import": "Import", - "impersonate-user": "Impersonate user", - "link": "Link", - "import-board": "import board", - "import-board-c": "Import board", - "import-board-title-trello": "Import board from Trello", - "import-board-title-wekan": "Import board from previous export", - "import-board-title-csv": "Import board from CSV/TSV", - "from-trello": "From Trello", - "from-wekan": "From previous export", - "from-csv": "From CSV/TSV", - "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.", - "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .", - "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.", - "import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.", - "import-json-placeholder": "Paste your valid JSON data here", - "import-csv-placeholder": "Paste your valid CSV/TSV data here", - "import-map-members": "Map members", - "import-members-map": "Your imported board has some members. Please map the members you want to import to your users", - "import-members-map-note": "Note: Unmapped members will be assigned to the current user.", - "import-show-user-mapping": "Review members mapping", - "import-user-select": "Pick your existing user you want to use as this member", - "importMapMembersAddPopup-title": "Select member", - "info": "Версія", - "initials": "Initials", - "invalid-date": "Invalid date", - "invalid-time": "Invalid time", - "invalid-user": "Invalid user", - "joined": "приєднано", + "filter-due-tomorrow": "Термін завтра", + "list-filter-label": "Фільтрувати список за назвою", + "filter-clear": "Очистити фільтр", + "filter-labels-label": "Фільтр за міткою", + "filter-no-label": "Без мітки", + "filter-member-label": "Фільтр за учасником", + "filter-no-member": "Без учасника", + "filter-assignee-label": "Фільтр за виконавцем", + "filter-no-assignee": "Без виконавця", + "filter-custom-fields-label": "Фільтр за налаштованими полями", + "filter-no-custom-fields": "Без налаштованих полів", + "filter-show-archive": "Показати архівовані списки", + "filter-hide-empty": "Сховати порожні списки", + "filter-on": "Фільтр увімкнено", + "filter-on-desc": "Ви фільтруєте картки на цій дошці. Натисніть тут, щоб редагувати фільтр.", + "filter-to-selection": "Фільтрувати до вибору", + "other-filters-label": "Інші фільтри", + "advanced-filter-label": "Розширений фільтр", + "advanced-filter-description": "Розширений фільтр дозволяє писати рядок, що включає наступні оператори: == != <= => && || () Пробіл використовується як розділювач між операторами. Ви можете фільтрувати для всіх інформацію для всіх користувацьких полів за допомогою написання їхніх імен та значень. Наприклад: Field1=='Value1'. Примітка: якщо поля або значення містять Вам потрібно інкапсулювати їх у одинарні лапки. Наприклад: 'Field 1' == 'Value 1'. Для пропуску окремих керуючих символів (' \\/) можна використовувати \\. Наприклад: Field1 == I\\'m. Також, Ви можете суміщати декілька умов. Наприклад: F1 == V1 || F1 == V2. Зазвичай, всі оператори інтерпретуються зліва направо. Ви можете змінити порядок поставивши дужки. Наприклад: F1 == V1 && (F2 == V2 || F2 == V3). Також ви можете шукати текстові поля використовуючи regex: F1 == /Tes.*/i", + "fullname": "Повне ім'я", + "header-logo-title": "Повернутися на вашу сторінку дошок.", + "show-activities": "Показати дії", + "headerBarCreateBoardPopup-title": "Створити дошку", + "home": "Головна", + "import": "Імпорт", + "impersonate-user": "Втілитися в користувача", + "link": "Посилання", + "import-board": "імпортувати дошку", + "import-board-c": "Імпортувати дошку", + "import-board-title-trello": "Імпортувати дошку з Trello", + "import-board-title-wekan": "Імпортувати дошку з попереднього експорту", + "import-board-title-csv": "Імпортувати дошку з CSV/TSV", + "from-trello": "З Trello", + "from-wekan": "З попереднього експорту", + "from-csv": "З CSV/TSV", + "import-board-instruction-trello": "На вашій дошці Trello перейдіть до 'Меню', потім 'Більше', 'Друк і експорт', 'Експорт JSON' та скопіюйте отриманий текст.", + "import-board-instruction-csv": "Вставте ваші значення, розділені комами (CSV)/ табуляцією (TSV).", + "import-board-instruction-wekan": "На вашій дошці перейдіть до 'Меню', потім 'Експорт дошки', і скопіюйте текст у завантаженому файлі.", + "import-board-instruction-about-errors": "Якщо ви отримаєте помилки під час імпорту дошки, іноді імпорт все ще працює, і дошка з'явиться на сторінці всіх дошок.", + "import-json-placeholder": "Вставте ваші дійсні дані JSON тут", + "import-csv-placeholder": "Вставте ваші дійсні дані CSV/TSV тут", + "import-map-members": "Зіставити учасників", + "import-members-map": "Ваша імпортована дошка має деяких учасників. Будь ласка, зіставте учасників, яких ви хочете імпортувати, з вашими користувачами", + "import-members-map-note": "Примітка: Незіставлені учасники будуть призначені поточному користувачу.", + "import-show-user-mapping": "Переглянути зіставлення учасників", + "import-user-select": "Виберіть вашого існуючого користувача, якого ви хочете використовувати як цього учасника", + "importMapMembersAddPopup-title": "Вибрати учасника", + "info": "Інформація", + "initials": "Ініціали", + "invalid-date": "Невірна дата", + "invalid-time": "Неправильний час", + "invalid-user": "Неправильний користувач", + "joined": "приєднався", "just-invited": "Ви тільки що приєдналися до цієї дошки", - "keyboard-shortcuts": "Keyboard shortcuts", - "label-create": "Create Label", - "label-default": "%s label (default)", - "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", - "labels": "Labels", + "keyboard-shortcuts": "Комбінації клавіш", + "label-create": "Створити мітку", + "label-default": "%s мітка (за замовчуванням)", + "label-delete-pop": "Немає відкату. Це видалить цю мітку з усіх карток і знищить її історію.", + "labels": "Мітки", "language": "Мова", - "last-admin-desc": "Ви не можете змінити ролі, бо повинен бути хоча б один адміністратор", - "leave-board": "Leave Board", - "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", - "leaveBoardPopup-title": "Залишити Дошку?", + "last-admin-desc": "Ви не можете змінити ролі, тому що повинен бути хоча б один адміністратор", + "leave-board": "Залишити дошку", + "leave-board-pop": "Ви впевнені, що хочете залишити __boardTitle__? Ви будете видалені з усіх карток на цій дошці.", + "leaveBoardPopup-title": "Залишити дошку?", "link-card": "Посилання на цю картку", - "list-archive-cards": "Перенести всі картки в цьому переліку до Архиву", - "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.", - "list-move-cards": "Move all cards in this list", - "list-select-cards": "Select all cards in this list", - "set-color-list": "Встановити Колір", - "listActionPopup-title": "List Actions", - "settingsUserPopup-title": "User Settings", - "settingsTeamPopup-title": "Team Settings", - "settingsOrgPopup-title": "Organization Settings", - "swimlaneActionPopup-title": "Swimlane Actions", - "swimlaneAddPopup-title": "Add a Swimlane below", - "listImportCardPopup-title": "Import a Trello card", - "listImportCardsTsvPopup-title": "Import Excel CSV/TSV", - "listMorePopup-title": "More", - "link-list": "Link to this list", - "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", - "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.", - "lists": "Lists", - "swimlanes": "Swimlanes", - "log-out": "Log Out", - "log-in": "Log In", - "loginPopup-title": "Log In", - "memberMenuPopup-title": "Member Settings", + "list-archive-cards": "Перенести всі картки в цьому списку до архіву", + "list-archive-cards-pop": "Це видалить усі картки в цьому списку з дошки. Щоб переглянути картки в архіві та повернути їх на дошку, натисніть «Меню» > «Архів».", + "list-move-cards": "Перемістити всі картки в цьому списку", + "list-select-cards": "Вибрати всі картки в цьому списку", + "set-color-list": "Встановити колір", + "listActionPopup-title": "Дії зі списком", + "settingsUserPopup-title": "Налаштування користувача", + "settingsTeamPopup-title": "Налаштування команди", + "settingsOrgPopup-title": "Налаштування організації", + "swimlaneActionPopup-title": "Дії зі свімлейном", + "swimlaneAddPopup-title": "Додати свімлейн нижче", + "listImportCardPopup-title": "Імпортувати картку з Trello", + "listImportCardsTsvPopup-title": "Імпортувати Excel CSV/TSV", + "listMorePopup-title": "Більше", + "link-list": "Посилання на цей список", + "list-delete-pop": "Усі дії будуть видалені з каналу активності, і ви не зможете відновити список. Немає відкату.", + "list-delete-suggest-archive": "Ви можете перемістити список до архіву, щоб прибрати його з дошки та зберегти активність.", + "lists": "Списки", + "swimlanes": "Свімлейни", + "log-out": "Вийти", + "log-in": "Увійти", + "loginPopup-title": "Увійти", + "memberMenuPopup-title": "Налаштування користувачів", "members": "Користувачі", "menu": "Меню", - "move-selection": "Перенести обране", - "moveCardPopup-title": "Move Card", - "moveCardToBottom-title": "Перенести до Низу", - "moveCardToTop-title": "Перенести на Початок", - "moveSelectionPopup-title": "Перенести обране", - "multi-selection": "Multi-Selection", - "multi-selection-label": "Set label for selection", - "multi-selection-member": "Set member for selection", - "multi-selection-on": "Multi-Selection is on", - "muted": "Muted", - "muted-info": "You will never be notified of any changes in this board", - "my-boards": "My Boards", - "name": "Name", - "no-archived-cards": "No cards in Archive.", - "no-archived-lists": "No lists in Archive.", - "no-archived-swimlanes": "No swimlanes in Archive.", - "no-results": "No results", - "normal": "Normal", - "normal-desc": "Can view and edit cards. Can't change settings.", - "not-accepted-yet": "Invitation not accepted yet", - "notify-participate": "Receive updates to any cards you participate as creator or member", - "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", - "optional": "optional", - "or": "or", - "page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.", - "page-not-found": "Page not found.", - "password": "Password", - "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", - "participating": "Participating", - "preview": "Preview", - "previewAttachedImagePopup-title": "Preview", - "previewClipboardImagePopup-title": "Preview", - "private": "Private", - "private-desc": "Це приватна дошка. Тільки люди, додані до цієї дошки можуть переглядати та редагувати її.", - "profile": "Profile", - "public": "Public", - "public-desc": "Цю дошку можуть переглядати усі, у кого є посилання. Також ця дошка може бути проіндексована пошуковими системами. Вносити зміни можуть тільки учасники.", - "quick-access-description": "Star a board to add a shortcut in this bar.", - "remove-cover": "Видалити фонове зоображення з міні-карти", - "remove-from-board": "Remove from Board", - "remove-label": "Remove Label", - "listDeletePopup-title": "Видалити Список?", - "remove-member": "Видалити Учасника", - "remove-member-from-card": "Видалити з Картки", - "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", - "removeMemberPopup-title": "Видалити Учасника?", + "move-selection": "Перенести вибране", + "moveCardPopup-title": "Перемістити картку", + "moveCardToBottom-title": "Перемістити на низ", + "moveCardToTop-title": "Перемістити на початок", + "moveSelectionPopup-title": "Перенести вибране", + "multi-selection": "Мультивибір", + "multi-selection-label": "Встановити мітку для вибору", + "multi-selection-member": "Встановити учасника для вибору", + "multi-selection-on": "Мультивибір увімкнено", + "muted": "Приглушено", + "muted-info": "Ви ніколи не отримаєте сповіщень про будь-які зміни на цій дошці", + "my-boards": "Мої дошки", + "name": "Ім'я", + "no-archived-cards": "Немає карток в архіві.", + "no-archived-lists": "Немає списків в архіві.", + "no-archived-swimlanes": "Немає свімлейнів в архіві.", + "no-results": "Немає результатів", + "normal": "Звичайний", + "normal-desc": "Може переглядати та редагувати картки. Не може змінювати налаштування.", + "not-accepted-yet": "Запрошення ще не прийнято", + "notify-participate": "Отримувати оновлення по будь-яких картках, де ви берете участь як творець або учасник", + "notify-watch": "Отримувати оновлення по будь-яких дошках, списках або картках, за якими ви спостерігаєте", + "optional": "необов'язково", + "or": "або", + "page-maybe-private": "Ця сторінка може бути приватною. Ви можете переглянути її, <a href='%s'>увійшовши в систему</a>.", + "page-not-found": "Сторінку не знайдено.", + "password": "Пароль", + "paste-or-dragdrop": "вставте або перетягніть файл зображення сюди (тільки зображення)", + "participating": "Бере участь", + "preview": "Попередній перегляд", + "previewAttachedImagePopup-title": "Попередній перегляд", + "previewClipboardImagePopup-title": "Попередній перегляд", + "private": "Приватна", + "private-desc": "Це приватна дошка. Тільки люди, додані до цієї дошки, можуть переглядати та редагувати її.", + "profile": "Профіль", + "public": "Публічна", + "public-desc": "Цю дошку можуть переглядати всі, у кого є посилання. Також ця дошка може бути проіндексована пошуковими системами. Зміни можуть вносити тільки учасники.", + "quick-access-description": "Додайте зірочку до дошки, щоб створити ярлик на цій панелі.", + "remove-cover": "Видалити фонове зображення з міні-картки", + "remove-from-board": "Видалити з дошки", + "remove-label": "Видалити мітку", + "listDeletePopup-title": "Видалити список?", + "remove-member": "Видалити учасника", + "remove-member-from-card": "Видалити з картки", + "remove-member-pop": "Видалити __name__ (__username__) з __boardTitle__? Учасника буде видалено з усіх карток на цій дошці. Він отримає повідомлення.", + "removeMemberPopup-title": "Видалити учасника?", "rename": "Перейменувати", "rename-board": "Перейменувати дошку", "restore": "Відновити", - "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions", - "rescue-card-description-dialogue": "Overwrite current card description with your changes?", + "rescue-card-description": "Показувати діалог виправлення перед закриттям для незбережених описів карток", + "rescue-card-description-dialogue": "Перезаписати поточний опис картки вашими змінами?", "save": "Зберегти", "search": "Шукати", "rules": "Правила", - "search-cards": "Search from card/list titles, descriptions and custom fields on this board", - "search-example": "Write text you search and press Enter", - "select-color": "Оберіть Коліп", - "select-board": "Оберіть Дошку", - "set-wip-limit-value": "Встановіть обмеження максимальної кількості завдань в цьому списку", - "setWipLimitPopup-title": "Set WIP Limit", + "search-cards": "Пошук по заголовках карток/списків, описах та налаштованих полях на цій дошці", + "search-example": "Введіть текст для пошуку та натисніть Enter", + "select-color": "Обрати колір", + "select-board": "Обрати дошку", + "set-wip-limit-value": "Встановіть ліміт максимальної кількості завдань у цьому списку", + "setWipLimitPopup-title": "Встановити WIP ліміт", + "shortcut-add-self": "Додати себе до поточної картки", "shortcut-assign-self": "Призначити себе до поточної картки", - "shortcut-autocomplete-emoji": "Autocomplete emoji", + "shortcut-autocomplete-emoji": "Автозаповнення емодзі", "shortcut-autocomplete-members": "Автозавершення учасників", - "shortcut-clear-filters": "Clear all filters", - "shortcut-close-dialog": "Close Dialog", + "shortcut-clear-filters": "Очистити всі фільтри", + "shortcut-close-dialog": "Закрити діалог", "shortcut-filter-my-cards": "Фільтрувати мої картки", - "shortcut-filter-my-assigned-cards": "Filter my assigned cards", - "shortcut-show-shortcuts": "Bring up this shortcuts list", - "shortcut-toggle-filterbar": "Перемкнути бічну панель Фільтра", - "shortcut-toggle-searchbar": "Перемкнути бічну панель Пошуку", - "shortcut-toggle-sidebar": "Перемкнути бічну панель Дошки", - "show-cards-minimum-count": "Показувати кількість карток, якщо список містить більше, ніж", - "sidebar-open": "Відкрити бокову панель", - "sidebar-close": "Закрити бокову панель", - "signupPopup-title": "Створити Обліковий запис", - "star-board-title": "Click to star this board. It will show up at top of your boards list.", - "starred-boards": "Starred Boards", - "starred-boards-description": "Starred boards show up at the top of your boards list.", - "subscribe": "Subscribe", + "shortcut-filter-my-assigned-cards": "Фільтрувати мої призначені картки", + "shortcut-show-shortcuts": "Показати цей список ярликів", + "shortcut-toggle-filterbar": "Перемкнути бічну панель фільтра", + "shortcut-toggle-searchbar": "Перемкнути бічну панель пошуку", + "shortcut-toggle-sidebar": "Перемкнути бічну панель дошки", + "show-cards-minimum-count": "Показувати кількість карток, якщо список містить більше, ніж", + "sidebar-open": "Відкрити бічну панель", + "sidebar-close": "Закрити бічну панель", + "signupPopup-title": "Створити обліковий запис", + "star-board-title": "Натисніть, щоб додати дошку до обраних. Вона з'явиться у верхній частині списку ваших дошок.", + "starred-boards": "Обрані дошки", + "starred-boards-description": "Обрані дошки з'являються вгорі вашого списку дошок.", + "subscribe": "Підписатися", "team": "Команда", "this-board": "ця дошка", "this-card": "ця картка", - "spent-time-hours": "Витрачено часу(годин)", - "overtime-hours": "Overtime (hours)", - "overtime": "Overtime", - "has-overtime-cards": "Has overtime cards", - "has-spenttime-cards": "Has spent time cards", + "spent-time-hours": "Витрачено часу (години)", + "overtime-hours": "Надурочний час (години)", + "overtime": "Надурочний час", + "has-overtime-cards": "Має картки з надурочним часом", + "has-spenttime-cards": "Має картки з витраченим часом", "time": "Час", - "title": "Title", - "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", - "remove-labels-multiselect": "Multi-Selection removes labels 1-9", - "tracking": "Tracking", - "tracking-info": "Ви будете повідомлені про будь-які зміни в тих картках, в яких ви є творцем або учасником.", + "title": "Назва", + "toggle-assignees": "Перемикання призначень 1-9 для картки (за порядком додавання на дошку)", + "toggle-labels": "Перемкнути мітки 1-9 для картки. Мультивибір додає мітки 1-9", + "remove-labels-multiselect": "Мультивибір видаляє мітки 1-9", + "tracking": "Відстеження", + "tracking-info": "Ви будете повідомлені про будь-які зміни у тих картках, в яких ви є творцем або учасником.", "type": "Тип", - "unassign-member": "Unassign member", - "unsaved-description": "Ви маєте незбрежений опис", - "unwatch": "Unwatch", + "unassign-member": "Відв'язати учасника", + "unsaved-description": "У вас є незбережений опис", + "unwatch": "Припинити спостереження", "upload": "Завантажити", "upload-avatar": "Завантажити аватар", "uploaded-avatar": "Завантажений аватар", - "custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL", - "custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL", - "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", - "custom-login-logo-image-url": "Custom Login Logo Image URL", - "custom-login-logo-link-url": "Custom Login Logo Link URL", - "custom-help-link-url": "Custom Help Link URL", - "text-below-custom-login-logo": "Text below Custom Login Logo", - "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", - "username": "Username", - "import-usernames": "Import Usernames", + "custom-top-left-corner-logo-image-url": "Спеціальне зображення логотипу в лівому верхньому кутку", + "custom-top-left-corner-logo-link-url": "Спеціальне посилання на логотип у лівому верхньому кутку", + "custom-top-left-corner-logo-height": "Спеціальна висота логотипу в лівому верхньому кутку. За замовчуванням: 27", + "custom-login-logo-image-url": "Спеціальне зображення логотипу на сторінці входу", + "custom-login-logo-link-url": "Спеціальне посилання на логотип на сторінці входу", + "custom-help-link-url": "Спеціальне посилання на довідку", + "text-below-custom-login-logo": "Текст під спеціальним логотипом на сторінці входу", + "automatic-linked-url-schemes": "Спеціальні URL-схеми, які автоматично мають бути клікабельними. Одна URL-схема на рядок", + "username": "Ім'я користувача", + "import-usernames": "Імпортувати імена користувачів", "view-it": "Переглянути це", - "warn-list-archived": "warning: this card is in an list at Archive", - "watch": "Watch", - "watching": "Watching", - "watching-info": "You will be notified of any change in this board", - "welcome-board": "Welcome Board", - "welcome-swimlane": "Milestone 1", - "welcome-list1": "Basics", - "welcome-list2": "Advanced", - "card-templates-swimlane": "Card Templates", - "list-templates-swimlane": "List Templates", - "board-templates-swimlane": "Шаблони Дошок", + "warn-list-archived": "попередження: ця картка знаходиться у списку в Архіві", + "watch": "Спостерігати", + "watching": "Спостереження", + "watching-info": "Ви будете повідомлені про будь-які зміни на цій дошці", + "welcome-board": "Ласкаво просимо на дошку", + "welcome-swimlane": "Етап 1", + "welcome-list1": "Основи", + "welcome-list2": "Продвинуті", + "card-templates-swimlane": "Шаблони карток", + "list-templates-swimlane": "Шаблони списків", + "board-templates-swimlane": "Шаблони дошок", "what-to-do": "Що ви хочете зробити?", - "wipLimitErrorPopup-title": "Некоректне Обмеження WIP", + "wipLimitErrorPopup-title": "Некоректне обмеження WIP", "wipLimitErrorPopup-dialog-pt1": "Кількість завдань у цьому списку перевищує встановлений вами ліміт", "wipLimitErrorPopup-dialog-pt2": "Будь ласка, перенесіть деякі завдання з цього списку або збільште ліміт на кількість завдань", - "admin-panel": "Панель Адміністратора", + "admin-panel": "Панель адміністратора", "settings": "Налаштування", "people": "Люди", "registration": "Реєстрація", - "disable-self-registration": "Disable Self-Registration", - "disable-forgot-password": "Disable Forgot Password", - "invite": "Invite", - "invite-people": "Invite People", - "to-boards": "To board(s)", - "email-addresses": "Email Addresses", - "smtp-host-description": "The address of the SMTP server that handles your emails.", - "smtp-port-description": "The port your SMTP server uses for outgoing emails.", - "smtp-tls-description": "Enable TLS support for SMTP server", - "smtp-host": "SMTP Host", - "smtp-port": "SMTP Port", - "smtp-username": "Username", - "smtp-password": "Password", - "smtp-tls": "TLS support", - "send-from": "From", - "send-smtp-test": "Send a test email to yourself", - "invitation-code": "Invitation Code", - "email-invite-register-subject": "__inviter__ sent you an invitation", - "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "disable-self-registration": "Відключити самостійну реєстрацію", + "disable-forgot-password": "Відключити відновлення пароля", + "invite": "Запрошення", + "invite-people": "Запрошення людей", + "to-boards": "На дошки", + "email-addresses": "Email адреси", + "smtp-host-description": "Адреса сервера SMTP, який обробляє ваші email.", + "smtp-port-description": "Порт, який ваш SMTP сервер використовує для вихідних email.", + "smtp-tls-description": "Увімкнути підтримку TLS для SMTP сервера", + "smtp-host": "SMTP хост", + "smtp-port": "SMTP порт", + "smtp-username": "Ім'я користувача", + "smtp-password": "Пароль", + "smtp-tls": "Підтримка TLS", + "send-from": "Відправити від", + "send-smtp-test": "Надіслати тестовий email собі", + "invitation-code": "Код запрошення", + "email-invite-register-subject": "__inviter__ відправив вам запрошення", + "email-invite-register-text": "Дорогий __user__,\n\n__inviter__ запрошує вас до співпраці на дошці kanban.\n\nБудь ласка, перейдіть за посиланням нижче:\n__url__\n\nІ ваш код запрошення: __icode__\n\nДякуємо.", "email-smtp-test-subject": "Лист перевірки SMTP", "email-smtp-test-text": "Ви успішно надіслали e-mail", "error-invitation-code-not-exist": "Код запрошення не існує", "error-notAuthorized": "Ви не авторизовані для перегляду цієї сторінки.", - "webhook-title": "Webhook Name", - "webhook-token": "Token (Optional for Authentication)", - "outgoing-webhooks": "Outgoing Webhooks", - "bidirectional-webhooks": "Two-Way Webhooks", - "outgoingWebhooksPopup-title": "Outgoing Webhooks", - "boardCardTitlePopup-title": "Card Title Filter", - "disable-webhook": "Disable This Webhook", - "global-webhook": "Global Webhooks", - "new-outgoing-webhook": "New Outgoing Webhook", - "no-name": "(Unknown)", - "Node_version": "Node version", - "Meteor_version": "Meteor version", - "MongoDB_version": "MongoDB version", - "MongoDB_storage_engine": "MongoDB storage engine", - "MongoDB_Oplog_enabled": "MongoDB Oplog enabled", - "OS_Arch": "OS Arch", - "OS_Cpus": "OS CPU Count", - "OS_Freemem": "OS Free Memory", - "OS_Loadavg": "OS Load Average", - "OS_Platform": "OS Platform", - "OS_Release": "OS Release", - "OS_Totalmem": "OS Total Memory", - "OS_Type": "OS Type", - "OS_Uptime": "OS Uptime", - "days": "days", - "hours": "hours", - "minutes": "minutes", - "seconds": "seconds", - "show-field-on-card": "Show this field on card", - "automatically-field-on-card": "Add field to new cards", - "always-field-on-card": "Add field to all cards", - "showLabel-field-on-card": "Show field label on minicard", - "showSum-field-on-list": "Show sum of fields at top of list", - "yes": "Yes", - "no": "No", - "accounts": "Accounts", - "accounts-allowEmailChange": "Дозволити Зміну Email", - "accounts-allowUserNameChange": "Дозволити Зміну Імені Користувача", - "tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only", - "tableVisibilityMode" : "Boards visibility", + "webhook-title": "Назва Webhook", + "webhook-token": "Токен (Необов'язково для автентифікації)", + "outgoing-webhooks": "Вихідні Webhooks", + "bidirectional-webhooks": "Двосторонні Webhooks", + "outgoingWebhooksPopup-title": "Вихідні Webhooks", + "boardCardTitlePopup-title": "Фільтр назви картки", + "disable-webhook": "Відключити цей Webhook", + "global-webhook": "Глобальні Webhooks", + "new-outgoing-webhook": "Новий вихідний Webhook", + "no-name": "(Невідомо)", + "Node_version": "Версія Node", + "Meteor_version": "Версія Meteor", + "MongoDB_version": "Версія MongoDB", + "MongoDB_storage_engine": "Двигун зберігання MongoDB", + "MongoDB_Oplog_enabled": "MongoDB Oplog увімкнено", + "OS_Arch": "Архітектура ОС", + "OS_Cpus": "Кількість процесорів ОС", + "OS_Freemem": "Вільна пам'ять ОС", + "OS_Loadavg": "Середнє навантаження ОС", + "OS_Platform": "Платформа ОС", + "OS_Release": "Випуск ОС", + "OS_Totalmem": "Загальна пам'ять ОС", + "OS_Type": "Тип ОС", + "OS_Uptime": "Час роботи ОС", + "days": "дні", + "hours": "години", + "minutes": "хвилини", + "seconds": "секунди", + "show-field-on-card": "Показати це поле на картці", + "automatically-field-on-card": "Додати поле до нових карток", + "always-field-on-card": "Додати поле до усіх карток", + "showLabel-field-on-card": "Показати назву поля на міні-картці", + "showSum-field-on-list": "Показати суму полів у верхній частині списку", + "yes": "Так", + "no": "Ні", + "accounts": "Облікові записи", + "accounts-allowEmailChange": "Дозволити зміну Email", + "accounts-allowUserNameChange": "Дозволити зміну імені користувача", + "tableVisibilityMode-allowPrivateOnly": "Видимість дошок: дозволити тільки приватні дошки", + "tableVisibilityMode" : "Видимість дошок", "createdAt": "Створено", - "modifiedAt": "Modified at", + "modifiedAt": "Змінено", "verified": "Перевірено", "active": "Активно", "card-received": "Отримано", - "card-received-on": "Received on", + "card-received-on": "Отримано на", "card-end": "Кінець", "card-end-on": "Закінчується на", "editCardReceivedDatePopup-title": "Змінити дату отримання", - "editCardEndDatePopup-title": "Change end date", - "setCardColorPopup-title": "Set color", - "setCardActionsColorPopup-title": "Оберіть колір", - "setSwimlaneColorPopup-title": "Оберіть колір", - "setListColorPopup-title": "Оберіть колір", - "assigned-by": "Assigned By", + "editCardEndDatePopup-title": "Змінити дату закінчення", + "setCardColorPopup-title": "Встановити колір", + "setCardActionsColorPopup-title": "Вибрати колір", + "setSwimlaneColorPopup-title": "Вибрати колір", + "setListColorPopup-title": "Вибрати колір", + "assigned-by": "Призначено", "requested-by": "Запитано", - "card-sorting-by-number": "Card sorting by number", - "board-delete-notice": "Це видалення назавжди. Ви втратите всі листи, картки та дії, пов'язані з цією дошкою.", - "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", - "boardDeletePopup-title": "Delete Board?", - "delete-board": "Delete Board", - "default-subtasks-board": "Subtasks for __board__ board", - "default": "Default", - "defaultdefault": "Default", - "queue": "Queue", - "subtask-settings": "Subtasks Settings", - "card-settings": "Card Settings", - "minicard-settings": "Minicard Settings", - "boardSubtaskSettingsPopup-title": "Board Subtasks Settings", - "boardCardSettingsPopup-title": "Card Settings", - "boardMinicardSettingsPopup-title": "Minicard Settings", - "deposit-subtasks-board": "Deposit subtasks to this board:", - "deposit-subtasks-list": "Landing list for subtasks deposited here:", - "show-parent-in-minicard": "Show parent in minicard:", - "description-on-minicard": "Description on minicard", - "cover-attachment-on-minicard": "Зоображення обкладинки міні-карти", - "badge-attachment-on-minicard": "Кількість вкладень на міні-карті", - "card-sorting-by-number-on-minicard": "Сортування по номерах на міні-картці", - "prefix-with-full-path": "Prefix with full path", - "prefix-with-parent": "Prefix with parent", - "subtext-with-full-path": "Subtext with full path", - "subtext-with-parent": "Subtext with parent", - "change-card-parent": "Change card's parent", - "parent-card": "Parent card", - "source-board": "Source board", - "no-parent": "Don't show parent", - "activity-added-label": "added label '%s' to %s", - "activity-removed-label": "removed label '%s' from %s", - "activity-delete-attach": "deleted an attachment from %s", - "activity-added-label-card": "added label '%s'", - "activity-removed-label-card": "removed label '%s'", - "activity-delete-attach-card": "deleted an attachment", - "activity-set-customfield": "set custom field '%s' to '%s' in %s", - "activity-unset-customfield": "unset custom field '%s' in %s", + "card-sorting-by-number": "Сортування карток за номером", + "board-delete-notice": "Це видалення назавжди. Ви втратите всі списки, картки та дії, пов'язані з цією дошкою.", + "delete-board-confirm-popup": "Усі списки, картки, мітки та діяльність будуть видалені, і ви не зможете відновити вміст дошки. Немає відкату.", + "boardDeletePopup-title": "Видалити дошку?", + "delete-board": "Видалити дошку", + "default-subtasks-board": "Підзадачі для дошки __board__", + "default": "За замовчуванням", + "defaultdefault": "За замовчуванням", + "queue": "Черга", + "subtask-settings": "Налаштування підзадач", + "card-settings": "Налаштування картки", + "minicard-settings": "Налаштування міні-картки", + "boardSubtaskSettingsPopup-title": "Налаштування підзадач дошки", + "boardCardSettingsPopup-title": "Налаштування картки", + "boardMinicardSettingsPopup-title": "Налаштування міні-картки", + "deposit-subtasks-board": "Перенести підзадачі на цю дошку:", + "deposit-subtasks-list": "Список приземлення для підзадач, що переносяться сюди:", + "show-parent-in-minicard": "Показати батька на міні-картці:", + "description-on-minicard": "Опис на міні-картці", + "cover-attachment-on-minicard": "Зображення обкладинки на міні-картці", + "badge-attachment-on-minicard": "Кількість вкладень на міні-картці", + "card-sorting-by-number-on-minicard": "Сортування за номерами на міні-картці", + "prefix-with-full-path": "Префікс з повним шляхом", + "prefix-with-parent": "Префікс з батьком", + "subtext-with-full-path": "Підтекст з повним шляхом", + "subtext-with-parent": "Підтекст з батьком", + "change-card-parent": "Змінити батька картки", + "parent-card": "Батьківська картка", + "source-board": "Джерельна дошка", + "no-parent": "Не показувати батька", + "activity-added-label": "додано мітку '%s' до %s", + "activity-removed-label": "видалено мітку '%s' з %s", + "activity-delete-attach": "видалено вкладення з %s", + "activity-added-label-card": "додано мітку '%s'", + "activity-removed-label-card": "видалено мітку '%s'", + "activity-delete-attach-card": "видалено вкладення", + "activity-set-customfield": "встановлено налаштоване поле '%s' до '%s' в %s", + "activity-unset-customfield": "видалено налаштоване поле '%s' з %s", "r-rule": "Правило", - "r-add-trigger": "Add trigger", - "r-add-action": "Add action", + "r-add-trigger": "Додати тригер", + "r-add-action": "Додати дію", "r-board-rules": "Дошка правил", - "r-add-rule": "Add rule", + "r-add-rule": "Додати правило", "r-view-rule": "Переглянути правило", "r-delete-rule": "Видалити правило", - "r-new-rule-name": "Заголовок нового правила", - "r-no-rules": "No rules", - "r-trigger": "Trigger", - "r-action": "Action", - "r-when-a-card": "When a card", - "r-is": "is", - "r-is-moved": "is moved", - "r-added-to": "Added to", - "r-removed-from": "Видалити з", - "r-the-board": "Дошка", - "r-list": "list", - "set-filter": "Set Filter", + "r-new-rule-name": "Назва нового правила", + "r-no-rules": "Правила відсутні", + "r-trigger": "Тригер", + "r-action": "Дія", + "r-when-a-card": "Коли картка", + "r-is": "є", + "r-is-moved": "переміщена", + "r-added-to": "Додано до", + "r-removed-from": "Видалено з", + "r-the-board": "дошки", + "r-list": "список", + "set-filter": "Встановити фільтр", "r-moved-to": "переміщено до", "r-moved-from": "переміщено з", - "r-archived": "переміщено до Архіву", - "r-unarchived": "Відновлено з Архіву", - "r-a-card": "a card", - "r-when-a-label-is": "When a label is", - "r-when-the-label": "When the label", - "r-list-name": "list name", - "r-when-a-member": "When a member is", - "r-when-the-member": "When the member", - "r-name": "name", - "r-when-a-attach": "When an attachment", - "r-when-a-checklist": "When a checklist is", - "r-when-the-checklist": "When the checklist", - "r-completed": "Completed", - "r-made-incomplete": "Made incomplete", - "r-when-a-item": "When a checklist item is", - "r-when-the-item": "When the checklist item", - "r-checked": "Checked", - "r-unchecked": "Unchecked", - "r-move-card-to": "Move card to", - "r-top-of": "Top of", - "r-bottom-of": "Bottom of", - "r-its-list": "its list", - "r-archive": "Перенести до Архіву", - "r-unarchive": "Restore from Archive", + "r-archived": "переміщено до архіву", + "r-unarchived": "відновлено з архіву", + "r-a-card": "картка", + "r-when-a-label-is": "Коли мітка", + "r-when-the-label": "Коли мітка", + "r-list-name": "назва списку", + "r-when-a-member": "Коли учасник", + "r-when-the-member": "Коли учасник", + "r-name": "назва", + "r-when-a-attach": "Коли вкладення", + "r-when-a-checklist": "Коли контрольний список", + "r-when-the-checklist": "Коли контрольний список", + "r-completed": "завершено", + "r-made-incomplete": "зроблено незавершеним", + "r-when-a-item": "Коли елемент контрольного списку", + "r-when-the-item": "Коли елемент", + "r-checked": "перевірено", + "r-unchecked": "неперевірено", + "r-move-card-to": "Перемістити картку до", + "r-top-of": "Верх", + "r-bottom-of": "Низ", + "r-its-list": "її список", + "r-archive": "Перемістити до архіву", + "r-unarchive": "Відновити з архіву", "r-card": "Картка", "r-add": "Додати", "r-remove": "Видалити", - "r-label": "label", - "r-member": "Користувач", - "r-remove-all": "Видалити усіх учасників картки", - "r-set-color": "Set color to", - "r-checklist": "checklist", - "r-check-all": "Check all", - "r-uncheck-all": "Uncheck all", - "r-items-check": "items of checklist", + "r-label": "мітку", + "r-member": "учасника", + "r-remove-all": "Видалити всіх учасників картки", + "r-set-color": "Встановити колір", + "r-checklist": "контрольний список", + "r-check-all": "Перевірити всі", + "r-uncheck-all": "Скасувати всі відмітки", + "r-items-check": "елементи контрольного списку", "r-check": "Обрати", - "r-uncheck": "Відхилити Обрання", - "r-item": "одиниця", - "r-of-checklist": "of checklist", - "r-send-email": "Send an email", - "r-to": "to", - "r-of": "of", - "r-subject": "Об'єкт", - "r-rule-details": "Rule details", - "r-d-move-to-top-gen": "Move card to top of its list", - "r-d-move-to-top-spec": "Move card to top of list", - "r-d-move-to-bottom-gen": "Move card to bottom of its list", - "r-d-move-to-bottom-spec": "Move card to bottom of list", + "r-uncheck": "Скасувати обрання", + "r-item": "елемент", + "r-of-checklist": "контрольного списку", + "r-send-email": "Відправити email", + "r-to": "до", + "r-of": "з", + "r-subject": "Тема", + "r-rule-details": "Деталі правила", + "r-d-move-to-top-gen": "Перемістити картку на верх її списку", + "r-d-move-to-top-spec": "Перемістити картку на верх списку", + "r-d-move-to-bottom-gen": "Перемістити картку на низ її списку", + "r-d-move-to-bottom-spec": "Перемістити картку на низ списку", "r-d-send-email": "Відправити email", - "r-d-send-email-to": "to", - "r-d-send-email-subject": "Об'єкт", + "r-d-send-email-to": "до", + "r-d-send-email-subject": "Тема", "r-d-send-email-message": "повідомлення", - "r-d-archive": "Перенести Картку до Архиву", - "r-d-unarchive": "Відновити Картку з Архіву", - "r-d-add-label": "Додатку мітку", + "r-d-archive": "Перемістити картку до архіву", + "r-d-unarchive": "Відновити картку з архіву", + "r-d-add-label": "Додати мітку", "r-d-remove-label": "Видалити мітку", "r-create-card": "Створити нову картку", - "r-in-list": "в переліку", - "r-in-swimlane": "in swimlane", - "r-d-add-member": "Додати користувача", - "r-d-remove-member": "Видалити користувача", + "r-in-list": "у списку", + "r-in-swimlane": "у свімлейні", + "r-d-add-member": "Додати учасника", + "r-d-remove-member": "Видалити учасника", "r-d-remove-all-member": "Видалити всіх учасників", - "r-d-check-all": "Check all items of a list", - "r-d-uncheck-all": "Uncheck all items of a list", - "r-d-check-one": "Check item", - "r-d-uncheck-one": "Uncheck item", - "r-d-check-of-list": "of checklist", - "r-d-add-checklist": "Add checklist", - "r-d-remove-checklist": "Remove checklist", - "r-by": "by", - "r-add-checklist": "Add checklist", - "r-with-items": "with items", - "r-items-list": "item1,item2,item3", - "r-add-swimlane": "Add swimlane", - "r-swimlane-name": "swimlane name", - "r-board-note": "Примітка: залиште поле пустим, щоб відповідати кожному можливому значенню ", - "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", - "r-when-a-card-is-moved": "When a card is moved to another list", - "r-set": "Set", + "r-d-check-all": "Відмітити всі елементи списку", + "r-d-uncheck-all": "Скасувати відмітки всіх елементів списку", + "r-d-check-one": "Відмітити елемент", + "r-d-uncheck-one": "Скасувати відмітку елемента", + "r-d-check-of-list": "контрольного списку", + "r-d-add-checklist": "Додати контрольний список", + "r-d-remove-checklist": "Видалити контрольний список", + "r-by": "від", + "r-add-checklist": "Додати контрольний список", + "r-with-items": "з елементами", + "r-items-list": "елемент1,елемент2,елемент3", + "r-add-swimlane": "Додати свімлейн", + "r-swimlane-name": "назва свімлейна", + "r-board-note": "Примітка: залиште поле порожнім, щоб відповідати будь-якому можливому значенню", + "r-checklist-note": "Примітка: елементи контрольного списку повинні бути записані через кому.", + "r-when-a-card-is-moved": "Коли картка переміщена в інший список", + "r-set": "Встановити", "r-update": "Оновити", - "r-datefield": "поле для дати", + "r-datefield": "поле дати", "r-df-start-at": "початок", - "r-df-due-at": "до", + "r-df-due-at": "термін", "r-df-end-at": "кінець", "r-df-received-at": "отримано", - "r-to-current-datetime": "to current date/time", - "r-remove-value-from": "Remove value from", - "r-link-card": "Link card to", + "r-to-current-datetime": "до поточної дати/часу", + "r-remove-value-from": "Видалити значення з", + "r-link-card": "Зв'язати картку з", "ldap": "LDAP", "oauth2": "OAuth2", "cas": "CAS", - "authentication-method": "метод Автентифікації", - "authentication-type": "тип Автентифікації", - "custom-product-name": "Custom Product Name", - "layout": "Layout", - "hide-logo": "Hide Logo", - "hide-card-counter-list": "Hide card counter list on All Boards", - "hide-board-member-list": "Hide board member list on All Boards", - "add-custom-html-after-body-start": "Add Custom HTML after <body> start", - "add-custom-html-before-body-end": "Add Custom HTML before </body> end", - "error-undefined": "Something went wrong", - "error-ldap-login": "An error occurred while trying to login", - "display-authentication-method": "Display Authentication Method", - "oidc-button-text": "Customize the OIDC button text", - "default-authentication-method": "Default Authentication Method", - "duplicate-board": "Duplicate Board", - "org-number": "Число організацій:", - "team-number": "Число команд:", - "people-number": "Число людей:", - "swimlaneDeletePopup-title": "Delete Swimlane ?", - "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", + "authentication-method": "метод автентифікації", + "authentication-type": "тип автентифікації", + "custom-product-name": "Назва спеціального продукту", + "layout": "Макет", + "hide-logo": "Сховати логотип", + "hide-card-counter-list": "Сховати лічильник карток на Всіх дошках", + "hide-board-member-list": "Сховати список учасників дошки на Всіх дошках", + "add-custom-html-after-body-start": "Додати спеціальний HTML після початку <body>", + "add-custom-html-before-body-end": "Додати спеціальний HTML перед кінцем </body>", + "error-undefined": "Щось пішло не так", + "error-ldap-login": "Помилка під час спроби входу", + "display-authentication-method": "Показати метод автентифікації", + "oidc-button-text": "Налаштувати текст кнопки OIDC", + "default-authentication-method": "Стандартний метод автентифікації", + "duplicate-board": "Дублювати дошку", + "org-number": "Кількість організацій:", + "team-number": "Кількість команд:", + "people-number": "Кількість людей:", + "swimlaneDeletePopup-title": "Видалити свімлейн?", + "swimlane-delete-pop": "Всі дії будуть видалені з журналу активності, і ви не зможете відновити свімлейн. Немає можливості відмінити.", "restore-all": "Відновити все", "delete-all": "Видалити все", - "loading": "Завантаження, зачекайте будь-ласка.", - "previous_as": "last time was", - "act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__", - "act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)", - "act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)", - "act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)", - "a-dueAt": "modified due time to be", - "a-endAt": "modified ending time to be", - "a-startAt": "modified starting time to be", - "a-receivedAt": "modified received time to be", - "almostdue": "current due time %s is approaching", - "pastdue": "current due time %s is past", - "duenow": "current due time %s is today", - "act-newDue": "__list__/__card__ має 1-ше нагадування визначеного терміну [__board__]", - "act-withDue": "__list__/__card__ due reminders [__board__]", - "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching", - "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", - "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", - "act-atUserComment": "Ви були згадані у [__board__] __list__/__card__", - "delete-user-confirm-popup": "Ви дійсно бажаєте видалити даний обліковий запис? Цю дію не можна відмінити.", - "delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.", - "delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.", - "accounts-allowUserDelete": "Дозволити користувачам видаляти їх власні облікові записи", - "hide-minicard-label-text": "Hide minicard label text", - "show-desktop-drag-handles": "Show desktop drag handles", - "assignee": "Assignee", - "cardAssigneesPopup-title": "Assignee", - "addmore-detail": "Add a more detailed description", - "show-on-card": "Show on Card", - "show-on-minicard": "Show on Minicard", - "new": "New", - "editOrgPopup-title": "Edit Organization", - "newOrgPopup-title": "New Organization", - "editTeamPopup-title": "Edit Team", - "newTeamPopup-title": "New Team", - "editUserPopup-title": "Edit User", - "newUserPopup-title": "New User", - "notifications": "Notifications", - "help": "Help", - "view-all": "View All", - "filter-by-unread": "Filter by Unread", - "mark-all-as-read": "Mark all as read", - "remove-all-read": "Remove all read", - "allow-rename": "Allow Rename", - "allowRenamePopup-title": "Allow Rename", - "start-day-of-week": "Set day of the week start", - "monday": "Monday", - "tuesday": "Tuesday", - "wednesday": "Wednesday", - "thursday": "Thursday", - "friday": "Friday", - "saturday": "Saturday", - "sunday": "Sunday", + "loading": "Завантаження, будь ласка, зачекайте.", + "previous_as": "останній раз було", + "act-a-dueAt": "змінено час завершення на \nКоли: __timeValue__\nДе: __card__\n попередній термін був __timeOldValue__", + "act-a-endAt": "змінено час закінчення на __timeValue__ з (__timeOldValue__)", + "act-a-startAt": "змінено час початку на __timeValue__ з (__timeOldValue__)", + "act-a-receivedAt": "змінено час отримання на __timeValue__ з (__timeOldValue__)", + "a-dueAt": "змінено час завершення на", + "a-endAt": "змінено час закінчення на", + "a-startAt": "змінено час початку на", + "a-receivedAt": "змінено час отримання на", + "almostdue": "поточний час завершення %s наближається", + "pastdue": "поточний час завершення %s пройшов", + "duenow": "поточний час завершення %s сьогодні", + "act-newDue": "__list__/__card__ має перше нагадування про термін [__board__]", + "act-withDue": "__list__/__card__ нагадування про терміни [__board__]", + "act-almostdue": "нагадувало, що поточний термін (__timeValue__) __card__ наближається", + "act-pastdue": "нагадувало, що поточний термін (__timeValue__) __card__ пройшов", + "act-duenow": "нагадувало, що поточний термін (__timeValue__) __card__ зараз", + "act-atUserComment": "Вас згадали в [__board__] __list__/__card__", + "delete-user-confirm-popup": "Ви дійсно бажаєте видалити цей обліковий запис? Цю дію не можна скасувати.", + "delete-team-confirm-popup": "Ви впевнені, що хочете видалити цю команду? Немає можливості відмінити.", + "delete-org-confirm-popup": "Ви впевнені, що хочете видалити цю організацію? Немає можливості відмінити.", + "accounts-allowUserDelete": "Дозволити користувачам видаляти свої облікові записи", + "hide-minicard-label-text": "Сховати текст мітки міні-картки", + "show-desktop-drag-handles": "Показати ручки перетягування на робочому столі", + "assignee": "Виконавець", + "cardAssigneesPopup-title": "Виконавець", + "addmore-detail": "Додати більш детальний опис", + "show-on-card": "Показати на картці", + "show-on-minicard": "Показати на міні-картці", + "new": "Новий", + "editOrgPopup-title": "Редагувати організацію", + "newOrgPopup-title": "Нова організація", + "editTeamPopup-title": "Редагувати команду", + "newTeamPopup-title": "Нова команда", + "editUserPopup-title": "Редагувати користувача", + "newUserPopup-title": "Новий користувач", + "notifications": "Сповіщення", + "help": "Допомога", + "view-all": "Показати все", + "filter-by-unread": "Фільтрувати непрочитані", + "mark-all-as-read": "Позначити всі як прочитані", + "remove-all-read": "Видалити всі прочитані", + "allow-rename": "Дозволити перейменування", + "allowRenamePopup-title": "Дозволити перейменування", + "start-day-of-week": "Встановити день початку тижня", + "monday": "Понеділок", + "tuesday": "Вівторок", + "wednesday": "Середа", + "thursday": "Четвер", + "friday": "П'ятниця", + "saturday": "Субота", + "sunday": "Неділя", "status": "Статус", - "swimlane": "Swimlane", + "swimlane": "Лінія", "owner": "Власник", "last-modified-at": "Востаннє змінено", "last-activity": "Остання активність", "voting": "Голосування", "archived": "Архівовано", - "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", - "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", - "hide-checked-items": "Сховати обрані елементи", - "task": "Task", - "create-task": "Create Task", + "delete-linked-card-before-this-card": "Ви не можете видалити цю картку, поки не видалите пов'язану картку, яка має", + "delete-linked-cards-before-this-list": "Ви не можете видалити цей список, поки не видалите пов'язані картки, які вказують на картки в цьому списку", + "hide-checked-items": "Сховати відмічені елементи", + "hide-finished-checklist": "Сховати виконані контрольні списки", + "task": "Завдання", + "create-task": "Створити завдання", "ok": "OK", - "organizations": "Organizations", - "teams": "Teams", - "displayName": "Display Name", - "shortName": "Short Name", - "autoAddUsersWithDomainName": "Automatically add users with the domain name", - "website": "Website", - "person": "Person", - "my-cards": "My Cards", + "organizations": "Організації", + "teams": "Команди", + "displayName": "Відображене Ім'я", + "shortName": "Коротке Ім'я", + "autoAddUsersWithDomainName": "Автоматично додавати користувачів з доменним ім'ям", + "website": "Веб-сайт", + "person": "Особа", + "my-cards": "Мої картки", "card": "Картка", - "list": "List", - "board": "Board", + "list": "Список", + "board": "Дошка", "context-separator": "/", - "myCardsViewChange-title": "My Cards View", - "myCardsViewChangePopup-title": "My Cards View", + "myCardsViewChange-title": "Мій Погляд на Картки", + "myCardsViewChangePopup-title": "Мій Погляд на Картки", "myCardsViewChange-choice-boards": "Дошки", - "myCardsViewChange-choice-table": "Table", - "myCardsSortChange-title": "My Cards Sort", - "myCardsSortChangePopup-title": "My Cards Sort", - "myCardsSortChange-choice-board": "By Board", - "myCardsSortChange-choice-dueat": "By Due Date", - "dueCards-title": "Due Cards", - "dueCardsViewChange-title": "Due Cards View", - "dueCardsViewChangePopup-title": "Due Cards View", - "dueCardsViewChange-choice-me": "Me", - "dueCardsViewChange-choice-all": "All Users", - "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", - "broken-cards": "Broken Cards", - "board-title-not-found": "Board '%s' not found.", - "swimlane-title-not-found": "Swimlane '%s' not found.", - "list-title-not-found": "List '%s' not found.", - "label-not-found": "Label '%s' not found.", - "label-color-not-found": "Label color %s not found.", - "user-username-not-found": "Username '%s' not found.", - "comment-not-found": "Card with comment containing text '%s' not found.", - "org-name-not-found": "Organization '%s' not found.", - "team-name-not-found": "Team '%s' not found.", - "globalSearch-title": "Search All Boards", - "no-cards-found": "No Cards Found", - "one-card-found": "One Card Found", - "n-cards-found": "%s Cards Found", - "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", - "operator-board": "board", - "operator-board-abbrev": "b", - "operator-swimlane": "swimlane", - "operator-swimlane-abbrev": "s", - "operator-list": "list", - "operator-list-abbrev": "l", - "operator-label": "label", + "myCardsViewChange-choice-table": "Таблиця", + "myCardsSortChange-title": "Моє Сортування Карток", + "myCardsSortChangePopup-title": "Моє Сортування Карток", + "myCardsSortChange-choice-board": "По Дошці", + "myCardsSortChange-choice-dueat": "По Терміну", + "dueCards-title": "Картки за Терміном", + "dueCardsViewChange-title": "Вид Карток за Терміном", + "dueCardsViewChangePopup-title": "Вид Карток за Терміном", + "dueCardsViewChange-choice-me": "Я", + "dueCardsViewChange-choice-all": "Усі Користувачі", + "dueCardsViewChange-choice-all-description": "Показує всі незавершені картки з датою Термін з дошок, для яких користувач має дозвіл.", + "broken-cards": "Пошкоджені Картки", + "board-title-not-found": "Дошку '%s' не знайдено.", + "swimlane-title-not-found": "Лінію '%s' не знайдено.", + "list-title-not-found": "Список '%s' не знайдено.", + "label-not-found": "Мітку '%s' не знайдено.", + "label-color-not-found": "Колір мітки %s не знайдено.", + "user-username-not-found": "Ім'я користувача '%s' не знайдено.", + "comment-not-found": "Картку з коментарем, що містить текст '%s', не знайдено.", + "org-name-not-found": "Організацію '%s' не знайдено.", + "team-name-not-found": "Команду '%s' не знайдено.", + "globalSearch-title": "Пошук по всіх дошках", + "no-cards-found": "Картки не знайдено", + "one-card-found": "Знайдено одну картку", + "n-cards-found": "Знайдено %s карток", + "n-n-of-n-cards-found": "start-end з total Карток знайдено", + "operator-board": "дошка", + "operator-board-abbrev": "д", + "operator-swimlane": "лінія", + "operator-swimlane-abbrev": "л", + "operator-list": "список", + "operator-list-abbrev": "с", + "operator-label": "мітка", "operator-label-abbrev": "#", - "operator-user": "user", + "operator-user": "користувач", "operator-user-abbrev": "@", "operator-member": "Користувач", - "operator-member-abbrev": "m", - "operator-assignee": "assignee", - "operator-assignee-abbrev": "a", - "operator-creator": "creator", - "operator-status": "status", + "operator-member-abbrev": "м", + "operator-assignee": "виконавець", + "operator-assignee-abbrev": "в", + "operator-creator": "автор", + "operator-status": "статус", "operator-due": "до", - "operator-created": "created", - "operator-modified": "modified", - "operator-sort": "sort", - "operator-comment": "comment", - "operator-has": "has", - "operator-limit": "limit", - "operator-debug": "debug", - "operator-org": "org", - "operator-team": "team", - "predicate-archived": "archived", - "predicate-open": "open", - "predicate-ended": "ended", - "predicate-all": "all", - "predicate-overdue": "overdue", - "predicate-week": "week", - "predicate-month": "month", - "predicate-quarter": "quarter", - "predicate-year": "year", + "operator-created": "створено", + "operator-modified": "змінено", + "operator-sort": "сортувати", + "operator-comment": "коментар", + "operator-has": "має", + "operator-limit": "обмеження", + "operator-debug": "налагодження", + "operator-org": "орг", + "operator-team": "команда", + "predicate-archived": "архівовано", + "predicate-open": "відкрито", + "predicate-ended": "завершено", + "predicate-all": "всі", + "predicate-overdue": "прострочено", + "predicate-week": "тиждень", + "predicate-month": "місяць", + "predicate-quarter": "квартал", + "predicate-year": "рік", "predicate-due": "до", - "predicate-modified": "modified", - "predicate-created": "created", - "predicate-attachment": "attachment", - "predicate-description": "description", - "predicate-checklist": "checklist", + "predicate-modified": "змінено", + "predicate-created": "створено", + "predicate-attachment": "вкладення", + "predicate-description": "опис", + "predicate-checklist": "чеклист", "predicate-start": "початок", "predicate-end": "кінець", - "predicate-assignee": "assignee", + "predicate-assignee": "виконавець", "predicate-member": "Користувач", - "predicate-public": "public", - "predicate-private": "private", - "predicate-selector": "selector", - "predicate-projection": "projection", - "operator-unknown-error": "%s is not an operator", - "operator-number-expected": "operator __operator__ expected a number, got '__value__'", - "operator-sort-invalid": "sort of '%s' is invalid", - "operator-status-invalid": "'%s' is not a valid status", - "operator-has-invalid": "%s is not a valid existence check", - "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", - "operator-debug-invalid": "%s is not a valid debug predicate", - "next-page": "Next Page", - "previous-page": "Previous Page", - "heading-notes": "Notes", - "globalSearch-instructions-heading": "Search Instructions", - "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", - "globalSearch-instructions-operators": "Available operators:", - "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", - "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", - "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", - "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", - "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", - "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", - "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", - "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", - "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", - "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", - "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - cards where *<username>* is the card's creator", - "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*", - "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*", - "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", - "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", - "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", - "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", - "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", - "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", - "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", - "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", - "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", - "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", - "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", - "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", - "globalSearch-instructions-notes-1": "Multiple operators may be specified.", - "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", - "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", - "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", - "globalSearch-instructions-notes-4": "Text searches are case insensitive.", - "globalSearch-instructions-notes-5": "By default archived cards are not searched.", - "link-to-search": "Link to this search", + "predicate-public": "публічний", + "predicate-private": "приватний", + "predicate-selector": "селектор", + "predicate-projection": "проекція", + "operator-unknown-error": "%s не є оператором", + "operator-number-expected": "оператор operator очікував число, отримано 'value'", + "operator-sort-invalid": "сортування '%s' є недійсним", + "operator-status-invalid": "'%s' не є допустимим статусом", + "operator-has-invalid": "%s не є дійсною перевіркою існування", + "operator-limit-invalid": "%s не є дійсним обмеженням. Обмеження повинно бути додатнім цілим числом.", + "operator-debug-invalid": "%s не є дійсною налагоджувальною пропозицією", + "next-page": "Наступна сторінка", + "previous-page": "Попередня сторінка", + "heading-notes": "Нотатки", + "globalSearch-instructions-heading": "Інструкції пошуку", + "globalSearch-instructions-description": "Пошук може містити оператори для уточнення пошуку. Оператори вказуються шляхом запису назви оператора та значення, розділеного двокрапкою. Наприклад, специфікація оператора список:Заблоковано обмежить пошук карток, що містяться у списку з назвою Заблоковано. Якщо значення містить пробіли або спеціальні символи, воно повинно бути укладено в подвійні лапки (наприклад, список:\"На розгляд\").", + "globalSearch-instructions-operators": "Доступні оператори:", + "globalSearch-instructions-operator-board": "дошка:<назва> - картки на дошках, що відповідають вказаній <назві>", + "globalSearch-instructions-operator-list": "список:<назва> - картки у списках, що відповідають вказаній <назві>", + "globalSearch-instructions-operator-swimlane": "лінія:<назва> - картки в лініях, що відповідають вказаній <назві>", + "globalSearch-instructions-operator-comment": "коментар:<текст> - картки з коментарем, що містить <текст>.", + "globalSearch-instructions-operator-label": "мітка:<колір> мітка:<назва> - картки, які мають мітку, що відповідає <коліру> або <назві>", + "globalSearch-instructions-operator-hash": "#<назва|колір> - скорочення для мітка:<колір> або мітка:<назва>", + "globalSearch-instructions-operator-user": "користувач:<ім'я_користувача> - картки, де <ім'я_користувача> є членом або виконавцем", + "globalSearch-instructions-operator-at": "@<ім'я_користувача> - скорочення для користувач:<ім'я_користувача>", + "globalSearch-instructions-operator-member": "Користувач:<ім'я_користувача> - картки, де <ім'я_користувача> є членом", + "globalSearch-instructions-operator-assignee": "виконавець:<ім'я_користувача> - картки, де <ім'я_користувача> є виконавцем", + "globalSearch-instructions-operator-creator": "автор:<ім'я_користувача> - картки, де <ім'я_користувача> є автором картки", + "globalSearch-instructions-operator-org": "орг:<відображене_ім'я|коротке_ім'я> - картки, що належать до дошки, призначеної організації <назва>", + "globalSearch-instructions-operator-team": "команда:<відображене_ім'я|коротке_ім'я> - картки, що належать до дошки, призначеної команді <назва>", + "globalSearch-instructions-operator-due": "до:<n> - картки, які повинні бути виконані протягом <n> днів відтепер. до:прострочено перелічує всі картки, що минули свій термін виконання.", + "globalSearch-instructions-operator-created": "створено:<n> - картки, які були створені <n> днів тому або менше", + "globalSearch-instructions-operator-modified": "змінено:<n> - картки, які були змінені <n> днів тому або менше", + "globalSearch-instructions-operator-status": "статус:<статус> - де <статус> один із наступних:", + "globalSearch-instructions-status-archived": "архівовано - архівовані картки", + "globalSearch-instructions-status-all": "всі - всі архівовані та неархівовані картки", + "globalSearch-instructions-status-ended": "завершено - картки з кінцевою датою", + "globalSearch-instructions-status-public": "публічний - картки лише на публічних дошках", + "globalSearch-instructions-status-private": "приватний - картки лише на приватних дошках", + "globalSearch-instructions-operator-has": "має:<поле> - де <поле> одне з вкладення, чеклист, опис, початок, до, кінець, виконавець або член. Поставивши - перед <полем>, ви шукаєте картки без значення у цьому полі (наприклад, має:-до шукає картки без терміну виконання).", + "globalSearch-instructions-operator-sort": "сортування:<назва_сортування> - де <назва_сортування> одна з до, створено або змінено. Для сортування за зменшенням, перед назвою сортування поставте -.", + "globalSearch-instructions-operator-limit": "обмеження:<n> - де <n> - це додатне ціле число, що виражає кількість карток, які будуть відображені на сторінці.", + "globalSearch-instructions-notes-1": "Можна вказати кілька операторів.", + "globalSearch-instructions-notes-2": "Подібні оператори додаються ORразом. Повертаються картки, які відповідають будь-яким умовам.\nсписок:Доступно список:Заблоковано поверне картки, що містяться в будь-якому списку з назвою Доступно або Заблоковано.", + "globalSearch-instructions-notes-3": "Відмінні оператори додаються ANDразом. Повертаються лише картки, що відповідають усім відмінним операторам. список:Доступно мітка:червоний повертає лише картки у списку Доступно з червоною міткою.", + "globalSearch-instructions-notes-3-2": "Дні можна вказати як додатне або від'ємне ціле число або використовуючи тиждень, місяць, квартал або рік для поточного періоду.", + "globalSearch-instructions-notes-4": "Пошук тексту нечутливий до регістру.", + "globalSearch-instructions-notes-5": "За замовчуванням не архівуються картки.", + "link-to-search": "Посилання на цей пошук", "excel-font": "Arial", "number": "Номер", - "label-colors": "Label Colors", - "label-names": "Label Names", - "archived-at": "archived at", - "sort-cards": "Sort Cards", + "label-colors": "Кольори міток", + "label-names": "Назви міток", + "archived-at": "заархівовано", + "sort-cards": "Сортування карток", "sort-is-on": "Сортування увімкнене", - "cardsSortPopup-title": "Sort Cards", - "due-date": "Due Date", - "server-error": "Server Error", - "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`", - "title-alphabetically": "Title (Alphabetically)", - "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)", - "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", - "move-swimlane": "Move Swimlane", - "moveSwimlanePopup-title": "Move Swimlane", - "custom-field-stringtemplate": "String Template", - "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", - "custom-field-stringtemplate-separator": "Separator (use or   for a space)", - "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", - "creator": "Creator", - "creator-on-minicard": "Creator on minicard", - "filesReportTitle": "Files Report", - "reports": "Reports", - "rulesReportTitle": "Rules Report", - "boardsReportTitle": "Boards Report", - "cardsReportTitle": "Cards Report", - "copy-swimlane": "Copy Swimlane", - "copySwimlanePopup-title": "Copy Swimlane", - "display-card-creator": "Display Card Creator", - "wait-spinner": "Wait Spinner", - "Bounce": "Bounce Wait Spinner", - "Cube": "Cube Wait Spinner", - "Cube-Grid": "Cube-Grid Wait Spinner", - "Dot": "Dot Wait Spinner", - "Double-Bounce": "Double Bounce Wait Spinner", - "Rotateplane": "Rotateplane Wait Spinner", - "Scaleout": "Scaleout Wait Spinner", - "Wave": "Wave Wait Spinner", - "maximize-card": "Maximize Card", - "minimize-card": "Minimize Card", - "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", - "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", - "subject": "Subject", - "details": "Details", - "carbon-copy": "Carbon Copy (Cc:)", - "ticket": "Ticket", - "tickets": "Tickets", - "ticket-number": "Ticket Number", - "open": "Open", - "pending": "Pending", - "closed": "Closed", - "resolved": "Resolved", - "cancelled": "Cancelled", - "history": "History", - "request": "Request", - "requests": "Requests", - "help-request": "Help Request", - "editCardSortOrderPopup-title": "Change Sorting", - "cardDetailsPopup-title": "Card Details", - "add-teams": "Add teams", - "add-teams-label": "Added teams are displayed below:", - "remove-team-from-table": "Are you sure you want to remove this team from the board ?", - "confirm-btn": "Confirm", + "cardsSortPopup-title": "Сортування карток", + "due-date": "Термін виконання", + "server-error": "Помилка сервера", + "server-error-troubleshooting": "Будь ласка, надішліть помилку, що виникла на сервері.\nДля встановлення через Snap, виконайте: `sudo snap logs wekan.wekan`\nДля встановлення через Docker, виконайте: `sudo docker logs wekan-app`", + "title-alphabetically": "Назва (за алфавітом)", + "created-at-newest-first": "Створено (спочатку найновіші)", + "created-at-oldest-first": "Створено (спочатку найстаріші)", + "links-heading": "Посилання", + "hide-activities-of-all-boards": "Не показуйте дії дошки на всіх дошках", + "now-activities-of-all-boards-are-hidden": "Тепер усі дії всіх дощок приховані", + "move-swimlane": "Перемістити лінію плавання", + "moveSwimlanePopup-title": "Перемістити лінію плавання", + "custom-field-stringtemplate": "Строковий шаблон", + "custom-field-stringtemplate-format": "Формат (використовуйте %{value} як заповнювач)", + "custom-field-stringtemplate-separator": "Роздільник (використовуйте або для пробілу)", + "custom-field-stringtemplate-item-placeholder": "Натисніть Enter, щоб додати ще елементи", + "creator": "Автор", + "creator-on-minicard": "Автор на міні-картці", + "filesReportTitle": "Звіт про файли", + "reports": "Звіти", + "rulesReportTitle": "Звіт про правила", + "boardsReportTitle": "Звіт про дошки", + "cardsReportTitle": "Звіт про картки", + "copy-swimlane": "Копіювати лінію плавання", + "copySwimlanePopup-title": "Копіювати лінію плавання", + "display-card-creator": "Показати автора картки", + "wait-spinner": "Обертовий маркер очікування", + "Bounce": "Обертовий маркер очікування (Bounce)", + "Cube": "Обертовий маркер очікування (Cube)", + "Cube-Grid": "Обертовий маркер очікування (Cube-Grid)", + "Dot": "Обертовий маркер очікування (Dot)", + "Double-Bounce": "Обертовий маркер очікування (Double Bounce)", + "Rotateplane": "Обертовий маркер очікування (Rotateplane)", + "Scaleout": "Обертовий маркер очікування (Scaleout)", + "Wave": "Обертовий маркер очікування (Wave)", + "maximize-card": "Збільшити картку", + "minimize-card": "Зменшити картку", + "delete-org-warning-message": "Не можливо видалити цю організацію, є принаймні один користувач, який до неї належить", + "delete-team-warning-message": "Не можливо видалити цю команду, є принаймні один користувач, який до неї належить", + "subject": "Тема", + "details": "Деталі", + "carbon-copy": "Копія (Cc:)", + "ticket": "Заявка", + "tickets": "Заявки", + "ticket-number": "Номер заявки", + "open": "Відкрита", + "pending": "В очікуванні", + "closed": "Закрита", + "resolved": "Вирішена", + "cancelled": "Скасована", + "history": "Історія", + "request": "Запит", + "requests": "Запити", + "help-request": "Запит на допомогу", + "editCardSortOrderPopup-title": "Змінити порядок сортування", + "cardDetailsPopup-title": "Деталі картки", + "add-teams": "Додати команди", + "add-teams-label": "Додані команди відображаються нижче:", + "remove-team-from-table": "Ви впевнені, що хочете видалити цю команду з дошки?", + "confirm-btn": "Підтвердити", "remove-btn": "Видалити", - "filter-card-title-label": "Filter by card title", - "invite-people-success": "Invitation to register sent with success", - "invite-people-error": "Error while sending invitation to register", - "can-invite-if-same-mailDomainName": "Email domain name", - "to-create-teams-contact-admin": "To create teams, please contact the administrator.", - "Node_heap_total_heap_size": "Node heap: total heap size", - "Node_heap_total_heap_size_executable": "Node heap: total heap size executable", - "Node_heap_total_physical_size": "Node heap: total physical size", - "Node_heap_total_available_size": "Node heap: total available size", - "Node_heap_used_heap_size": "Node heap: used heap size", - "Node_heap_heap_size_limit": "Node heap: heap size limit", - "Node_heap_malloced_memory": "Node heap: malloced memory", - "Node_heap_peak_malloced_memory": "Node heap: peak malloced memory", - "Node_heap_does_zap_garbage": "Node heap: does zap garbage", - "Node_heap_number_of_native_contexts": "Node heap: number of native contexts", - "Node_heap_number_of_detached_contexts": "Node heap: number of detached contexts", - "Node_memory_usage_rss": "Node memory usage: resident set size", - "Node_memory_usage_heap_total": "Node memory usage: total size of the allocated heap", - "Node_memory_usage_heap_used": "Node memory usage: actual memory used", - "Node_memory_usage_external": "Node memory usage: external", - "add-organizations": "Add organizations", - "add-organizations-label": "Added organizations are displayed below:", - "remove-organization-from-board": "Are you sure you want to remove this organization from this board ?", - "to-create-organizations-contact-admin": "To create organizations, please contact administrator.", - "custom-legal-notice-link-url": "Custom legal notice page URL", - "acceptance_of_our_legalNotice": "By continuing, you accept our", - "legalNotice": "legal notice", - "copied": "Copied!", - "checklistActionsPopup-title": "Checklist Actions", - "moveChecklist": "Move Checklist", - "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", - "copyChecklist": "Copy Checklist", - "copyChecklistPopup-title": "Copy Checklist", - "card-show-lists": "Card Show Lists", - "subtaskActionsPopup-title": "Subtask Actions", - "attachmentActionsPopup-title": "Attachment Actions", - "attachment-move-storage-fs": "Move attachment to filesystem", - "attachment-move-storage-gridfs": "Move attachment to GridFS", - "attachment-move-storage-s3": "Move attachment to S3", - "attachment-move": "Move Attachment", - "move-all-attachments-to-fs": "Move all attachments to filesystem", - "move-all-attachments-to-gridfs": "Move all attachments to GridFS", - "move-all-attachments-to-s3": "Move all attachments to S3", - "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", - "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", - "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", - "path": "Path", - "version-name": "Version-Name", - "size": "Size", - "storage": "Storage", - "action": "Action", - "board-title": "Board Title", - "attachmentRenamePopup-title": "Перейменувати", - "uploading": "Uploading", - "remaining_time": "Remaining time", - "speed": "Speed", - "progress": "Progress", - "password-again": "Password (again)", - "if-you-already-have-an-account": "If you already have an account", - "register": "Register", - "forgot-password": "Forgot password", - "minicardDetailsActionsPopup-title": "Card Details", - "Mongo_sessions_count": "Mongo sessions count", - "change-visibility": "Change Visibility", - "max-upload-filesize": "Максимальний розмір завантаження у байтах", - "allowed-upload-filetypes": "Дозволені для завантаження типи файлів:", - "max-avatar-filesize": "Максимальний розмір аватара у байтах:", + "filter-card-title-label": "Фільтрувати за назвою картки", + "invite-people-success": "Запрошення на реєстрацію надіслано успішно", + "invite-people-error": "Помилка під час надсилання запрошення на реєстрацію", + "can-invite-if-same-mailDomainName": "Домен електронної пошти", + "to-create-teams-contact-admin": "Для створення команд зв'яжіться з адміністратором.", + "Node_heap_total_heap_size": "Пам'ять кучі Node: загальний розмір кучі", + "Node_heap_total_heap_size_executable": "Пам'ять кучі Node: загальний розмір виконуваного файлу кучі", + "Node_heap_total_physical_size": "Пам'ять кучі Node: загальний фізичний розмір", + "Node_heap_total_available_size": "Пам'ять кучі Node: загальний доступний розмір", + "Node_heap_used_heap_size": "Пам'ять кучі Node: використаний розмір кучі", + "Node_heap_heap_size_limit": "Пам'ять кучі Node: обмеження розміру кучі", + "Node_heap_malloced_memory": "Пам'ять кучі Node: видалена пам'ять", + "Node_heap_peak_malloced_memory": "Пам'ять кучі Node: пікова видалена пам'ять", + "Node_heap_does_zap_garbage": "Пам'ять кучі Node: зміни гарбиж-коллектора", + "Node_heap_number_of_native_contexts": "Пам'ять кучі Node: кількість контекстів Native", + "Node_heap_number_of_detached_contexts": "Пам'ять кучі Node: кількість відокремлених контекстів", + "Node_memory_usage_rss": "Використання пам'яті Node: резидентний розмір набору", + "Node_memory_usage_heap_total": "Використання пам'яті Node: загальний розмір виділеної кучі", + "Node_memory_usage_heap_used": "Використання пам'яті Node: фактично використана пам'ять", + "Node_memory_usage_external": "Використання пам'яті Node: зовнішня", + "add-organizations": "Додати організації", + "add-organizations-label": "Додані організації відображаються нижче:", + "remove-organization-from-board": "Ви впевнені, що хочете видалити цю організацію з цієї дошки?", + "to-create-organizations-contact-admin": "Для створення організацій, будь ласка, зв'яжіться з адміністратором.", + "custom-legal-notice-link-url": "URL сторінки зі спеціальним юридичним повідомленням", + "acceptance_of_our_legalNotice": "Продовжуючи, ви приймаєте наше", + "legalNotice": "юридичне повідомлення", + "copied": "Скопійовано!", + "checklistActionsPopup-title": "Дії з чек-листом", + "moveChecklist": "Перемістити чек-лист", + "moveChecklistPopup-title": "Переміщення чек-листу", + "newlineBecomesNewChecklistItem": "Кожен рядок тексту стає одним із пунктів контрольного списку", + "newLineNewItem": "Один рядок тексту = один пункт контрольного списку", + "newlineBecomesNewChecklistItemOriginOrder": "Кожен рядок тексту стає одним із пунктів контрольного списку, в оригінальному порядку", + "originOrder": "оригінальний порядок", + "copyChecklist": "Скопіювати чек-лист", + "copyChecklistPopup-title": "Копіювання чек-листу", + "card-show-lists": "Карта Показ списків", + "subtaskActionsPopup-title": "Дії з підзавданнями", + "attachmentActionsPopup-title": "Дії з вкладеннями", + "attachment-move-storage-fs": "Перемістити вкладення в файлову систему", + "attachment-move-storage-gridfs": "Перемістити вкладення в GridFS", + "attachment-move-storage-s3": "Перемістити вкладення в S3", + "attachment-move": "Перемістити вкладення", + "move-all-attachments-to-fs": "Перемістити всі вкладення в файлову систему", + "move-all-attachments-to-gridfs": "Перемістити всі вкладення в GridFS", + "move-all-attachments-to-s3": "Перемістити всі вкладення в S3", + "move-all-attachments-of-board-to-fs": "Перемістити всі вкладення дошки в файлову систему", + "move-all-attachments-of-board-to-gridfs": "Перемістити всі вкладення дошки в GridFS", + "move-all-attachments-of-board-to-s3": "Перемістити всі вкладення дошки в S3", + "path": "Шлях", + "version-name": "Назва версії", + "size": "Розмір", + "storage": "Сховище", + "action": "Дія", + "board-title": "Назва дошки", + "attachmentRenamePopup-title": "Перейменувати вкладення", + "uploading": "Завантаження", + "remaining_time": "Залишилось часу", + "speed": "Швидкість", + "progress": "Прогрес", + "password-again": "Пароль (ще раз)", + "if-you-already-have-an-account": "Якщо у вас вже є обліковий запис", + "register": "Реєстрація", + "forgot-password": "Забули пароль", + "minicardDetailsActionsPopup-title": "Дії з міні-карткою", + "Mongo_sessions_count": "Кількість сесій MongoDB", + "change-visibility": "Змінити видимість", + "max-upload-filesize": "Максимальний розмір файлу для завантаження (у байтах)", + "allowed-upload-filetypes": "Дозволені типи файлів для завантаження:", + "max-avatar-filesize": "Максимальний розмір аватара (у байтах):", "allowed-avatar-filetypes": "Дозволені типи файлів для аватарів:", - "invalid-file": "Якщо назва файлу неправильна, завантаження або переіменування відміняється", - "preview-pdf-not-supported": "Ваш девайс не підтримує попередній перегляд PDF. Натомість, спробуйте завантажити файл", + "invalid-file": "Якщо ім'я файлу неправильне, завантаження або перейменування скасовується", + "preview-pdf-not-supported": "Попередній перегляд PDF не підтримується на вашому пристрої. Спробуйте завантажити файл", "drag-board": "Перетягнути дошку", - "translation-number": "Кількість користувацьких рядків перекладу:", - "delete-translation-confirm-popup": "Ви впевнені, що ви хочете видалити користувацький рядок перекладу? Цю дію неможливо відмінити", + "translation-number": "Кількість рядків для перекладу:", + "delete-translation-confirm-popup": "Ви впевнені, що хочете видалити користувацький рядок перекладу? Цю дію не можна скасувати.", "newTranslationPopup-title": "Новий користувацький рядок перекладу", - "editTranslationPopup-title": "Редагувати користувацький рядок перекладу", - "settingsTranslationPopup-title": "Видалити користувацький рядок перекладу? ", + "editTranslationPopup-title": "Редагування користувацького рядка перекладу", + "settingsTranslationPopup-title": "Видалити користувацький рядок перекладу?", "translation": "Переклад", "text": "Текст", "translation-text": "Перекласти текст", - "show-at-minicard": "Показати на міні-карті ", - "show-checklist-at-minicard": "Показати чеклист на міні-картці", - "show-subtasks-field": "Показати поле підзадач", - "convert-to-markdown": "Конвертувати у markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "show-subtasks-field": "Показати поле підзавдань", + "show-week-of-year": "Показати тиждень року (ISO 8601)", + "convert-to-markdown": "Конвертувати в Markdown", + "import-board-zip": "Додати файл .zip, який містить файли JSON дошки та підкаталоги з назвами дошок і вкладеннями", + "collapse": "Згорнути", + "uncollapse": "Розгорнути", + "hideCheckedChecklistItems": "Приховати відмічені елементи чек-листа", + "hideAllChecklistItems": "Приховати всі пункти чек-листа", + "support": "Підтримка", + "supportPopup-title": "Підтримка", + "accessibility-page-enabled": "Увімкнено сторінку доступності", + "accessibility-title": "Тема доступності", + "accessibility-content": "Доступність контенту" } diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz-AR.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/uz-AR.i18n.json +++ b/imports/i18n/data/uz-AR.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/uz-LA.i18n.json b/imports/i18n/data/uz-LA.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/uz-LA.i18n.json +++ b/imports/i18n/data/uz-LA.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/uz-UZ.i18n.json b/imports/i18n/data/uz-UZ.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/uz-UZ.i18n.json +++ b/imports/i18n/data/uz-UZ.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/uz.i18n.json b/imports/i18n/data/uz.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/uz.i18n.json +++ b/imports/i18n/data/uz.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ve-CC.i18n.json b/imports/i18n/data/ve-CC.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/ve-CC.i18n.json +++ b/imports/i18n/data/ve-CC.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ve-PP.i18n.json b/imports/i18n/data/ve-PP.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/ve-PP.i18n.json +++ b/imports/i18n/data/ve-PP.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ve.i18n.json b/imports/i18n/data/ve.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/ve.i18n.json +++ b/imports/i18n/data/ve.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/vi-VN.i18n.json b/imports/i18n/data/vi-VN.i18n.json index ea4c070de..f9b4c798e 100644 --- a/imports/i18n/data/vi-VN.i18n.json +++ b/imports/i18n/data/vi-VN.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Bộ lọc Nâng cao cho phép viết một chuỗi chứa các toán tử sau: == != <= >= && || ( ) Một khoảng trắng được sử dụng làm dấu phân cách giữa các Toán tử. Bạn có thể lọc tất cả các Trường tùy chỉnh bằng cách nhập tên và giá trị của chúng. Ví dụ: Field1 == Value1. Chú ý: Nếu các trường hoặc giá trị chứa khoảng trắng, bạn cần phải đóng gói chúng thành các dấu ngoặc kép. Ví dụ: 'Field 1' == 'Value 1'. Để bỏ qua các ký tự điều khiển đơn (' \\\\/) bạn có thể sử dụng \\\\. Ví dụ: Field1 == I\\\\'m. Ngoài ra bạn có thể kết hợp nhiều điều kiện. Ví dụ: F1 == V1 || F1 == V2. Thông thường tất cả các toán tử được giải thích từ trái sang phải. Bạn có thể thay đổi thứ tự bằng cách đặt dấu ngoặc. Ví dụ: F1 == V1 && ( F2 == V2 || F2 == V3 ). Ngoài ra, bạn có thể tìm kiếm các trường văn bản bằng cách sử dụng regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/vi.i18n.json b/imports/i18n/data/vi.i18n.json index 4fcf5bd8b..b13110496 100644 --- a/imports/i18n/data/vi.i18n.json +++ b/imports/i18n/data/vi.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "đã chuyển %s đến Lưu trữ", "activity-attached": "đã đính kèm %s vào %s", "activity-created": "đã tạo %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "đã tạo trường tuỳ chỉnh %s", "activity-excluded": "đã loại bỏ %s khỏi %s", "activity-imported": "đã nạp %s vào %s từ %s", @@ -85,10 +86,12 @@ "add-card": "Thêm Thẻ", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Danh sách việc cần hoàn thành", "click-to-star": "Bấm để gắn dấu sao bảng này.", "click-to-unstar": "Bấm để bỏ gắn bảng này.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard hoặc kéo và thả", "close": "Đóng", "close-board": "Đóng bảng", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Không đặt", + "comments": "Comments", "comment": "Bình luận", "comment-placeholder": "Viết Bình Luận", "comment-only": "Chỉ bình luận", @@ -376,6 +383,7 @@ "email-sent": "Đã gửi email", "email-verifyEmail-subject": "Xác minh địa chỉ email của bạn trên __siteName__", "email-verifyEmail-text": "Chào __user__,\n\nĐể xác minh email tài khoản của bạn, chỉ cần nhấp vào liên kết bên dưới.\n\n__url__\n\nCảm ơn.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Bật giới hạn WIP", "error-board-doesNotExist": "Bảng này không tồn tại", "error-board-notAdmin": "Bạn cần phải là quản trị viên của bảng này để làm điều đó", @@ -443,7 +451,7 @@ "advanced-filter-description": "Bộ lọc Nâng cao cho phép viết một chuỗi chứa các toán tử sau: == != <= >= && || ( ) Một khoảng trắng được sử dụng làm dấu phân cách giữa các Toán tử. Bạn có thể lọc tất cả các Trường tùy chỉnh bằng cách nhập tên và giá trị của chúng. Ví dụ: Field1 == Value1. Chú ý: Nếu các trường hoặc giá trị chứa khoảng trắng, bạn cần phải đóng gói chúng thành các dấu ngoặc kép. Ví dụ: 'Field 1' == 'Value 1'. Để bỏ qua các ký tự điều khiển đơn (' \\\\/) bạn có thể sử dụng \\\\. Ví dụ: Field1 == I\\\\'m. Ngoài ra bạn có thể kết hợp nhiều điều kiện. Ví dụ: F1 == V1 || F1 == V2. Thông thường tất cả các toán tử được giải thích từ trái sang phải. Bạn có thể thay đổi thứ tự bằng cách đặt dấu ngoặc. Ví dụ: F1 == V1 && ( F2 == V2 || F2 == V3 ). Ngoài ra, bạn có thể tìm kiếm các trường văn bản bằng cách sử dụng regex: F1 == /Tes.*/i", "fullname": "Họ và tên", "header-logo-title": "Quay lại trang bảng của bạn.", - "hide-system-messages": "Ẩn tin nhắn hệ thống", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Tạo Bảng", "home": "Trang Chủ", "import": "Nhập khẩu", @@ -572,6 +580,7 @@ "select-board": "Chọn Bảng", "set-wip-limit-value": "Đặt giới hạn cho số lượng nhiệm vụ tối đa trong danh sách này", "setWipLimitPopup-title": "Đặt giới hạn WIP", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Chỉ định bạn vào thẻ hiện tại", "shortcut-autocomplete-emoji": "Tự động điền biểu tượng cảm xúc", "shortcut-autocomplete-members": "Tự động điền Thành viên", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Đã sử dụng thẻ thời gian", "time": "Thời gian", "title": "Tiêu đề", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Đang theo dõi", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "Bạn không thể xóa thẻ này trước khi xóa lần đầu tiên thẻ được liên kết có", "delete-linked-cards-before-this-list": "Bạn không thể xóa danh sách này trước khi xóa lần đầu tiên các thẻ được liên kết trỏ đến các thẻ trong danh sách này", "hide-checked-items": "Ẩn đã hoàn thành", + "hide-finished-checklist": "Hide finished checklist", "task": "Nhiệm vụ", "create-task": "Tạo Nhiệm Vụ", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Được tạo lúc (Mới nhất đầu tiên)", "created-at-oldest-first": "Được tạo lúc (Cũ nhất trước)", "links-heading": "Liên kết", - "hide-system-messages-of-all-users": "Ẩn thông báo hệ thống của tất cả người dùng", - "now-system-messages-of-all-users-are-hidden": "Bây giờ thông báo hệ thống của tất cả người dùng bị ẩn", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Di chuyển Làn ngang", "moveSwimlanePopup-title": "Di chuyển Làn ngang", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Văn bản", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Thu gọn", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/vl-SS.i18n.json b/imports/i18n/data/vl-SS.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/vl-SS.i18n.json +++ b/imports/i18n/data/vl-SS.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/vo.i18n.json b/imports/i18n/data/vo.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/vo.i18n.json +++ b/imports/i18n/data/vo.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/wa-RR.i18n.json b/imports/i18n/data/wa-RR.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/wa-RR.i18n.json +++ b/imports/i18n/data/wa-RR.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/wa.i18n.json b/imports/i18n/data/wa.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/wa.i18n.json +++ b/imports/i18n/data/wa.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/wo.i18n.json b/imports/i18n/data/wo.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/wo.i18n.json +++ b/imports/i18n/data/wo.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/xh.i18n.json b/imports/i18n/data/xh.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/xh.i18n.json +++ b/imports/i18n/data/xh.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/yi.i18n.json b/imports/i18n/data/yi.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/yi.i18n.json +++ b/imports/i18n/data/yi.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/yo.i18n.json b/imports/i18n/data/yo.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/yo.i18n.json +++ b/imports/i18n/data/yo.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/yue_CN.i18n.json b/imports/i18n/data/yue_CN.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/yue_CN.i18n.json +++ b/imports/i18n/data/yue_CN.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/zgh.i18n.json b/imports/i18n/data/zgh.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/zgh.i18n.json +++ b/imports/i18n/data/zgh.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/zh-CN.i18n.json b/imports/i18n/data/zh-CN.i18n.json index f94104484..238e15892 100644 --- a/imports/i18n/data/zh-CN.i18n.json +++ b/imports/i18n/data/zh-CN.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s 已被移入归档", "activity-attached": "添加附件 %s 至 %s", "activity-created": "创建 %s", + "activity-changedListTitle": "重命名列表至%s", "activity-customfield-created": "创建了自定义字段 %s", "activity-excluded": "排除 %s 从 %s", "activity-imported": "导入 %s 至 %s 从 %s 中", @@ -85,10 +86,12 @@ "add-card": "添加卡片", "add-card-to-top-of-list": "添加卡片到列表顶部", "add-card-to-bottom-of-list": "添加卡片到列表底部", - "setListWidthPopup-title": "设置列表宽度", - "set-list-width": "设置列表宽度", - "set-list-width-value": "列表宽度(px)", - "list-width-error-message": "列表宽度需要设置数字类型", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "设置泳道高度", "set-swimlane-height": "设置泳道高度", "set-swimlane-height-value": "泳道高度(px)", @@ -263,6 +266,9 @@ "checklists": "清单", "click-to-star": "点此来标记该看板", "click-to-unstar": "点此来去除该看板的标记", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "剪贴板或者拖放文件", "close": "关闭", "close-board": "关闭看板", @@ -294,6 +300,7 @@ "color-white": "白", "color-yellow": "黄色", "unset-color": "复原", + "comments": "评论", "comment": "评论", "comment-placeholder": "添加评论", "comment-only": "仅能评论", @@ -376,6 +383,7 @@ "email-sent": "邮件已发送", "email-verifyEmail-subject": "在 __siteName__ 验证您的邮件地址", "email-verifyEmail-text": "尊敬的 __user__,\n\n点击下面的链接,验证您的邮件地址:\n\n__url__\n\n谢谢。", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "启用最大任务数限制", "error-board-doesNotExist": "该看板不存在", "error-board-notAdmin": "需要成为管理员才能执行此操作", @@ -443,7 +451,7 @@ "advanced-filter-description": "高级过滤器可以使用包含如下操作符的字符串进行过滤:== != <= >= && || ( ) 。操作符之间用空格隔开。输入字段名和数值就可以过滤所有自定义字段。例如:Field1 == Value1。注意如果字段名或数值包含空格,需要用单引号。例如: 'Field 1' == 'Value 1'。要跳过单个控制字符(' \\\\/),请使用 \\\\ 转义字符。例如: Field1 = I\\\\'m。支持组合使用多个条件,例如: F1 == V1 || F1 == V2。通常以从左到右的顺序进行判断。可以通过括号修改顺序,例如:F1 == V1 && ( F2 == V2 || F2 == V3 )。也支持使用正则表达式搜索文本字段。", "fullname": "全称", "header-logo-title": "返回您的看板页", - "hide-system-messages": "隐藏系统消息", + "show-activities": "显示活动", "headerBarCreateBoardPopup-title": "创建看板", "home": "首页", "import": "导入", @@ -572,6 +580,7 @@ "select-board": "选择看板", "set-wip-limit-value": "设置此列表中的最大任务数", "setWipLimitPopup-title": "设置最大任务数", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "指派当前卡片给自己", "shortcut-autocomplete-emoji": "表情符号自动补全", "shortcut-autocomplete-members": "自动补全成员", @@ -601,6 +610,7 @@ "has-spenttime-cards": "耗时卡", "time": "时间", "title": "标题", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "切换卡片标签1-9,多选添加标签1-9", "remove-labels-multiselect": "多选移除标签1-9", "tracking": "跟踪", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "在你首次删除卡片前你无法删除此选项卡片", "delete-linked-cards-before-this-list": "在首先删除指向此列表中的卡的链接卡之前,不能删除此列表", "hide-checked-items": "隐藏选中项", + "hide-finished-checklist": "隐藏完成清单", "task": "任务", "create-task": "创建任务", "ok": "确认", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "创建时间(最新)", "created-at-oldest-first": "创建时间(最旧)", "links-heading": "链接", - "hide-system-messages-of-all-users": "对所有用户隐藏系统消息", - "now-system-messages-of-all-users-are-hidden": "系统消息已对所有用户隐藏。", + "hide-activities-of-all-boards": "不要显示看板活动在所有看板", + "now-activities-of-all-boards-are-hidden": "现在所有板的所有活动都隐藏了", "move-swimlane": "移动泳道", "moveSwimlanePopup-title": "移动泳道", "custom-field-stringtemplate": "字符串模板", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "清单操作", "moveChecklist": "移动待办清单", "moveChecklistPopup-title": "移动待办清单", - "newlineBecomesNewChecklistItem": "可换行来新增一个待办清单项", + "newlineBecomesNewChecklistItem": "文本每行都变成一个清单条目", + "newLineNewItem": "一行文本=一个清单项", + "newlineBecomesNewChecklistItemOriginOrder": "清单文本每行都变成一个清单条目,保持排序", + "originOrder": "保持排序", "copyChecklist": "复制待办清单", "copyChecklistPopup-title": "复制待办清单", "card-show-lists": "卡片显示列表", @@ -1242,9 +1256,17 @@ "translation": "翻译", "text": "文本", "translation-text": "翻译文本", - "show-at-minicard": "在小卡片上显示", - "show-checklist-at-minicard": "小卡片显示清单", "show-subtasks-field": "显示子任务字段", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "转换成markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "崩溃", + "uncollapse": "展开", + "hideCheckedChecklistItems": "隐藏勾选的清单项", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/zh-GB.i18n.json b/imports/i18n/data/zh-GB.i18n.json index c0a101d1f..8c1e2a4a8 100644 --- a/imports/i18n/data/zh-GB.i18n.json +++ b/imports/i18n/data/zh-GB.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "高级过滤器可以使用包含如下操作符的字符串进行过滤:== != <= >= && || ( ) 。操作符之间用空格隔开。输入字段名和数值就可以过滤所有自定义字段。例如:Field1 == Value1。注意如果字段名或数值包含空格,需要用单引号。例如: 'Field 1' == 'Value 1'。要跳过单个控制字符(' \\\\/),请使用 \\\\ 转义字符。例如: Field1 = I\\\\'m。支持组合使用多个条件,例如: F1 == V1 || F1 == V2。通常以从左到右的顺序进行判断。可以通过括号修改顺序,例如:F1 == V1 && ( F2 == V2 || F2 == V3 )。也支持使用正则表达式搜索文本字段。", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/zh-HK.i18n.json b/imports/i18n/data/zh-HK.i18n.json index 27c85845a..22a0cb1e5 100644 --- a/imports/i18n/data/zh-HK.i18n.json +++ b/imports/i18n/data/zh-HK.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "高级过滤器可以使用包含如下操作符的字符串进行过滤:== != <= >= && || ( ) 。操作符之间用空格隔开。输入字段名和数值就可以过滤所有自定义字段。例如:Field1 == Value1。注意如果字段名或数值包含空格,需要用单引号。例如: 'Field 1' == 'Value 1'。要跳过单个控制字符(' \\\\/),请使用 \\\\ 转义字符。例如: Field1 = I\\\\'m。支持组合使用多个条件,例如: F1 == V1 || F1 == V2。通常以从左到右的顺序进行判断。可以通过括号修改顺序,例如:F1 == V1 && ( F2 == V2 || F2 == V3 )。也支持使用正则表达式搜索文本字段。", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/zh-Hans.i18n.json b/imports/i18n/data/zh-Hans.i18n.json index ee3e8a1c0..ccc880855 100644 --- a/imports/i18n/data/zh-Hans.i18n.json +++ b/imports/i18n/data/zh-Hans.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "邮件已发送", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "進階篩選可以使用包含如下運算子的字串進行過濾:== != <= >= && || ( ) 。運算子之間用空格隔開。輸入文字和數值就可以過濾所有自訂內容。例如:Field1 == Value1。注意:如果內容或數值包含空格,需要用單引號。例如: 'Field 1' == 'Value 1'。要跳過單個控制字元(' \\\\/),請使用 \\\\ 跳脫字元。例如: Field1 = I\\\\'m。支援組合使用多個條件,例如: F1 == V1 || F1 == V2。通常以從左到右的順序進行判斷。可以透過括號修改順序,例如:F1 == V1 && ( F2 == V2 || F2 == V3 )。也支援使用 正規表示式 (Regex) 搜尋內容。", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "创建看板", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "文本", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/zh-Hant.i18n.json b/imports/i18n/data/zh-Hant.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/zh-Hant.i18n.json +++ b/imports/i18n/data/zh-Hant.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index ebc648f8a..79ac8f358 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s 已被移到封存", "activity-attached": "已新增附件 %s 到 %s", "activity-created": "新增 %s", + "activity-changedListTitle": "重新命名清單為 %s", "activity-customfield-created": "已建立的自訂欄位 %s", "activity-excluded": "排除 %s 從 %s", "activity-imported": "匯入 %s 到 %s 從 %s 中", @@ -85,10 +86,12 @@ "add-card": "新增卡片", "add-card-to-top-of-list": "新增卡片至清單頂部", "add-card-to-bottom-of-list": "新增卡片至清單底部", - "setListWidthPopup-title": "設定清單寬度", - "set-list-width": "設定清單寬度", - "set-list-width-value": "清單寬度(畫素)", - "list-width-error-message": "清單寬度必須為正整數", + "setListWidthPopup-title": "設定寬度", + "set-list-width": "設定寬度", + "set-list-width-value": "設定最小與最大寬度(畫素)", + "list-width-error-message": "清單寬度必須為大於 100 的整數", + "keyboard-shortcuts-enabled": "已啟用鍵盤快捷鍵。點選以停用。", + "keyboard-shortcuts-disabled": "已停用鍵盤快捷鍵。點選以啟用。", "setSwimlaneHeightPopup-title": "設定泳道高度", "set-swimlane-height": "設定泳道高度", "set-swimlane-height-value": "泳道高度(畫素)", @@ -263,6 +266,9 @@ "checklists": "待辦清單", "click-to-star": "將看板加入我的最愛。", "click-to-unstar": "從我的最愛移除此看板。", + "click-to-enable-auto-width": "已停用自動列表寬度。點選以啟用。", + "click-to-disable-auto-width": "已啟用自動列表寬度。點選以停用。", + "auto-list-width": "自動列表寬度", "clipboard": "剪貼簿貼上或者拖曳檔案", "close": "關閉", "close-board": "關閉看板", @@ -294,14 +300,15 @@ "color-white": "白色", "color-yellow": "黃色", "unset-color": "未設定", + "comments": "評論", "comment": "評論", "comment-placeholder": "撰寫文字", "comment-only": "僅能評論", "comment-only-desc": "只能在卡片上發表評論。", - "comment-delete": "確定要刪除此留言?", - "deleteCommentPopup-title": "刪除留言", + "comment-delete": "確定要刪除此評論?", + "deleteCommentPopup-title": "刪除評論", "no-comments": "暫無評論", - "no-comments-desc": "無法檢視評論和活動。", + "no-comments-desc": "無法檢視評論與活動。", "worker": "工作者", "worker-desc": "只能移動卡片,分配給自己及發表評論。", "computer": "從本機上傳", @@ -376,6 +383,7 @@ "email-sent": "郵件已寄送", "email-verifyEmail-subject": "驗證您在 __siteName__ 的電子郵件", "email-verifyEmail-text": "親愛的 __user__,\n\n點選下面的連結,驗證您的電子郵件地址:\n\n__url__\n\n謝謝。", + "enable-vertical-scrollbars": "啟用垂直捲軸", "enable-wip-limit": "啟用 WIP 限制", "error-board-doesNotExist": "該看板不存在", "error-board-notAdmin": "需要成為管理員才能執行此操作", @@ -443,7 +451,7 @@ "advanced-filter-description": "進階篩選可以使用包含如下運算子的字串進行過濾:== != <= >= && || ( ) 。運算子之間用空格隔開。輸入文字和數值就可以過濾所有自訂內容。例如:Field1 == Value1。注意:如果內容或數值包含空格,需要用單引號。例如: 'Field 1' == 'Value 1'。要跳過單個控制字元(' \\\\/),請使用 \\\\ 跳脫字元。例如: Field1 = I\\\\'m。支援組合使用多個條件,例如: F1 == V1 || F1 == V2。通常以從左到右的順序進行判斷。可以透過括號修改順序,例如:F1 == V1 && ( F2 == V2 || F2 == V3 )。也支援使用 正規表示式 (Regex) 搜尋內容。", "fullname": "全稱", "header-logo-title": "返回您的看板頁面", - "hide-system-messages": "隱藏系統訊息", + "show-activities": "顯示活動", "headerBarCreateBoardPopup-title": "建立看板", "home": "首頁", "import": "匯入", @@ -572,6 +580,7 @@ "select-board": "選擇看板", "set-wip-limit-value": "設定此清單中的最大任務數", "setWipLimitPopup-title": "設定 WIP 限制", + "shortcut-add-self": "將您新增至目前的卡片", "shortcut-assign-self": "分配當前卡片給自己", "shortcut-autocomplete-emoji": "自動完成表情符號", "shortcut-autocomplete-members": "自動補齊成員", @@ -601,6 +610,7 @@ "has-spenttime-cards": "耗時卡", "time": "時間", "title": "標題", + "toggle-assignees": "切換卡片的代理人 1-9(按加入看板的順序)。", "toggle-labels": "切換卡片的標籤 1-9。多重選擇新增標籤 1-9", "remove-labels-multiselect": "多重選擇移除標籤 1-9", "tracking": "訂閱相關通知", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "在刪除指向此卡片的鏈結卡之前,您不能刪除此卡片", "delete-linked-cards-before-this-list": "在刪除指向該清單中卡片的鏈結卡之前,您不能刪除此清單", "hide-checked-items": "隱藏已勾選項目", + "hide-finished-checklist": "隱藏完成的待辦清單", "task": "任務", "create-task": "建立任務", "ok": "確定", @@ -1068,10 +1079,10 @@ "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - 卡片評論包含 *<text>*.", "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - 卡片標籤要符合 *<color>* 或 *<name>", "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - 的簡寫 `__operator_label__:<color>` 或 `__operator_label__:<name>`", - "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - 卡片,其中 *<username>* 是 *成員* 或 *分配者*", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - 卡片,其中 *<username>* 是 *成員* 或 *代理人*", "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - `user:<username>` 的簡寫", "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - 卡片,其中 *<username>* 是i *成員*", - "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - 卡片,其中 *<username>* 是 *分配者*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - 卡片,其中 *<username>* 是 *代理人*", "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - 卡片,其中 *<username>* 是卡片的建立者", "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - 屬於分配給組織 *<name>* 看板的卡片", "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - 屬於分配給團隊 *<name>* 看板的卡片", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "建立於(最新優先)", "created-at-oldest-first": "建立於(最早優先)", "links-heading": "連結", - "hide-system-messages-of-all-users": "對所有使用者隱藏系統訊息", - "now-system-messages-of-all-users-are-hidden": "系統訊息已對所有使用者隱藏", + "hide-activities-of-all-boards": "不要在所有看板上顯示看板活動", + "now-activities-of-all-boards-are-hidden": "現在所有看板的所有活動都隱藏了", "move-swimlane": "移動泳道流程圖", "moveSwimlanePopup-title": "移動泳道流程圖", "custom-field-stringtemplate": "文字範本", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "檢查清單動作", "moveChecklist": "移動檢查清單", "moveChecklistPopup-title": "移動檢查清單", - "newlineBecomesNewChecklistItem": "換行會變成新的檢查清單項目", + "newlineBecomesNewChecklistItem": "每行文字都會成為待辦清單的其中一個項目", + "newLineNewItem": "一行文字 = 一個待辦清單項目", + "newlineBecomesNewChecklistItemOriginOrder": "每行文字都會成為待辦清單的其中一個項目,並維持原始排序", + "originOrder": "原始排序", "copyChecklist": "複製檢查清單", "copyChecklistPopup-title": "複製檢查清單", "card-show-lists": "卡片顯示清單", @@ -1242,9 +1256,17 @@ "translation": "翻譯", "text": "文字", "translation-text": "翻譯文字", - "show-at-minicard": "在小卡片上顯示", - "show-checklist-at-minicard": "在小卡片上顯示檢查清單", "show-subtasks-field": "顯示子工作項目欄位", + "show-week-of-year": "顯示年度週數 (ISO 8601)", "convert-to-markdown": "轉換為 Markdown", - "import-board-zip": "新增包含看板 JSON 檔案與帶有附件的看板名稱子目錄的 .zip 檔案" + "import-board-zip": "新增包含看板 JSON 檔案與帶有附件的看板名稱子目錄的 .zip 檔案", + "collapse": "損毀", + "uncollapse": "展開", + "hideCheckedChecklistItems": "隱藏已勾選的待辦清單項目", + "hideAllChecklistItems": "隱藏所有待辦清單項目", + "support": "支援", + "supportPopup-title": "支援", + "accessibility-page-enabled": "已啟用無障礙頁面", + "accessibility-title": "無障礙主題", + "accessibility-content": "無障礙內容" } diff --git a/imports/i18n/data/zh.i18n.json b/imports/i18n/data/zh.i18n.json index 1eaa4efd2..44b4a7048 100644 --- a/imports/i18n/data/zh.i18n.json +++ b/imports/i18n/data/zh.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "進階篩選可以使用包含如下運算子的字串進行過濾:== != <= >= && || ( ) 。運算子之間用空格隔開。輸入文字和數值就可以過濾所有自訂內容。例如:Field1 == Value1。注意:如果內容或數值包含空格,需要用單引號。例如: 'Field 1' == 'Value 1'。要跳過單個控制字元(' \\\\/),請使用 \\\\ 跳脫字元。例如: Field1 = I\\\\'m。支援組合使用多個條件,例如: F1 == V1 || F1 == V2。通常以從左到右的順序進行判斷。可以透過括號修改順序,例如:F1 == V1 && ( F2 == V2 || F2 == V3 )。也支援使用 正規表示式 (Regex) 搜尋內容。", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/zu-ZA.i18n.json b/imports/i18n/data/zu-ZA.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/zu-ZA.i18n.json +++ b/imports/i18n/data/zu-ZA.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/zu.i18n.json b/imports/i18n/data/zu.i18n.json index 0485b50c5..78b62d375 100644 --- a/imports/i18n/data/zu.i18n.json +++ b/imports/i18n/data/zu.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -85,10 +86,12 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set List Width", - "set-list-width": "Set List Width", - "set-list-width-value": "List Width (pixels)", - "list-width-error-message": "List width must be a positive integer", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -263,6 +266,9 @@ "checklists": "Checklists", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -294,6 +300,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -376,6 +383,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", @@ -443,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "hide-system-messages": "Hide system messages", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -572,6 +580,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -601,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", @@ -956,6 +966,7 @@ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1109,8 +1120,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "links-heading": "Links", - "hide-system-messages-of-all-users": "Hide system messages of all users", - "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", "custom-field-stringtemplate": "String Template", @@ -1193,7 +1204,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1242,9 +1256,17 @@ "translation": "Translation", "text": "Text", "translation-text": "Translation text", - "show-at-minicard": "Show at minicard", - "show-checklist-at-minicard": "Show checklist at minicard", "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments" + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/languages.js b/imports/i18n/languages.js index 62751f2ea..5bb4201c1 100644 --- a/imports/i18n/languages.js +++ b/imports/i18n/languages.js @@ -568,12 +568,6 @@ export default { name: "Română (România)", load: () => import('./data/ro-RO.i18n.json'), }, - "ru-UA": { - code: "ru", - tag: "ru-UA", - name: "Русский (Украина)", - load: () => import('./data/ru-UA.i18n.json'), - }, "ru": { code: "ru", tag: "ru", @@ -616,6 +610,12 @@ export default { name: "தமிழ்", load: () => import('./data/ta.i18n.json'), }, + "te-IN": { + code: "te", + tag: "te_IN", + name: "తెలుగు (భారతదేశం)", + load: () => import('./data/te-IN.i18n.json'), + }, "th": { code: "th", tag: "th", @@ -634,18 +634,6 @@ export default { name: "Türkçe", load: () => import('./data/tr.i18n.json'), }, - "ua-UA": { - code: "ua", - tag: "ua-UA", - name: "українська (Україна)", - load: () => import('./data/ua-UA.i18n.json'), - }, - "ua": { - code: "ua", - tag: "ua", - name: "українська (Україна)", - load: () => import('./data/ua.i18n.json'), - }, "ug": { code: "ug", tag: "ug", diff --git a/imports/reactiveCache.js b/imports/reactiveCache.js index 11e63b238..ebacc96cd 100644 --- a/imports/reactiveCache.js +++ b/imports/reactiveCache.js @@ -128,9 +128,6 @@ ReactiveCacheServer = { return ret; }, getUsers(selector = {}, options = {}, getQuery = false) { - // getUsers(selector, options, getQuery) { - // let ret = Users.find(undefined, {}); - // console.log("getUser count: ", ret.count()) let ret = Users.find(selector, options); if (getQuery !== true) { ret = ret.fetch(); diff --git a/meta/icons/wekan-128.svg b/meta/icons/wekan-128.svg index d6e1ac5be..29d783ac5 100644 --- a/meta/icons/wekan-128.svg +++ b/meta/icons/wekan-128.svg @@ -1,72 +1 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - viewBox="-10 12 128 128" style="enable-background:new -10 12 128 128;" xml:space="preserve"> -<style type="text/css"> - .st0{opacity:0.6;fill:#D1D1D1;} - .st1{clip-path:url(#SVGID_2_);fill:url(#SVGID_3_);} - .st2{clip-path:url(#SVGID_2_);fill:none;stroke:#7ADDFC;stroke-miterlimit:10;} - .st3{clip-path:url(#SVGID_2_);fill:none;stroke:#529FDD;stroke-miterlimit:10;} - .st4{clip-path:url(#SVGID_2_);fill:none;} - .st5{clip-path:url(#SVGID_2_);fill:#FFFFFF;} -</style> -<path class="st0" d="M111.3,139.8H1.2c-3.7,0-6.8-3-6.8-6.8V22.8c0-3.7,3-6.8,6.8-6.8h110.1c3.7,0,6.8,3,6.8,6.8v110.3 - C118,136.8,115,139.8,111.3,139.8z"/> -<g> - <defs> - <path id="SVGID_1_" d="M107,135.8H-3.3c-3.7,0-6.8-3-6.8-6.8V18.8C-10,15-7,12-3.3,12H107c3.7,0,6.8,3,6.8,6.7V129 - C113.8,132.7,110.7,135.8,107,135.8z"/> - </defs> - <clipPath id="SVGID_2_"> - <use xlink:href="#SVGID_1_" style="overflow:visible;"/> - </clipPath> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="51.8779" y1="135.7558" x2="51.8779" y2="12"> - <stop offset="0" style="stop-color:#007C8F"/> - <stop offset="0.3707" style="stop-color:#007088"/> - <stop offset="1" style="stop-color:#005377"/> - </linearGradient> - <path class="st1" d="M107,135.8H-3.3c-3.7,0-6.8-3-6.8-6.8V18.8C-10,15-7,12-3.3,12H107c3.7,0,6.8,3,6.8,6.7V129 - C113.8,132.7,110.7,135.8,107,135.8z"/> - <path class="st2" d="M81.3,102.6H21.8c-1.7,0-3-1.3-3-3V46.7c0-1.7,1.3-3,3-3h59.5c1.7,0,3,1.3,3,3v52.9 - C84.3,101.3,83,102.6,81.3,102.6z"/> - <path class="st3" d="M81.3,38H21.8c-1.7,0-3-1.3-3-3V-2.4c0-1.7,1.3-3,3-3h59.5c1.7,0,3,1.3,3,3V35C84.3,36.7,83,38,81.3,38z"/> - <path class="st3" d="M81.3,151.8H21.8c-1.7,0-3-1.3-3-3v-37.5c0-1.7,1.3-3,3-3h59.5c1.7,0,3,1.3,3,3v37.5 - C84.3,150.5,83,151.8,81.3,151.8z"/> - <path class="st3" d="M153.1,68.6H93.5c-1.7,0-3-1.3-3-3V-1.2c0-1.7,1.3-3,3-3h59.5c1.7,0,3,1.3,3,3v66.9 - C156.1,67.3,154.7,68.6,153.1,68.6z"/> - <path class="st3" d="M153.1,158.8H93.5c-1.7,0-3-1.3-3-3V77.3c0-1.7,1.3-3,3-3h59.5c1.7,0,3,1.3,3,3v78.5 - C156.1,157.5,154.7,158.8,153.1,158.8z"/> - <path class="st3" d="M9.9,68.6h-59.5c-1.7,0-3-1.3-3-3V-1.2c0-1.7,1.3-3,3-3H9.9c1.7,0,3,1.3,3,3v66.9 - C12.9,67.3,11.6,68.6,9.9,68.6z"/> - <path class="st3" d="M9.9,158.8h-59.5c-1.7,0-3-1.3-3-3V77.3c0-1.7,1.3-3,3-3H9.9c1.7,0,3,1.3,3,3v78.5 - C12.9,157.5,11.6,158.8,9.9,158.8z"/> - <path class="st4" d="M100.4,135.8H3.3c-7.4,0-13.3-6-13.3-13.3V25.3C-10,18-4,12,3.3,12h97.1c7.4,0,13.3,6,13.3,13.3v97.1 - C113.8,129.8,107.8,135.8,100.4,135.8z"/> - <path class="st4" d="M107,135.8H-3.3c-3.7,0-6.8-3-6.8-6.8V18.8C-10,15-7,12-3.3,12H107c3.7,0,6.8,3,6.8,6.7V129 - C113.8,132.7,110.7,135.8,107,135.8z"/> - <path class="st5" d="M74.5,82.3c0.4-0.6,0.7-1.2,1-1.8c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.1,0-0.2c0-0.1-0.7-0.1-0.9,0.1 - c-0.2,0.2-0.9,2.3-3.2,4.3c-1.3,1.2-2.8,1.5-4.1,1.4c-1-0.1-1.7-0.7-2.2-1.8c-0.4-1.1-0.5-2.5-0.1-4.2c0.7-3.1,1.5-4.7,2.5-4.7 - c0.7,0,0.7,1.2,0.1,3.5c-0.5,1.7-1.2,2.8-2.1,3.4c-0.3,0.2-0.4,0.3-0.4,0.4c0,0.1,0.3,0.1,0.7,0c1.5-0.4,3-1,4.2-1.8 - c1.3-0.8,2-1.6,2.3-2.5c0.2-1-0.1-1.8-0.9-2.5c-0.9-0.7-2-1.1-3.3-1.2c-1.3-0.1-2.6,0.2-3.9,0.7c0,0,0.1-0.1,0.1-0.1 - c2.1-3.2,3.5-6.2,4.4-9.1c0.9-2.9,0.6-5-0.7-6.4c-0.5-0.4-1.2-0.7-2.2-1c-1.9-0.5-4-1.1-2.4,1c0.2,0.4,0.4,0.8,0.5,1.2 - c0.3,1.5,0.2,3.4-0.4,5.7c-0.6,2.3-1.4,4.8-2.6,7.3c-1.2,2.5-2.4,4.8-3.8,6.7c-1.4,2-2.7,3.3-4,4.1c0-0.2-0.1-0.4-0.1-0.5 - c0-0.4,0-0.8,0-1.2c0-0.4,0.1-0.7,0.1-1c0.3-2,0.7-4.1,1.1-6.3c0.5-2.2,0.9-4.2,1.4-6c0.3-1.1,0.5-2,0.6-2.5c0.1-0.5,0-1-0.2-1.2 - c-0.2-0.3-0.6-0.6-1.3-0.9c-0.4-0.2-0.9-0.5-1.5-0.8c-1.3-0.7-1.3-0.7-1.7,0.6c-0.3,1.2-1,2.8-1.9,5c-0.9,2.2-1.8,4.5-2.9,6.8 - c-1.1,2.4-2.1,4.3-3,6c-1,1.6-1.8,2.5-2.4,2.5c-0.1,0-0.2-0.1-0.3-0.3c0-0.1-0.1-0.3-0.1-0.6c0-0.4,0-0.8,0.1-1.2 - c0.1-0.4,0.1-0.7,0.2-1c0.3-1.3,0.6-2.9,1.1-4.7c0.5-1.8,0.9-3.6,1.4-5.4c0.5-1.8,0.9-3.2,1.3-4.5c0.5-1.5,0.8-2.6,0.9-3.1 - c0.1-0.5-0.2-1-0.8-1.3c-0.5-0.3-1.3-0.7-2.4-1.4c-0.8-0.5-1.2-0.4-2-0.1c-2,0.7-4.1,1.6-6.1,2.6c-2.4,1.2-4.6,2.4-6.4,3.6 - c-1.8,1.2-3,2.3-3.5,3.3c-0.6,1.2-0.5,2.4,0.2,3.6c0.4,0.6,0.9,1.2,1.5,1.7c2.5,1.7,1.7,0.7,1.9-1.3c0.1-0.7,0.3-1.4,0.7-2 - c0.8-1.4,2.3-3,4.6-4.8c2.3-1.8,4.7-3.2,7.4-4.3c-0.5,1.8-1,3.8-1.6,5.9c-0.6,2.1-1.1,4.2-1.6,6.2c-0.5,2-0.8,3.6-1.1,5 - c-0.1,0.7-0.2,1.3-0.2,1.8c0,0.6,0.2,1.1,0.6,1.7c0.4,0.5,0.9,1,1.5,1.3c0.6,0.4,1.2,0.5,1.8,0.5c1.3-0.1,2.5-0.9,3.7-2.6 - c1.2-1.6,2.3-3.6,3.3-6c1-2.4,1.9-4.7,2.7-6.9c-0.4,1.8-0.7,3.6-1,5.3c-0.3,1.7-0.5,3.3-0.7,4.6c-0.1,0.7-0.1,1.3-0.1,1.8 - c0,0.6,0.3,1.1,0.7,1.7c0.4,0.5,0.9,1,1.5,1.3c0.6,0.3,1.2,0.5,1.9,0.6c1.3,0,3-1.1,5.2-3.4c0.5-0.5,1.1-1.1,1.6-1.7 - c-0.1,1.6,0.4,2.8,1.6,3.8c1.4,1.1,3.1,1.6,5,1.7c2,0.1,3.9-0.5,5.5-1.7C72.8,84.4,73.8,83.4,74.5,82.3z"/> - <path class="st4" d="M107,135.8H-3.3c-3.7,0-6.8-3-6.8-6.8V18.8C-10,15-7,12-3.3,12H107c3.7,0,6.8,3,6.8,6.7V129 - C113.8,132.7,110.7,135.8,107,135.8z"/> - <path class="st4" d="M107,135.8H-3.3c-3.7,0-6.8-3-6.8-6.8V18.8C-10,15-7,12-3.3,12H107c3.7,0,6.8,3,6.8,6.7V129 - C113.8,132.7,110.7,135.8,107,135.8z"/> - <path class="st4" d="M107,135.8H-3.3c-3.7,0-6.8-3-6.8-6.8V18.8C-10,15-7,12-3.3,12H107c3.7,0,6.8,3,6.8,6.7V129 - C113.8,132.7,110.7,135.8,107,135.8z"/> -</g> -</svg> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" x="0" y="0" version="1.1" viewBox="-10 12 128 128"><style>.st4{clip-path:url(#SVGID_2_);fill:none}</style><path d="M111.3 139.8H1.2c-3.7 0-6.8-3-6.8-6.8V22.8c0-3.7 3-6.8 6.8-6.8h110.1c3.7 0 6.8 3 6.8 6.8v110.3c-.1 3.7-3.1 6.7-6.8 6.7" style="opacity:.6;fill:#d1d1d1"/><defs><path id="SVGID_1_" d="M107 135.8H-3.3c-3.7 0-6.8-3-6.8-6.8V18.8C-10 15-7 12-3.3 12H107c3.7 0 6.8 3 6.8 6.7V129c0 3.7-3.1 6.8-6.8 6.8"/></defs><clipPath id="SVGID_2_"><use xlink:href="#SVGID_1_" style="overflow:visible"/></clipPath><linearGradient id="SVGID_3_" x1="51.878" x2="51.878" y1="135.756" y2="12" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#007c8f"/><stop offset=".371" style="stop-color:#007088"/><stop offset="1" style="stop-color:#005377"/></linearGradient><path d="M107 135.8H-3.3c-3.7 0-6.8-3-6.8-6.8V18.8C-10 15-7 12-3.3 12H107c3.7 0 6.8 3 6.8 6.7V129c0 3.7-3.1 6.8-6.8 6.8" style="clip-path:url(#SVGID_2_);fill:url(#SVGID_3_)"/><path d="M81.3 102.6H21.8c-1.7 0-3-1.3-3-3V46.7c0-1.7 1.3-3 3-3h59.5c1.7 0 3 1.3 3 3v52.9c0 1.7-1.3 3-3 3z" style="clip-path:url(#SVGID_2_);fill:none;stroke:#7addfc;stroke-miterlimit:10"/><path d="M81.3 38H21.8c-1.7 0-3-1.3-3-3V-2.4c0-1.7 1.3-3 3-3h59.5c1.7 0 3 1.3 3 3V35c0 1.7-1.3 3-3 3zm0 113.8H21.8c-1.7 0-3-1.3-3-3v-37.5c0-1.7 1.3-3 3-3h59.5c1.7 0 3 1.3 3 3v37.5c0 1.7-1.3 3-3 3zm71.8-83.2H93.5c-1.7 0-3-1.3-3-3V-1.2c0-1.7 1.3-3 3-3H153c1.7 0 3 1.3 3 3v66.9c.1 1.6-1.3 2.9-2.9 2.9zm0 90.2H93.5c-1.7 0-3-1.3-3-3V77.3c0-1.7 1.3-3 3-3H153c1.7 0 3 1.3 3 3v78.5c.1 1.7-1.3 3-2.9 3zM9.9 68.6h-59.5c-1.7 0-3-1.3-3-3V-1.2c0-1.7 1.3-3 3-3H9.9c1.7 0 3 1.3 3 3v66.9c0 1.6-1.3 2.9-3 2.9zm0 90.2h-59.5c-1.7 0-3-1.3-3-3V77.3c0-1.7 1.3-3 3-3H9.9c1.7 0 3 1.3 3 3v78.5c0 1.7-1.3 3-3 3z" style="stroke:#529fdd;stroke-miterlimit:10;clip-path:url(#SVGID_2_);fill:none"/><path d="M100.4 135.8H3.3c-7.4 0-13.3-6-13.3-13.3V25.3C-10 18-4 12 3.3 12h97.1c7.4 0 13.3 6 13.3 13.3v97.1c.1 7.4-5.9 13.4-13.3 13.4" class="st4"/><path d="M107 135.8H-3.3c-3.7 0-6.8-3-6.8-6.8V18.8C-10 15-7 12-3.3 12H107c3.7 0 6.8 3 6.8 6.7V129c0 3.7-3.1 6.8-6.8 6.8" class="st4"/><path d="M74.5 82.3c.4-.6.7-1.2 1-1.8 0-.1.1-.2.1-.3V80c0-.1-.7-.1-.9.1s-.9 2.3-3.2 4.3c-1.3 1.2-2.8 1.5-4.1 1.4-1-.1-1.7-.7-2.2-1.8-.4-1.1-.5-2.5-.1-4.2.7-3.1 1.5-4.7 2.5-4.7.7 0 .7 1.2.1 3.5-.5 1.7-1.2 2.8-2.1 3.4-.3.2-.4.3-.4.4s.3.1.7 0c1.5-.4 3-1 4.2-1.8 1.3-.8 2-1.6 2.3-2.5.2-1-.1-1.8-.9-2.5q-1.35-1.05-3.3-1.2c-1.3-.1-2.6.2-3.9.7l.1-.1c2.1-3.2 3.5-6.2 4.4-9.1s.6-5-.7-6.4c-.5-.4-1.2-.7-2.2-1-1.9-.5-4-1.1-2.4 1 .2.4.4.8.5 1.2.3 1.5.2 3.4-.4 5.7s-1.4 4.8-2.6 7.3-2.4 4.8-3.8 6.7c-1.4 2-2.7 3.3-4 4.1 0-.2-.1-.4-.1-.5v-1.2c0-.4.1-.7.1-1 .3-2 .7-4.1 1.1-6.3.5-2.2.9-4.2 1.4-6 .3-1.1.5-2 .6-2.5s0-1-.2-1.2c-.2-.3-.6-.6-1.3-.9-.4-.2-.9-.5-1.5-.8-1.3-.7-1.3-.7-1.7.6-.3 1.2-1 2.8-1.9 5s-1.8 4.5-2.9 6.8c-1.1 2.4-2.1 4.3-3 6-1 1.6-1.8 2.5-2.4 2.5q-.15 0-.3-.3c0-.1-.1-.3-.1-.6 0-.4 0-.8.1-1.2s.1-.7.2-1c.3-1.3.6-2.9 1.1-4.7s.9-3.6 1.4-5.4.9-3.2 1.3-4.5c.5-1.5.8-2.6.9-3.1s-.2-1-.8-1.3c-.5-.3-1.3-.7-2.4-1.4-.8-.5-1.2-.4-2-.1-2 .7-4.1 1.6-6.1 2.6-2.4 1.2-4.6 2.4-6.4 3.6s-3 2.3-3.5 3.3c-.6 1.2-.5 2.4.2 3.6.4.6.9 1.2 1.5 1.7 2.5 1.7 1.7.7 1.9-1.3.1-.7.3-1.4.7-2 .8-1.4 2.3-3 4.6-4.8s4.7-3.2 7.4-4.3c-.5 1.8-1 3.8-1.6 5.9s-1.1 4.2-1.6 6.2-.8 3.6-1.1 5c-.1.7-.2 1.3-.2 1.8 0 .6.2 1.1.6 1.7.4.5.9 1 1.5 1.3.6.4 1.2.5 1.8.5 1.3-.1 2.5-.9 3.7-2.6q1.8-2.4 3.3-6t2.7-6.9c-.4 1.8-.7 3.6-1 5.3s-.5 3.3-.7 4.6c-.1.7-.1 1.3-.1 1.8 0 .6.3 1.1.7 1.7.4.5.9 1 1.5 1.3s1.2.5 1.9.6c1.3 0 3-1.1 5.2-3.4.5-.5 1.1-1.1 1.6-1.7-.1 1.6.4 2.8 1.6 3.8 1.4 1.1 3.1 1.6 5 1.7 2 .1 3.9-.5 5.5-1.7 1.4-.3 2.4-1.3 3.1-2.4" style="clip-path:url(#SVGID_2_);fill:#fff"/><path d="M107 135.8H-3.3c-3.7 0-6.8-3-6.8-6.8V18.8C-10 15-7 12-3.3 12H107c3.7 0 6.8 3 6.8 6.7V129c0 3.7-3.1 6.8-6.8 6.8" class="st4"/><path d="M107 135.8H-3.3c-3.7 0-6.8-3-6.8-6.8V18.8C-10 15-7 12-3.3 12H107c3.7 0 6.8 3 6.8 6.7V129c0 3.7-3.1 6.8-6.8 6.8" class="st4"/><path d="M107 135.8H-3.3c-3.7 0-6.8-3-6.8-6.8V18.8C-10 15-7 12-3.3 12H107c3.7 0 6.8 3 6.8 6.7V129c0 3.7-3.1 6.8-6.8 6.8" class="st4"/></svg> \ No newline at end of file diff --git a/meta/icons/wekan-150.svg b/meta/icons/wekan-150.svg index 51d4eedec..634d62f36 100644 --- a/meta/icons/wekan-150.svg +++ b/meta/icons/wekan-150.svg @@ -1,68 +1 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - viewBox="-21 1 150 150" style="enable-background:new -21 1 150 150;" xml:space="preserve"> -<style type="text/css"> - .st0{opacity:0.6;clip-path:url(#SVGID_2_);fill:#D1D1D1;} - .st1{clip-path:url(#SVGID_2_);fill:url(#SVGID_3_);} - .st2{clip-path:url(#SVGID_2_);fill:none;stroke:#7ADDFC;stroke-miterlimit:10;} - .st3{clip-path:url(#SVGID_2_);fill:none;stroke:#529FDD;stroke-miterlimit:10;} - .st4{clip-path:url(#SVGID_2_);fill:none;} - .st5{clip-path:url(#SVGID_2_);fill:#FFFFFF;} -</style> -<g> - <defs> - <rect id="SVGID_1_" x="-21" y="1" width="150" height="150"/> - </defs> - <clipPath id="SVGID_2_"> - <use xlink:href="#SVGID_1_" style="overflow:visible;"/> - </clipPath> - <path class="st0" d="M127.8,156H-8.7c-3.7,0-6.8-3-6.8-6.8V12.7c0-3.7,3-6.8,6.8-6.8h136.5c3.7,0,6.7,3,6.7,6.8v136.5 - C134.5,152.9,131.5,156,127.8,156z"/> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="54" y1="151" x2="54" y2="1"> - <stop offset="0" style="stop-color:#007C8F"/> - <stop offset="0.3707" style="stop-color:#007088"/> - <stop offset="1" style="stop-color:#005377"/> - </linearGradient> - <rect x="-21" y="1" class="st1" width="150" height="150"/> - <path class="st2" d="M90.3,110.9H16.9c-1.7,0-3-1.3-3-3V42.4c0-1.7,1.3-3,3-3h73.4c1.7,0,3,1.3,3,3v65.4 - C93.3,109.5,92,110.9,90.3,110.9z"/> - <path class="st3" d="M90.3,32.6H16.9c-1.7,0-3-1.3-3-3v-46.7c0-1.7,1.3-3,3-3h73.4c1.7,0,3,1.3,3,3v46.7 - C93.3,31.2,92,32.6,90.3,32.6z"/> - <path class="st3" d="M90.3,170.5H16.9c-1.7,0-3-1.3-3-3v-46.7c0-1.7,1.3-3,3-3h73.4c1.7,0,3,1.3,3,3v46.7 - C93.3,169.1,92,170.5,90.3,170.5z"/> - <path class="st3" d="M177.3,69.7h-73.4c-1.7,0-3-1.3-3-3v-82.3c0-1.7,1.3-3,3-3h73.4c1.7,0,3,1.3,3,3v82.3 - C180.3,68.3,178.9,69.7,177.3,69.7z"/> - <path class="st3" d="M177.3,179h-73.4c-1.7,0-3-1.3-3-3V79.5c0-1.7,1.3-3,3-3h73.4c1.7,0,3,1.3,3,3V176 - C180.3,177.6,178.9,179,177.3,179z"/> - <path class="st3" d="M3.8,69.7h-73.4c-1.7,0-3-1.3-3-3v-82.3c0-1.7,1.3-3,3-3H3.8c1.7,0,3,1.3,3,3v82.3C6.8,68.3,5.4,69.7,3.8,69.7 - z"/> - <path class="st3" d="M3.8,179h-73.4c-1.7,0-3-1.3-3-3V79.5c0-1.7,1.3-3,3-3H3.8c1.7,0,3,1.3,3,3V176C6.8,177.6,5.4,179,3.8,179z"/> - <path class="st4" d="M115.7,151H-7.7c-7.4,0-13.3-6-13.3-13.3V14.3C-21,7-15,1-7.7,1h123.3C123,1,129,7,129,14.3v123.3 - C129,145,123,151,115.7,151z"/> - <path class="st4" d="M122.3,151H-14.3c-3.7,0-6.8-3-6.8-6.8V7.8C-21,4-18,1-14.3,1h136.5c3.7,0,6.8,3,6.8,6.8v136.5 - C129,148,126,151,122.3,151z"/> - <path class="st5" d="M81.4,86.2c0.5-0.7,0.9-1.5,1.2-2.2c0.1-0.1,0.1-0.2,0.1-0.4c0-0.1,0.1-0.2,0-0.2c0-0.1-0.8-0.1-1.1,0.1 - c-0.2,0.2-1.1,2.7-3.9,5.2c-1.6,1.4-3.3,1.9-4.9,1.7c-1.2-0.1-2.1-0.9-2.6-2.2c-0.5-1.4-0.6-3-0.2-5.1c0.8-3.8,1.8-5.7,3.1-5.7 - c0.8,0,0.9,1.4,0.1,4.3c-0.6,2-1.5,3.4-2.5,4.1c-0.4,0.2-0.5,0.4-0.5,0.5c0,0.2,0.3,0.2,0.8,0c1.9-0.5,3.6-1.2,5.1-2.1 - c1.5-1,2.5-2,2.8-3c0.3-1.2-0.1-2.2-1.1-3c-1-0.8-2.4-1.3-4-1.4c-1.6-0.1-3.2,0.2-4.7,0.9c0-0.1,0.1-0.1,0.1-0.2 - c2.5-3.9,4.3-7.5,5.3-11.1c1.1-3.5,0.8-6.1-0.9-7.7c-0.6-0.5-1.5-0.9-2.7-1.2c-2.3-0.6-4.8-1.4-2.9,1.2c0.3,0.5,0.5,1,0.6,1.5 - c0.4,1.8,0.3,4.1-0.4,6.9c-0.7,2.8-1.8,5.8-3.2,8.8c-1.4,3-2.9,5.8-4.6,8.2c-1.7,2.4-3.3,4.1-4.9,5c-0.1-0.2-0.1-0.4-0.1-0.6 - c0-0.5,0-1,0-1.5c0-0.5,0.1-0.9,0.1-1.2c0.4-2.4,0.8-5,1.4-7.7c0.6-2.7,1.1-5.1,1.6-7.3c0.4-1.4,0.6-2.4,0.7-3.1 - c0.1-0.7,0-1.2-0.2-1.5c-0.2-0.3-0.8-0.7-1.6-1.1c-0.5-0.3-1.1-0.6-1.9-1c-1.5-0.9-1.6-0.9-2.1,0.7c-0.4,1.4-1.2,3.4-2.3,6.1 - c-1,2.7-2.2,5.4-3.5,8.3c-1.3,2.9-2.5,5.3-3.7,7.2c-1.2,2-2.1,3-2.9,3c-0.2,0-0.3-0.1-0.3-0.3c0-0.2-0.1-0.4-0.1-0.7 - c0-0.5,0.1-1,0.1-1.5c0.1-0.5,0.2-0.9,0.2-1.2c0.3-1.6,0.8-3.5,1.3-5.7c0.6-2.2,1.2-4.4,1.7-6.5c0.6-2.1,1.1-3.9,1.5-5.4 - c0.6-1.9,1-3.1,1.1-3.8c0.1-0.6-0.3-1.2-1-1.6c-0.6-0.3-1.6-0.9-2.9-1.7c-1-0.6-1.4-0.5-2.4-0.2c-2.5,0.9-4.9,1.9-7.5,3.1 - c-3,1.4-5.6,2.9-7.8,4.3c-2.2,1.5-3.6,2.8-4.2,4c-0.7,1.5-0.6,3,0.2,4.4c0.5,0.8,1.1,1.5,1.9,2.1c3,2.1,2,0.9,2.3-1.5 - c0.1-0.9,0.4-1.7,0.8-2.4c1-1.7,2.8-3.6,5.6-5.8c2.7-2.1,5.7-3.9,9-5.2c-0.6,2.2-1.2,4.6-1.9,7.2c-0.7,2.6-1.3,5.1-1.9,7.5 - c-0.6,2.4-1,4.4-1.3,6c-0.2,0.8-0.2,1.5-0.2,2.2c0,0.7,0.3,1.4,0.7,2.1c0.5,0.7,1.1,1.2,1.8,1.6c0.7,0.4,1.4,0.6,2.2,0.6 - c1.6-0.1,3.1-1.1,4.5-3.1c1.5-2,2.8-4.4,4-7.2c1.2-2.8,2.3-5.6,3.2-8.4c-0.5,2.2-0.9,4.4-1.2,6.5c-0.4,2.1-0.6,4-0.8,5.6 - c-0.1,0.8-0.1,1.5-0.1,2.2c0.1,0.7,0.4,1.4,0.9,2.1c0.5,0.7,1.1,1.2,1.9,1.6c0.7,0.4,1.5,0.6,2.3,0.7c1.5,0,3.6-1.4,6.3-4.1 - c0.6-0.7,1.3-1.4,1.9-2.1c-0.1,1.9,0.5,3.4,2,4.5c1.7,1.3,3.7,2,6.1,2.1c2.4,0.1,4.7-0.7,6.6-2.1C79.4,88.7,80.5,87.5,81.4,86.2z" - /> - <path class="st4" d="M122.3,151H-14.3c-3.7,0-6.8-3-6.8-6.8V7.8C-21,4-18,1-14.3,1h136.5c3.7,0,6.8,3,6.8,6.8v136.5 - C129,148,126,151,122.3,151z"/> - <path class="st4" d="M122.3,151H-14.3c-3.7,0-6.8-3-6.8-6.8V7.8C-21,4-18,1-14.3,1H129v143.3C129,148,126,151,122.3,151z"/> -</g> -</svg> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" x="0" y="0" version="1.1" viewBox="-21 1 150 150"><style>.st4{clip-path:url(#SVGID_2_);fill:none}</style><defs><path id="SVGID_1_" d="M-21 1h150v150H-21z"/></defs><clipPath id="SVGID_2_"><use xlink:href="#SVGID_1_" style="overflow:visible"/></clipPath><path d="M127.8 156H-8.7c-3.7 0-6.8-3-6.8-6.8V12.7c0-3.7 3-6.8 6.8-6.8h136.5c3.7 0 6.7 3 6.7 6.8v136.5c0 3.7-3 6.8-6.7 6.8" style="opacity:.6;clip-path:url(#SVGID_2_);fill:#d1d1d1"/><linearGradient id="SVGID_3_" x1="54" x2="54" y1="151" y2="1" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#007c8f"/><stop offset=".371" style="stop-color:#007088"/><stop offset="1" style="stop-color:#005377"/></linearGradient><path d="M-21 1h150v150H-21z" style="clip-path:url(#SVGID_2_);fill:url(#SVGID_3_)"/><path d="M90.3 110.9H16.9c-1.7 0-3-1.3-3-3V42.4c0-1.7 1.3-3 3-3h73.4c1.7 0 3 1.3 3 3v65.4c0 1.7-1.3 3.1-3 3.1z" style="clip-path:url(#SVGID_2_);fill:none;stroke:#7addfc;stroke-miterlimit:10"/><path d="M90.3 32.6H16.9c-1.7 0-3-1.3-3-3v-46.7c0-1.7 1.3-3 3-3h73.4c1.7 0 3 1.3 3 3v46.7c0 1.6-1.3 3-3 3zm0 137.9H16.9c-1.7 0-3-1.3-3-3v-46.7c0-1.7 1.3-3 3-3h73.4c1.7 0 3 1.3 3 3v46.7c0 1.6-1.3 3-3 3zm87-100.8h-73.4c-1.7 0-3-1.3-3-3v-82.3c0-1.7 1.3-3 3-3h73.4c1.7 0 3 1.3 3 3v82.3c0 1.6-1.4 3-3 3zm0 109.3h-73.4c-1.7 0-3-1.3-3-3V79.5c0-1.7 1.3-3 3-3h73.4c1.7 0 3 1.3 3 3V176c0 1.6-1.4 3-3 3zM3.8 69.7h-73.4c-1.7 0-3-1.3-3-3v-82.3c0-1.7 1.3-3 3-3H3.8c1.7 0 3 1.3 3 3v82.3c0 1.6-1.4 3-3 3zm0 109.3h-73.4c-1.7 0-3-1.3-3-3V79.5c0-1.7 1.3-3 3-3H3.8c1.7 0 3 1.3 3 3V176c0 1.6-1.4 3-3 3z" style="stroke:#529fdd;stroke-miterlimit:10;clip-path:url(#SVGID_2_);fill:none"/><path d="M115.7 151H-7.7c-7.4 0-13.3-6-13.3-13.3V14.3C-21 7-15 1-7.7 1h123.3C123 1 129 7 129 14.3v123.3c0 7.4-6 13.4-13.3 13.4" class="st4"/><path d="M122.3 151H-14.3c-3.7 0-6.8-3-6.8-6.8V7.8C-21 4-18 1-14.3 1h136.5c3.7 0 6.8 3 6.8 6.8v136.5c0 3.7-3 6.7-6.7 6.7" class="st4"/><path d="M81.4 86.2c.5-.7.9-1.5 1.2-2.2.1-.1.1-.2.1-.4 0-.1.1-.2 0-.2 0-.1-.8-.1-1.1.1-.2.2-1.1 2.7-3.9 5.2-1.6 1.4-3.3 1.9-4.9 1.7-1.2-.1-2.1-.9-2.6-2.2-.5-1.4-.6-3-.2-5.1.8-3.8 1.8-5.7 3.1-5.7.8 0 .9 1.4.1 4.3-.6 2-1.5 3.4-2.5 4.1-.4.2-.5.4-.5.5 0 .2.3.2.8 0q2.85-.75 5.1-2.1c1.5-1 2.5-2 2.8-3 .3-1.2-.1-2.2-1.1-3s-2.4-1.3-4-1.4-3.2.2-4.7.9c0-.1.1-.1.1-.2 2.5-3.9 4.3-7.5 5.3-11.1 1.1-3.5.8-6.1-.9-7.7q-.9-.75-2.7-1.2c-2.3-.6-4.8-1.4-2.9 1.2q.45.75.6 1.5c.4 1.8.3 4.1-.4 6.9s-1.8 5.8-3.2 8.8-2.9 5.8-4.6 8.2-3.3 4.1-4.9 5c-.1-.2-.1-.4-.1-.6V87c0-.5.1-.9.1-1.2.4-2.4.8-5 1.4-7.7s1.1-5.1 1.6-7.3c.4-1.4.6-2.4.7-3.1s0-1.2-.2-1.5-.8-.7-1.6-1.1c-.5-.3-1.1-.6-1.9-1-1.5-.9-1.6-.9-2.1.7-.4 1.4-1.2 3.4-2.3 6.1-1 2.7-2.2 5.4-3.5 8.3s-2.5 5.3-3.7 7.2c-1.2 2-2.1 3-2.9 3q-.3 0-.3-.3c0-.2-.1-.4-.1-.7 0-.5.1-1 .1-1.5.1-.5.2-.9.2-1.2.3-1.6.8-3.5 1.3-5.7.6-2.2 1.2-4.4 1.7-6.5q.9-3.15 1.5-5.4c.6-1.9 1-3.1 1.1-3.8.1-.6-.3-1.2-1-1.6-.6-.3-1.6-.9-2.9-1.7-1-.6-1.4-.5-2.4-.2-2.5.9-4.9 1.9-7.5 3.1-3 1.4-5.6 2.9-7.8 4.3-2.2 1.5-3.6 2.8-4.2 4-.7 1.5-.6 3 .2 4.4.5.8 1.1 1.5 1.9 2.1 3 2.1 2 .9 2.3-1.5.1-.9.4-1.7.8-2.4 1-1.7 2.8-3.6 5.6-5.8 2.7-2.1 5.7-3.9 9-5.2-.6 2.2-1.2 4.6-1.9 7.2s-1.3 5.1-1.9 7.5-1 4.4-1.3 6c-.2.8-.2 1.5-.2 2.2s.3 1.4.7 2.1c.5.7 1.1 1.2 1.8 1.6s1.4.6 2.2.6c1.6-.1 3.1-1.1 4.5-3.1 1.5-2 2.8-4.4 4-7.2s2.3-5.6 3.2-8.4c-.5 2.2-.9 4.4-1.2 6.5-.4 2.1-.6 4-.8 5.6-.1.8-.1 1.5-.1 2.2q.15 1.05.9 2.1c.5.7 1.1 1.2 1.9 1.6.7.4 1.5.6 2.3.7 1.5 0 3.6-1.4 6.3-4.1.6-.7 1.3-1.4 1.9-2.1-.1 1.9.5 3.4 2 4.5 1.7 1.3 3.7 2 6.1 2.1s4.7-.7 6.6-2.1c1.9-.6 3-1.8 3.9-3.1" style="clip-path:url(#SVGID_2_);fill:#fff"/><path d="M122.3 151H-14.3c-3.7 0-6.8-3-6.8-6.8V7.8C-21 4-18 1-14.3 1h136.5c3.7 0 6.8 3 6.8 6.8v136.5c0 3.7-3 6.7-6.7 6.7" class="st4"/><path d="M122.3 151H-14.3c-3.7 0-6.8-3-6.8-6.8V7.8C-21 4-18 1-14.3 1H129v143.3c0 3.7-3 6.7-6.7 6.7" class="st4"/></svg> \ No newline at end of file diff --git a/meta/icons/wekan-24.svg b/meta/icons/wekan-24.svg index d19a65a8e..b1dc1966e 100644 --- a/meta/icons/wekan-24.svg +++ b/meta/icons/wekan-24.svg @@ -1,34 +1 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - viewBox="-62 64 24 24" style="enable-background:new -62 64 24 24;" xml:space="preserve"> -<style type="text/css"> - .st0{fill:url(#SVGID_1_);} - .st1{fill:#FFFFFF;} -</style> -<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-50" y1="88" x2="-50" y2="64"> - <stop offset="0" style="stop-color:#007C8F"/> - <stop offset="0.3707" style="stop-color:#007088"/> - <stop offset="1" style="stop-color:#005377"/> -</linearGradient> -<path class="st0" d="M-39.2,88h-21.7c-0.6,0-1.2-0.5-1.2-1.2V65.2c0-0.6,0.5-1.2,1.2-1.2h21.7c0.6,0,1.2,0.5,1.2,1.2v21.7 - C-38,87.5-38.5,88-39.2,88z"/> -<path class="st1" d="M-40.3,79.8c0.2-0.2,0.3-0.5,0.4-0.8c0,0,0-0.1,0-0.1c0,0,0-0.1,0-0.1c0,0-0.3,0-0.4,0 - c-0.1,0.1-0.4,0.9-1.3,1.8c-0.5,0.5-1.1,0.6-1.7,0.6c-0.4,0-0.7-0.3-0.9-0.8c-0.2-0.5-0.2-1-0.1-1.7c0.3-1.3,0.6-1.9,1.1-1.9 - c0.3,0,0.3,0.5,0,1.5c-0.2,0.7-0.5,1.2-0.9,1.4c-0.1,0.1-0.2,0.1-0.2,0.2c0,0.1,0.1,0.1,0.3,0c0.6-0.2,1.2-0.4,1.8-0.7 - c0.5-0.3,0.8-0.7,0.9-1c0.1-0.4,0-0.7-0.4-1c-0.4-0.3-0.8-0.5-1.4-0.5c-0.6,0-1.1,0.1-1.6,0.3c0,0,0,0,0-0.1 - c0.9-1.3,1.5-2.6,1.8-3.8c0.4-1.2,0.3-2.1-0.3-2.6c-0.2-0.2-0.5-0.3-0.9-0.4c-0.8-0.2-1.6-0.5-1,0.4c0.1,0.2,0.2,0.3,0.2,0.5 - c0.1,0.6,0.1,1.4-0.1,2.4c-0.2,1-0.6,2-1.1,3c-0.5,1-1,2-1.6,2.8c-0.6,0.8-1.1,1.4-1.7,1.7c0-0.1,0-0.1,0-0.2c0-0.2,0-0.3,0-0.5 - c0-0.2,0-0.3,0-0.4c0.1-0.8,0.3-1.7,0.5-2.6c0.2-0.9,0.4-1.8,0.6-2.5c0.1-0.5,0.2-0.8,0.3-1.1c0-0.2,0-0.4-0.1-0.5 - c-0.1-0.1-0.3-0.2-0.5-0.4c-0.2-0.1-0.4-0.2-0.6-0.3c-0.5-0.3-0.6-0.3-0.7,0.2c-0.1,0.5-0.4,1.2-0.8,2.1c-0.4,0.9-0.8,1.9-1.2,2.8 - c-0.4,1-0.9,1.8-1.3,2.5c-0.4,0.7-0.7,1-1,1c-0.1,0-0.1,0-0.1-0.1c0-0.1,0-0.1,0-0.2c0-0.2,0-0.3,0-0.5c0-0.2,0.1-0.3,0.1-0.4 - c0.1-0.5,0.3-1.2,0.5-1.9s0.4-1.5,0.6-2.2c0.2-0.7,0.4-1.3,0.5-1.8c0.2-0.6,0.3-1.1,0.4-1.3c0-0.2-0.1-0.4-0.4-0.5 - c-0.2-0.1-0.5-0.3-1-0.6c-0.3-0.2-0.5-0.2-0.8-0.1c-0.8,0.3-1.7,0.7-2.5,1.1c-1,0.5-1.9,1-2.6,1.5c-0.8,0.5-1.2,1-1.4,1.4 - c-0.2,0.5-0.2,1,0.1,1.5c0.2,0.3,0.4,0.5,0.6,0.7c1,0.7,0.7,0.3,0.8-0.5c0-0.3,0.1-0.6,0.3-0.8c0.3-0.6,1-1.2,1.9-2 - c0.9-0.7,2-1.3,3.1-1.8c-0.2,0.8-0.4,1.6-0.7,2.5c-0.2,0.9-0.5,1.7-0.7,2.6c-0.2,0.8-0.3,1.5-0.4,2.1c-0.1,0.3-0.1,0.5-0.1,0.8 - c0,0.2,0.1,0.5,0.3,0.7c0.2,0.2,0.4,0.4,0.6,0.6c0.2,0.1,0.5,0.2,0.7,0.2c0.5,0,1-0.4,1.5-1.1c0.5-0.7,1-1.5,1.4-2.5 - c0.4-1,0.8-1.9,1.1-2.9c-0.2,0.7-0.3,1.5-0.4,2.2c-0.1,0.7-0.2,1.4-0.3,1.9c0,0.3,0,0.5,0,0.8c0,0.2,0.1,0.5,0.3,0.7 - c0.2,0.2,0.4,0.4,0.6,0.5c0.2,0.1,0.5,0.2,0.8,0.2c0.5,0,1.2-0.5,2.1-1.4c0.2-0.2,0.4-0.5,0.7-0.7c0,0.7,0.2,1.2,0.7,1.6 - c0.6,0.4,1.3,0.7,2.1,0.7c0.8,0,1.6-0.2,2.3-0.7C-41,80.7-40.6,80.3-40.3,79.8z"/> -</svg> +<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="-62 64 24 24"><linearGradient id="a" x1="-50" x2="-50" y1="88" y2="64" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#007c8f"/><stop offset=".371" style="stop-color:#007088"/><stop offset="1" style="stop-color:#005377"/></linearGradient><path d="M-39.2 88h-21.7c-.6 0-1.2-.5-1.2-1.2V65.2c0-.6.5-1.2 1.2-1.2h21.7c.6 0 1.2.5 1.2 1.2v21.7c0 .6-.5 1.1-1.2 1.1" style="fill:url(#a)"/><path d="M-40.3 79.8c.2-.2.3-.5.4-.8v-.2h-.4c-.1.1-.4.9-1.3 1.8-.5.5-1.1.6-1.7.6-.4 0-.7-.3-.9-.8s-.2-1-.1-1.7c.3-1.3.6-1.9 1.1-1.9q.45 0 0 1.5c-.2.7-.5 1.2-.9 1.4-.1.1-.2.1-.2.2q0 .15.3 0c.6-.2 1.2-.4 1.8-.7.5-.3.8-.7.9-1 .1-.4 0-.7-.4-1s-.8-.5-1.4-.5-1.1.1-1.6.3v-.1c.9-1.3 1.5-2.6 1.8-3.8.4-1.2.3-2.1-.3-2.6-.2-.2-.5-.3-.9-.4-.8-.2-1.6-.5-1 .4.1.2.2.3.2.5.1.6.1 1.4-.1 2.4s-.6 2-1.1 3-1 2-1.6 2.8-1.1 1.4-1.7 1.7v-1.1c.1-.8.3-1.7.5-2.6s.4-1.8.6-2.5c.1-.5.2-.8.3-1.1 0-.2 0-.4-.1-.5s-.3-.2-.5-.4l-.6-.3c-.5-.3-.6-.3-.7.2s-.4 1.2-.8 2.1-.8 1.9-1.2 2.8c-.4 1-.9 1.8-1.3 2.5s-.7 1-1 1c-.1 0-.1 0-.1-.1v-.7c0-.2.1-.3.1-.4.1-.5.3-1.2.5-1.9s.4-1.5.6-2.2.4-1.3.5-1.8c.2-.6.3-1.1.4-1.3 0-.2-.1-.4-.4-.5-.2-.1-.5-.3-1-.6-.3-.2-.5-.2-.8-.1-.8.3-1.7.7-2.5 1.1-1 .5-1.9 1-2.6 1.5-.8.5-1.2 1-1.4 1.4-.2.5-.2 1 .1 1.5.2.3.4.5.6.7 1 .7.7.3.8-.5 0-.3.1-.6.3-.8.3-.6 1-1.2 1.9-2 .9-.7 2-1.3 3.1-1.8-.2.8-.4 1.6-.7 2.5-.2.9-.5 1.7-.7 2.6-.2.8-.3 1.5-.4 2.1-.1.3-.1.5-.1.8 0 .2.1.5.3.7l.6.6c.2.1.5.2.7.2.5 0 1-.4 1.5-1.1s1-1.5 1.4-2.5.8-1.9 1.1-2.9c-.2.7-.3 1.5-.4 2.2s-.2 1.4-.3 1.9v.8c0 .2.1.5.3.7s.4.4.6.5.5.2.8.2c.5 0 1.2-.5 2.1-1.4.2-.2.4-.5.7-.7 0 .7.2 1.2.7 1.6.6.4 1.3.7 2.1.7s1.6-.2 2.3-.7c.5-.6.9-1 1.2-1.5" style="fill:#fff"/></svg> \ No newline at end of file diff --git a/meta/screenshots/board_view_01.png b/meta/screenshots/board_view_01.png index 6151a17ba..bd47bb40c 100755 Binary files a/meta/screenshots/board_view_01.png and b/meta/screenshots/board_view_01.png differ diff --git a/meta/screenshots/board_view_02.png b/meta/screenshots/board_view_02.png index 2e745a7ba..ee7d41229 100755 Binary files a/meta/screenshots/board_view_02.png and b/meta/screenshots/board_view_02.png differ diff --git a/models/accessibilitySettings.js b/models/accessibilitySettings.js new file mode 100644 index 000000000..901cca79d --- /dev/null +++ b/models/accessibilitySettings.js @@ -0,0 +1,65 @@ +import { ReactiveCache } from '/imports/reactiveCache'; + +AccessibilitySettings = new Mongo.Collection('accessibilitySettings'); + +AccessibilitySettings.attachSchema( + new SimpleSchema({ + enabled: { + type: Boolean, + defaultValue: false, + }, + title: { + type: String, + optional: true, + }, + body: { + type: String, + optional: true, + }, + createdAt: { + type: Date, + optional: true, + // eslint-disable-next-line consistent-return + autoValue() { + if (this.isInsert) { + return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; + } else { + this.unset(); + } + }, + }, + modifiedAt: { + type: Date, + denyUpdate: false, + // eslint-disable-next-line consistent-return + autoValue() { + if (this.isInsert || this.isUpsert || this.isUpdate) { + return new Date(); + } else { + this.unset(); + } + }, + }, + }), +); + +AccessibilitySettings.allow({ + update(userId) { + const user = ReactiveCache.getUser(userId); + return user && user.isAdmin; + }, +}); + +if (Meteor.isServer) { + Meteor.startup(() => { + AccessibilitySettings._collection.createIndex({ modifiedAt: -1 }); + const accessibilitySetting = AccessibilitySettings.findOne({}); + if (!accessibilitySetting) { + AccessibilitySettings.insert({ enabled: false, sort: 0 }); + } + }); +} + +export default AccessibilitySettings; diff --git a/models/boards.js b/models/boards.js index 9eb1024b0..690063718 100644 --- a/models/boards.js +++ b/models/boards.js @@ -634,17 +634,29 @@ Boards.attachSchema( decimal: true, defaultValue: -1, }, + showActivities: { + type: Boolean, + defaultValue: false, + }, }), ); Boards.helpers({ copy() { const oldId = this._id; + const oldWatchers = this.watchers ? this.watchers.slice() : []; delete this._id; delete this.slug; this.title = this.copyTitle(); const _id = Boards.insert(this); + // Temporary remove watchers to disable notifications + Boards.update(_id, { + $set: { + watchers: [] + }, + }); + // Copy all swimlanes in board ReactiveCache.getSwimlanes({ boardId: oldId, @@ -695,6 +707,12 @@ Boards.helpers({ rule.triggerId = triggersMap[rule.triggerId]; Rules.insert(rule); }); + + // Re-set Watchers to reenable notification + Boards.update(_id, { + $set: { watchers: oldWatchers } + }); + return _id; }, /** @@ -1530,6 +1548,10 @@ Boards.mutations({ move(sortIndex) { return { $set: { sort: sortIndex } }; }, + + toggleShowActivities() { + return { $set: { showActivities: !this.showActivities } }; + }, }); function boardRemover(userId, doc) { @@ -1737,6 +1759,26 @@ if (Meteor.isServer) { }), ).sort(); }, + setAllBoardsHideActivities() { + if (ReactiveCache.getCurrentUser()?.isAdmin) { + Boards.update( + { + showActivities: true + }, + { + $set: { + showActivities: false, + }, + }, + { + multi: true, + }, + ); + return true; + } else { + return false; + } + }, }); Meteor.methods({ diff --git a/models/cards.js b/models/cards.js index cfc41d322..fedef962f 100644 --- a/models/cards.js +++ b/models/cards.js @@ -351,7 +351,7 @@ Cards.attachSchema( }, 'poker.question': { type: Boolean, - defaultValue: false, + optional: true, }, 'poker.one': { /** @@ -359,7 +359,6 @@ Cards.attachSchema( */ type: [String], optional: true, - defaultValue: [], }, 'poker.two': { /** @@ -367,7 +366,6 @@ Cards.attachSchema( */ type: [String], optional: true, - defaultValue: [], }, 'poker.three': { /** @@ -375,7 +373,6 @@ Cards.attachSchema( */ type: [String], optional: true, - defaultValue: [], }, 'poker.five': { /** @@ -383,7 +380,6 @@ Cards.attachSchema( */ type: [String], optional: true, - defaultValue: [], }, 'poker.eight': { /** @@ -391,7 +387,6 @@ Cards.attachSchema( */ type: [String], optional: true, - defaultValue: [], }, 'poker.thirteen': { /** @@ -399,7 +394,6 @@ Cards.attachSchema( */ type: [String], optional: true, - defaultValue: [], }, 'poker.twenty': { /** @@ -407,7 +401,6 @@ Cards.attachSchema( */ type: [String], optional: true, - defaultValue: [], }, 'poker.forty': { /** @@ -415,7 +408,6 @@ Cards.attachSchema( */ type: [String], optional: true, - defaultValue: [], }, 'poker.oneHundred': { /** @@ -423,7 +415,6 @@ Cards.attachSchema( */ type: [String], optional: true, - defaultValue: [], }, 'poker.unsure': { /** @@ -431,16 +422,14 @@ Cards.attachSchema( */ type: [String], optional: true, - defaultValue: [], }, 'poker.end': { type: Date, optional: true, - defaultValue: null, }, 'poker.allowNonBoardMembers': { type: Boolean, - defaultValue: false, + optional: true, }, 'poker.estimation': { /** @@ -484,6 +473,17 @@ Cards.attachSchema( optional: true, defaultValue: 0, }, + showActivities: { + type: Boolean, + defaultValue: false, + }, + hideFinishedChecklistIfItemsAreHidden: { + /** + * hide completed checklist? + */ + type: Boolean, + optional: true, + }, }), ); @@ -531,20 +531,30 @@ Cards.helpers({ mapCustomFieldsToBoard(boardId) { // Map custom fields to new board return this.customFields.map(cf => { - const oldCf = ReactiveCache.getCustomField(cf._id); - const newCf = ReactiveCache.getCustomField({ - boardIds: boardId, - name: oldCf.name, - type: oldCf.type, - }); - if (newCf) { - cf._id = newCf._id; - } else if (!_.contains(oldCf.boardIds, boardId)) { - oldCf.addBoard(boardId); - } - return cf; + const oldCf = ReactiveCache.getCustomField(cf._id); + + // Check if oldCf is undefined or null + if (!oldCf) { + //console.error(`Custom field with ID ${cf._id} not found.`); + return cf; // Skip this field if oldCf is not found + } + + const newCf = ReactiveCache.getCustomField({ + boardIds: boardId, + name: oldCf.name, + type: oldCf.type, + }); + + if (newCf) { + cf._id = newCf._id; + } else if (!_.contains(oldCf.boardIds, boardId)) { + oldCf.addBoard(boardId); + } + + return cf; }); - }, +}, + copy(boardId, swimlaneId, listId) { const oldId = this._id; @@ -993,15 +1003,16 @@ Cards.helpers({ }, parentCard() { - if (this.parentId === '') { - return null; + let ret = null; + if (this.parentId) { + ret = ReactiveCache.getCard(this.parentId); } - return ReactiveCache.getCard(this.parentId); + return ret; }, parentCardName() { let result = ''; - if (this.parentId !== '') { + if (this.parentId) { const card = ReactiveCache.getCard(this.parentId); if (card) { result = card.title; @@ -1013,7 +1024,7 @@ Cards.helpers({ parentListId() { const result = []; let crtParentId = this.parentId; - while (crtParentId !== '') { + while (crtParentId) { const crt = ReactiveCache.getCard(crtParentId); if (crt === null || crt === undefined) { // maybe it has been deleted @@ -1033,7 +1044,7 @@ Cards.helpers({ const resultId = []; const result = []; let crtParentId = this.parentId; - while (crtParentId !== '') { + while (crtParentId) { const crt = ReactiveCache.getCard(crtParentId); if (crt === null || crt === undefined) { // maybe it has been deleted @@ -1059,7 +1070,11 @@ Cards.helpers({ }, isTopLevel() { - return this.parentId === ''; + let ret = false; + if (this.parentId) { + ret = true; + } + return ret; }, isLinkedCard() { @@ -2173,6 +2188,22 @@ Cards.mutations({ } }, + toggleShowActivities() { + return { + $set: { + showActivities: !this.showActivities, + } + }; + }, + + toggleHideFinishedChecklist() { + return { + $set: { + hideFinishedChecklistIfItemsAreHidden: !this.hideFinishedChecklistIfItemsAreHidden, + } + }; + }, + setCustomField(customFieldId, value) { // todo const index = this.customFieldIndex(customFieldId); diff --git a/models/checklists.js b/models/checklists.js index 7655b5f59..d30dcc1be 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -27,14 +27,6 @@ Checklists.attachSchema( type: Date, optional: true, }, - showAtMinicard: { - /** - * Show at minicard. Default: false. - */ - type: Boolean, - optional: true, - defaultValue: false, - }, createdAt: { /** * Creation date of the checklist @@ -71,6 +63,20 @@ Checklists.attachSchema( type: Number, decimal: true, }, + hideCheckedChecklistItems: { + /** + * hide the checked checklist-items? + */ + type: Boolean, + optional: true, + }, + hideAllChecklistItems: { + /** + * hide all checklist items ? + */ + type: Boolean, + optional: true, + }, }), ); @@ -124,7 +130,18 @@ Checklists.helpers({ return ret; }, isFinished() { - return 0 !== this.itemCount() && this.itemCount() === this.finishedCount(); + let ret = this.hideAllChecklistItems; + if (!ret) { + ret = 0 !== this.itemCount() && this.itemCount() === this.finishedCount(); + } + return ret; + }, + showChecklist(hideFinishedChecklistIfItemsAreHidden) { + let ret = true; + if (this.isFinished() && hideFinishedChecklistIfItemsAreHidden === true && (this.hideCheckedChecklistItems === true || this.hideAllChecklistItems)) { + ret = false; + } + return ret; }, checkAllItems() { const checkItems = ReactiveCache.getChecklistItems({ checklistId: this._id }); @@ -142,9 +159,6 @@ Checklists.helpers({ const items = ReactiveCache.getChecklist({ _id: this._id }).items; return _.pluck(items, '_id').indexOf(itemId); }, - hasShowChecklistAtMinicard() { - return showAtMinicard || false; - }, }); Checklists.allow({ @@ -202,13 +216,18 @@ Checklists.mutations({ }, }; }, - - toggleShowChecklistAtMinicard(checklistId) { - const value = this.hasShowChecklistAtMinicard(); + toggleHideCheckedChecklistItems() { return { $set: { - 'showAtMinicard': !value, - }, + hideCheckedChecklistItems: !this.hideCheckedChecklistItems, + } + }; + }, + toggleHideAllChecklistItems() { + return { + $set: { + hideAllChecklistItems: !this.hideAllChecklistItems, + } }; }, }); diff --git a/models/exporter.js b/models/exporter.js index d434890ce..b8fe68ba4 100644 --- a/models/exporter.js +++ b/models/exporter.js @@ -348,9 +348,10 @@ export class Exporter { const dropdownOptions = result.customFields.find( ({ _id }) => _id === field._id, ).settings.dropdownItems; - const fieldValue = dropdownOptions.find( + const fieldObj = dropdownOptions.find( ({ _id }) => _id === field.value, - ).name; + ); + const fieldValue = (fieldObj && fieldObj.name) || null; customFieldValuesToPush[customFieldMap[field._id].position] = fieldValue; } else { diff --git a/models/lists.js b/models/lists.js index 49b456f2a..c99edf8e7 100644 --- a/models/lists.js +++ b/models/lists.js @@ -146,7 +146,7 @@ Lists.attachSchema( */ type: String, optional: true, - // silver is the default, so it is left out + // silver is the default allowedValues: ALLOWED_COLORS, }, type: { @@ -156,6 +156,13 @@ Lists.attachSchema( type: String, defaultValue: 'list', }, + collapsed: { + /** + * is the list collapsed + */ + type: Boolean, + defaultValue: false, + }, }), ); @@ -286,6 +293,10 @@ Lists.helpers({ return this.starred === true; }, + isCollapsed() { + return this.collapsed === true; + }, + absoluteUrl() { const card = ReactiveCache.getCard({ listId: this._id }); return card && card.absoluteUrl(); @@ -306,6 +317,9 @@ Lists.mutations({ star(enable = true) { return { $set: { starred: !!enable } }; }, + collapse(enable = true) { + return { $set: { collapsed: !!enable } }; + }, archive() { if (this.isTemplateList()) { @@ -338,9 +352,6 @@ Lists.mutations({ }, setColor(newColor) { - if (newColor === 'silver') { - newColor = null; - } return { $set: { color: newColor, diff --git a/models/server/createWorkbook.js b/models/server/createWorkbook.js index 493f678cd..28b1c45f8 100644 --- a/models/server/createWorkbook.js +++ b/models/server/createWorkbook.js @@ -1,4 +1,4 @@ -import Excel from 'exceljs'; +import Excel from '@wekanteam/exceljs'; export const createWorkbook = function() { return new Excel.Workbook(); diff --git a/models/server/metrics.js b/models/server/metrics.js index f60e678d0..669bbbf92 100644 --- a/models/server/metrics.js +++ b/models/server/metrics.js @@ -2,13 +2,38 @@ import { Meteor } from 'meteor/meteor'; import Users from '../users'; function acceptedIpAddress(ipAddress) { - const trustedIpAddress = process.env.WEKAN_METRICS_ACCEPTED_IP_ADDRESS; + const trustedIpAddress = process.env.METRICS_ACCEPTED_IP_ADDRESS; return ( trustedIpAddress !== undefined && trustedIpAddress.split(',').includes(ipAddress) ); } +function accessToken(req) { + const valid_token = process.env.METRICS_ACCESS_TOKEN; + let token; + if (req.headers && req.headers.authorization) { + var parts = req.headers.authorization.split(" "); + + if (parts.length === 2) { + var scheme = parts[0]; + var credentials = parts[1]; + + if (/^Bearer$/i.test(scheme)) { + token = credentials; + } + } + } + if (!token && req.query && req.query.access_token) { + token = req.query.access_token; + } + return ( + token !== undefined && + valid_token !== undefined && + token == valid_token + ); +} + const getBoardTitleWithMostActivities = (dateWithXdaysAgo, nbLimit) => { return Promise.await( Activities.rawCollection() @@ -48,8 +73,8 @@ Meteor.startup(() => { // const ipAddress = req.socket.remoteAddress // } - // List of trusted ip adress will be found in environment variable "WEKAN_METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas) - if (acceptedIpAddress(ipAddress)) { + // List of trusted ip adress will be found in environment variable "METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas) + if (acceptedIpAddress(ipAddress) || (accessToken(req))) { let metricsRes = ''; let resCount = 0; //connected users @@ -170,12 +195,12 @@ Meteor.startup(() => { metricsRes += '# Top 10 boards with most activities dated 30 days ago\n'; - //Get top 10 table with most activities in current month + //Get top 10 table with most activities in current month const boardTitleWithMostActivities = getBoardTitleWithMostActivities( dateWithXdaysAgo, xdays, ); - + const boardWithMostActivities = boardTitleWithMostActivities.map( (board) => board.lookup[0].title, ); @@ -185,7 +210,7 @@ Meteor.startup(() => { `wekan_top10BoardsWithMostActivities{n="${title}"} ${ index + 1 }` + '\n'; - }); + }); res.writeHead(200); // HTTP status res.end(metricsRes); diff --git a/models/settings.js b/models/settings.js index c3f6b00d6..ca1184de7 100644 --- a/models/settings.js +++ b/models/settings.js @@ -117,6 +117,19 @@ Settings.attachSchema( type: String, optional: true, }, + accessibilityPageEnabled: { + type: Boolean, + optional: true, + defaultValue: false, + }, + accessibilityTitle: { + type: String, + optional: true, + }, + accessibilityContent: { + type: String, + optional: true, + }, createdAt: { type: Date, denyUpdate: true, diff --git a/models/swimlanes.js b/models/swimlanes.js index 7c8cac595..6a834370d 100644 --- a/models/swimlanes.js +++ b/models/swimlanes.js @@ -70,7 +70,7 @@ Swimlanes.attachSchema( */ type: String, optional: true, - // silver is the default, so it is left out + // silver is the default allowedValues: ALLOWED_COLORS, }, updatedAt: { @@ -107,6 +107,13 @@ Swimlanes.attachSchema( type: String, defaultValue: 'swimlane', }, + collapsed: { + /** + * is the swimlane collapsed + */ + type: Boolean, + defaultValue: false, + }, }), ); @@ -232,6 +239,10 @@ Swimlanes.helpers({ return ret; }, + isCollapsed() { + return this.collapsed === true; + }, + board() { return ReactiveCache.getBoard(this.boardId); }, @@ -274,6 +285,10 @@ Swimlanes.mutations({ return { $set: { title } }; }, + collapse(enable = true) { + return { $set: { collapsed: !!enable } }; + }, + archive() { if (this.isTemplateSwimlane()) { this.myLists().forEach(list => { @@ -293,9 +308,6 @@ Swimlanes.mutations({ }, setColor(newColor) { - if (newColor === 'silver') { - newColor = null; - } return { $set: { color: newColor, diff --git a/models/trelloCreator.js b/models/trelloCreator.js index e0efa3aac..2d445bc46 100644 --- a/models/trelloCreator.js +++ b/models/trelloCreator.js @@ -450,9 +450,9 @@ export class TrelloCreator { } }; if (att.url) { - Attachment.load(att.url, opts, cb, true); + Attachments.load(att.url, opts, cb, true); } else if (att.file) { - Attachment.write(att.file, opts, cb, true); + Attachments.insert(att.file, opts, cb, true); } }); diff --git a/models/users.js b/models/users.js index b6bf53793..8643fca2b 100644 --- a/models/users.js +++ b/models/users.js @@ -172,13 +172,6 @@ Users.attachSchema( type: Boolean, optional: true, }, - 'profile.hideCheckedItems': { - /** - * does the user want to hide checked checklist items? - */ - type: Boolean, - optional: true, - }, 'profile.cardMaximized': { /** * has user clicked maximize card? @@ -193,13 +186,6 @@ Users.attachSchema( type: Boolean, optional: true, }, - 'profile.hiddenSystemMessages': { - /** - * does the user want to hide system messages? - */ - type: Boolean, - optional: true, - }, 'profile.hiddenMinicardLabelText': { /** * does the user want to hide minicard label texts? @@ -431,6 +417,24 @@ Users.attachSchema( defaultValue: {}, blackbox: true, }, + 'profile.listConstraints': { + /** + * User-specified constraint of each list (or nothing if default). + * profile[boardId][listId] = constraint; + */ + type: Object, + defaultValue: {}, + blackbox: true, + }, + 'profile.autoWidthBoards': { + /** + * User-specified flag for enabling auto-width for boards (false is the default). + * profile[boardId][listId] = constraint; + */ + type: Object, + defaultValue: {}, + blackbox: true, + }, 'profile.swimlaneHeights': { /** * User-specified heights of each swimlane (or nothing if default). @@ -440,6 +444,27 @@ Users.attachSchema( defaultValue: {}, blackbox: true, }, + 'profile.keyboardShortcuts': { + /** + * User-specified state of keyboard shortcut activation. + */ + type: Boolean, + defaultValue: false, + }, + 'profile.verticalScrollbars': { + /** + * User-specified state of vertical scrollbars visibility. + */ + type: Boolean, + defaultValue: true, + }, + 'profile.showWeekOfYear': { + /** + * User-specified state of week-of-year in date displays. + */ + type: Boolean, + defaultValue: true, + }, services: { /** * services field of the user @@ -687,14 +712,11 @@ Users.helpers({ return ''; }, orgIdsUserBelongs() { + let ret = ''; if (this.orgs) { - return this.orgs - .map(function (org) { - return org.orgId; - }) - .join(','); + ret = this.orgs.map(org => org.orgId).join(','); } - return ''; + return ret; }, teamsUserBelongs() { if (this.teams) { @@ -708,14 +730,11 @@ Users.helpers({ return ''; }, teamIdsUserBelongs() { + let ret = ''; if (this.teams) { - return this.teams - .map(function (team) { - return team.teamId; - }) - .join(','); + ret = this.teams.map(team => team.teamId).join(','); } - return ''; + return ret; }, boards() { return Boards.userBoards(this._id, null, {}, { sort: { sort: 1 } }); @@ -736,6 +755,11 @@ Users.helpers({ return _.contains(starredBoards, boardId); }, + isAutoWidth(boardId) { + const { autoWidthBoards = {} } = this.profile || {}; + return autoWidthBoards[boardId] === true; + }, + invitedBoards() { const { invitedBoards = [] } = this.profile || {}; return Boards.userBoards( @@ -777,7 +801,7 @@ Users.helpers({ }, getListWidths() { - const { listWidths = {} } = this.profile || {}; + const { listWidths = {}, } = this.profile || {}; return listWidths; }, getListWidth(boardId, listId) { @@ -788,6 +812,18 @@ Users.helpers({ return 270; //TODO(mark-i-m): default? } }, + getListConstraints() { + const { listConstraints = {} } = this.profile || {}; + return listConstraints; + }, + getListConstraint(boardId, listId) { + const listConstraints = this.getListConstraints(); + if (listConstraints[boardId] && listConstraints[boardId][listId]) { + return listConstraints[boardId][listId]; + } else { + return 550; + } + }, getSwimlaneHeights() { const { swimlaneHeights = {} } = this.profile || {}; @@ -866,16 +902,6 @@ Users.helpers({ return profile.showDesktopDragHandles || false; }, - hasHideCheckedItems() { - const profile = this.profile || {}; - return profile.hideCheckedItems || false; - }, - - hasHiddenSystemMessages() { - const profile = this.profile || {}; - return profile.hiddenSystemMessages || false; - }, - hasCustomFieldsGrid() { const profile = this.profile || {}; return profile.customFieldsGrid || false; @@ -949,6 +975,21 @@ Users.helpers({ return 'templates'; }, + isKeyboardShortcuts() { + const { keyboardShortcuts = true } = this.profile || {}; + return keyboardShortcuts; + }, + + isVerticalScrollbars() { + const { verticalScrollbars = true } = this.profile || {}; + return verticalScrollbars; + }, + + isShowWeekOfYear() { + const { showWeekOfYear = true } = this.profile || {}; + return showWeekOfYear; + }, + remove() { User.remove({ _id: this._id, @@ -1004,6 +1045,39 @@ Users.mutations({ }, }; }, + toggleAutoWidth(boardId) { + const { autoWidthBoards = {} } = this.profile || {}; + autoWidthBoards[boardId] = !autoWidthBoards[boardId]; + return { + $set: { + 'profile.autoWidthBoards': autoWidthBoards, + }, + }; + }, + toggleKeyboardShortcuts() { + const { keyboardShortcuts = true } = this.profile || {}; + return { + $set: { + 'profile.keyboardShortcuts': !keyboardShortcuts, + }, + }; + }, + toggleVerticalScrollbars() { + const { verticalScrollbars = true } = this.profile || {}; + return { + $set: { + 'profile.verticalScrollbars': !verticalScrollbars, + }, + }; + }, + toggleShowWeekOfYear() { + const { showWeekOfYear = true } = this.profile || {}; + return { + $set: { + 'profile.showWeekOfYear': !showWeekOfYear, + }, + }; + }, addInvite(boardId) { return { @@ -1066,23 +1140,6 @@ Users.mutations({ }; }, - toggleHideCheckedItems() { - const value = this.hasHideCheckedItems(); - return { - $set: { - 'profile.hideCheckedItems': !value, - }, - }; - }, - - toggleSystem(value = false) { - return { - $set: { - 'profile.hiddenSystemMessages': !value, - }, - }; - }, - toggleFieldsGrid(value = false) { return { $set: { @@ -1195,6 +1252,19 @@ Users.mutations({ }; }, + setListConstraint(boardId, listId, constraint) { + let currentConstraints = this.getListConstraints(); + if (!currentConstraints[boardId]) { + currentConstraints[boardId] = {}; + } + currentConstraints[boardId][listId] = constraint; + return { + $set: { + 'profile.listConstraints': currentConstraints, + }, + }; + }, + setSwimlaneHeight(boardId, swimlaneId, height) { let currentHeights = this.getSwimlaneHeights(); if (!currentHeights[boardId]) { @@ -1222,10 +1292,6 @@ Meteor.methods({ const user = ReactiveCache.getCurrentUser(); user.toggleHideCheckedItems(); }, - toggleSystemMessages() { - const user = ReactiveCache.getCurrentUser(); - user.toggleSystem(user.hasHiddenSystemMessages()); - }, toggleCustomFieldsGrid() { const user = ReactiveCache.getCurrentUser(); user.toggleFieldsGrid(user.hasCustomFieldsGrid()); @@ -1250,61 +1316,26 @@ Meteor.methods({ check(startDay, Number); ReactiveCache.getCurrentUser().setStartDayOfWeek(startDay); }, - applyListWidth(boardId, listId, width) { + applyListWidth(boardId, listId, width, constraint) { check(boardId, String); check(listId, String); check(width, Number); - const user = Meteor.user(); + check(constraint, Number); + const user = ReactiveCache.getCurrentUser(); user.setListWidth(boardId, listId, width); + user.setListConstraint(boardId, listId, constraint); }, applySwimlaneHeight(boardId, swimlaneId, height) { check(boardId, String); check(swimlaneId, String); check(height, Number); - const user = Meteor.user(); + const user = ReactiveCache.getCurrentUser(); user.setSwimlaneHeight(boardId, swimlaneId, height); }, }); if (Meteor.isServer) { Meteor.methods({ - setAllUsersHideSystemMessages() { - if (ReactiveCache.getCurrentUser()?.isAdmin) { - // If setting is missing, add it - Users.update( - { - 'profile.hiddenSystemMessages': { - $exists: false, - }, - }, - { - $set: { - 'profile.hiddenSystemMessages': true, - }, - }, - { - multi: true, - }, - ); - // If setting is false, set it to true - Users.update( - { - 'profile.hiddenSystemMessages': false, - }, - { - $set: { - 'profile.hiddenSystemMessages': true, - }, - }, - { - multi: true, - }, - ); - return true; - } else { - return false; - } - }, setCreateUser( fullname, username, diff --git a/models/wekanCreator.js b/models/wekanCreator.js index a2fc789bd..b429a9427 100644 --- a/models/wekanCreator.js +++ b/models/wekanCreator.js @@ -471,9 +471,9 @@ export class WekanCreator { } }; if (att.url) { - Attachment.load(att.url, opts, cb, true); + Attachments.load(att.url, opts, cb, true); } else if (att.file) { - Attachment.write(att.file, opts, cb, true); + Attachments.insert(att.file, opts, cb, true); } }); } diff --git a/openapi/generate_openapi.py b/openapi/generate_openapi.py index 2398f1d57..83966f5bf 100644 --- a/openapi/generate_openapi.py +++ b/openapi/generate_openapi.py @@ -65,6 +65,8 @@ def get_req_body_elems(obj, elems): elif obj.type in ('LogicalExpression', 'BinaryExpression', 'AssignmentExpression'): get_req_body_elems(obj.left, elems) get_req_body_elems(obj.right, elems) + elif obj.type == 'ChainExpression': + get_req_body_elems(obj.expression, elems) elif obj.type in ('ReturnStatement', 'UnaryExpression'): if obj.argument is not None: get_req_body_elems(obj.argument, elems) diff --git a/package-lock.json b/package-lock.json index 9d7d61610..ef43cf5d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,13 @@ { "name": "wekan", - "version": "v7.43.0", + "version": "v7.84.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/runtime": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", "requires": { "regenerator-runtime": "^0.14.0" } @@ -108,6 +108,31 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" }, + "@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "optional": true + }, + "@wekanteam/dragscroll": { + "version": "git+https://github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2", + "from": "git+https://github.com/wekan/dragscroll.git" + }, + "@wekanteam/exceljs": { + "version": "git+https://github.com/wekan/exceljs.git#e0229907e7a81bc3fe6daf4e42b1fdfbecdcb7cb", + "from": "git+https://github.com/wekan/exceljs.git", + "requires": { + "archiver": "^5.0.0", + "dayjs": "^1.8.34", + "fast-csv": "^4.3.1", + "jszip": "^3.10.1", + "readable-stream": "^3.6.0", + "saxes": "^5.0.1", + "tmp": "^0.2.0", + "unzipper": "^0.10.11", + "uuid": "^8.3.0" + } + }, "@wekanteam/html-to-markdown": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@wekanteam/html-to-markdown/-/html-to-markdown-1.0.2.tgz", @@ -514,9 +539,9 @@ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" }, "dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" }, "debug": { "version": "4.3.4", @@ -581,9 +606,12 @@ } }, "dompurify": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.0.tgz", - "integrity": "sha512-5RXhAXSCrKTqt9pSbobT9PVRX+oPpENplTZqCiK1l0ya+ZOzwo9kqsGLbYRsAhzIiLCwKEy99XKSSrqnRTLVcw==" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", + "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "requires": { + "@types/trusted-types": "^2.0.7" + } }, "domutils": { "version": "2.8.0", @@ -697,21 +725,6 @@ "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" }, - "exceljs": { - "version": "git+https://github.com/exceljs/exceljs.git#5bed18b45e824f409b08456b59b87430ded023ab", - "from": "git+https://github.com/exceljs/exceljs.git", - "requires": { - "archiver": "^5.0.0", - "dayjs": "^1.8.34", - "fast-csv": "^4.3.1", - "jszip": "^3.10.1", - "readable-stream": "^3.6.0", - "saxes": "^5.0.1", - "tmp": "^0.2.0", - "unzipper": "^0.10.11", - "uuid": "^8.3.0" - } - }, "extsprintf": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", @@ -737,9 +750,9 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-xml-parser": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz", - "integrity": "sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "requires": { "strnum": "^1.0.5" } @@ -1061,9 +1074,9 @@ "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, "jquery-ui": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.13.2.tgz", - "integrity": "sha512-wBZPnqWs5GaYJmo1Jj0k/mrSkzdQzKDwhXNtHKcBdAcKVxMM3KNYFq+iJ2i1rwiG53Z8M4mTn3Qxrm17uH1D4Q==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.13.3.tgz", + "integrity": "sha512-D2YJfswSJRh/B8M/zCowDpNFfwsDmtfnMPwjJTyvl+CBqzpYwQ+gFYIbUUlzijy/Qvoy30H1YhoSui4MNYpRwA==", "requires": { "jquery": ">=1.8.0 <4.0.0" } @@ -1369,18 +1382,17 @@ "integrity": "sha512-SBbbYWvFYvsxHVL+q6ZB8lT3rp2LSvfALD2V52H+MGH2IgJsevy0VtXRkRG0EsUewwOaDTIKBn9DlD8HQ3GSwg==" }, "meteor-node-stubs": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.9.tgz", - "integrity": "sha512-EKRezc1/PblYtYiK4BOT3h5geWDo9AFBBSYNamPNh8AC5msUbVCcg8kekzAa7r7JPzBX8nZWaXEQVar4t8q/Hg==", + "version": "git+https://github.com/wekan/meteor-node-stubs.git#4f2609bc4d9d700ff79424ad4ed8dbf1f06666cb", + "from": "git+https://github.com/wekan/meteor-node-stubs.git", "requires": { - "@meteorjs/crypto-browserify": "^3.12.1", "assert": "^2.1.0", "browserify-zlib": "^0.2.0", "buffer": "^5.7.1", "console-browserify": "^1.2.0", "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.12.0", "domain-browser": "^4.23.0", - "elliptic": "^6.5.4", + "elliptic": "^6.6.0", "events": "^3.3.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", @@ -1399,41 +1411,14 @@ "vm-browserify": "^1.1.2" }, "dependencies": { - "@meteorjs/crypto-browserify": { - "version": "3.12.1", - "bundled": true, - "requires": { - "browserify-cipher": "^1.0.1", - "browserify-sign": "^4.2.3", - "create-ecdh": "^4.0.4", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "diffie-hellman": "^5.0.3", - "hash-base": "~3.0.4", - "inherits": "^2.0.4", - "pbkdf2": "^3.1.2", - "public-encrypt": "^4.0.3", - "randombytes": "^2.1.0", - "randomfill": "^1.0.4" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - } - } - }, "asn1.js": { - "version": "4.10.1", + "version": "5.4.1", "bundled": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" }, "dependencies": { "bn.js": { @@ -1509,64 +1494,23 @@ } }, "browserify-sign": { - "version": "4.2.3", + "version": "4.2.2", "bundled": true, "requires": { "bn.js": "^5.2.1", "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.5", - "hash-base": "~3.0", + "elliptic": "^6.5.4", "inherits": "^2.0.4", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", "safe-buffer": "^5.2.1" }, "dependencies": { "bn.js": { "version": "5.2.1", "bundled": true - }, - "hash-base": { - "version": "3.0.4", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "readable-stream": { - "version": "2.3.8", - "bundled": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "bundled": true - } - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "bundled": true - } - } } } }, @@ -1618,10 +1562,6 @@ "version": "1.0.0", "bundled": true }, - "core-util-is": { - "version": "1.0.3", - "bundled": true - }, "create-ecdh": { "version": "4.0.4", "bundled": true, @@ -1659,6 +1599,23 @@ "sha.js": "^2.4.8" } }, + "crypto-browserify": { + "version": "3.12.0", + "bundled": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, "define-data-property": { "version": "1.1.1", "bundled": true, @@ -1705,7 +1662,7 @@ "bundled": true }, "elliptic": { - "version": "6.5.5", + "version": "6.6.1", "bundled": true, "requires": { "bn.js": "^4.11.9", @@ -1718,7 +1675,7 @@ }, "dependencies": { "bn.js": { - "version": "4.12.0", + "version": "4.12.1", "bundled": true } } @@ -1864,10 +1821,6 @@ "which-typed-array": "^1.1.11" } }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, "md5.js": { "version": "1.3.5", "bundled": true, @@ -1934,25 +1887,14 @@ "bundled": true }, "parse-asn1": { - "version": "5.1.7", + "version": "5.1.6", "bundled": true, "requires": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "hash-base": "~3.0", - "pbkdf2": "^3.1.2", - "safe-buffer": "^5.2.1" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - } + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "path-browserify": { @@ -1974,10 +1916,6 @@ "version": "0.11.10", "bundled": true }, - "process-nextick-args": { - "version": "2.0.1", - "bundled": true - }, "public-encrypt": { "version": "4.0.3", "bundled": true, @@ -2047,6 +1985,10 @@ "version": "5.2.1", "bundled": true }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true + }, "set-function-length": { "version": "1.1.1", "bundled": true, @@ -2313,9 +2255,9 @@ "dev": true }, "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", "dev": true, "requires": { "isarray": "0.0.1" @@ -2369,9 +2311,9 @@ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" }, "once": { "version": "1.4.0", @@ -2386,14 +2328,6 @@ "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" }, - "page": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/page/-/page-1.11.6.tgz", - "integrity": "sha512-P6e2JfzkBrPeFCIPplLP7vDDiU84RUUZMrWdsH4ZBGJ8OosnwFkcUkBHp1DTIjuipLliw9yQn/ZJsXZvarsO+g==", - "requires": { - "path-to-regexp": "~1.2.1" - } - }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -2427,21 +2361,6 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, - "path-to-regexp": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.2.1.tgz", - "integrity": "sha512-DBw9IhWfevR2zCVwEZURTuQNseCvu/Q9f5ZgqMCK0Rh61bDa4uyjPAOy9b55yKiPT59zZn+7uYKxmWwsguInwg==", - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - } - } - }, "peek-readable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", @@ -2471,9 +2390,9 @@ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" }, "qs": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", - "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "requires": { "side-channel": "^1.0.6" } diff --git a/package.json b/package.json index 1b4276418..7b8196d20 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.43.0", + "version": "v7.84.0", "description": "Open-Source kanban", "private": true, "repository": { @@ -17,40 +17,40 @@ "sinon": "^13.0.2" }, "dependencies": { - "@babel/runtime": "^7.24.4", + "@babel/runtime": "^7.26.10", "@mapbox/node-pre-gyp": "^1.0.10", "@rwap/jquery-ui-touch-punch": "^1.0.11", + "@wekanteam/dragscroll": "https://github.com/wekan/dragscroll.git", + "@wekanteam/exceljs": "https://github.com/wekan/exceljs.git", "@wekanteam/html-to-markdown": "^1.0.2", "@wekanteam/meteor-globals": "^1.1.4", "@wekanteam/meteor-reactive-cache": "^1.0.6", "ajv": "^6.12.6", "bcryptjs": "^2.4.3", "bson": "^4.5.2", - "dompurify": "^2.5.0", + "dompurify": "^3.2.4", "es6-promise": "^4.2.4", "escape-string-regexp": "^5.0.0", - "exceljs": "git+https://github.com/exceljs/exceljs.git", "fibers": "^5.0.3", "file-type": "^16.5.4", "filesize": "^8.0.7", "i18next": "^21.6.16", "i18next-sprintf-postprocessor": "^0.2.2", "jquery": "^3.7.1", - "jquery-ui": "^1.13.0", + "jquery-ui": "^1.13.3", "jszip": "^3.7.1", "ldapjs": "^2.3.3", "markdown-it": "^12.3.2", "markdown-it-emoji": "^2.0.0", "markdown-it-mathjax3": "^4.3.2", "meteor-accounts-t9n": "^2.6.0", - "meteor-node-stubs": "^1.2.9", + "meteor-node-stubs": "https://github.com/wekan/meteor-node-stubs.git", "minio": "^7.1.3", "moment": "^2.29.4", "os": "^0.1.2", - "page": "^1.11.6", "papaparse": "^5.3.1", "pretty-ms": "^7.0.1", - "qs": "^6.12.1", + "qs": "^6.13.0", "simpl-schema": "^3.4.6", "source-map-support": "^0.5.20", "uuid": "^8.3.2" diff --git a/packages/markdown/package.js b/packages/markdown/package.js index 8263afca5..f8f6c8152 100644 --- a/packages/markdown/package.js +++ b/packages/markdown/package.js @@ -6,8 +6,6 @@ Package.describe({ }); Package.onUse(function (api) { - if(api.versionsFrom) api.versionsFrom('1.8.2'); - api.use('templating'); api.use("ecmascript", ['server', 'client']); diff --git a/packages/meteor-autosize/img/ScreenShot1.png b/packages/meteor-autosize/img/ScreenShot1.png index 637dd0c63..902f25a5e 100644 Binary files a/packages/meteor-autosize/img/ScreenShot1.png and b/packages/meteor-autosize/img/ScreenShot1.png differ diff --git a/packages/meteor-autosize/img/ScreenShot2.png b/packages/meteor-autosize/img/ScreenShot2.png index 818c8a2bf..d2d3ad9e1 100644 Binary files a/packages/meteor-autosize/img/ScreenShot2.png and b/packages/meteor-autosize/img/ScreenShot2.png differ diff --git a/packages/meteor-autosize/package.js b/packages/meteor-autosize/package.js index ff1ebd22a..622ca3560 100644 --- a/packages/meteor-autosize/package.js +++ b/packages/meteor-autosize/package.js @@ -7,6 +7,5 @@ Package.describe({ }); Package.onUse(function (api) { - api.versionsFrom("METEOR@0.9.0"); api.addFiles(['lib/autosize.js'], 'client'); }); diff --git a/packages/wekan-accounts-cas/package.js b/packages/wekan-accounts-cas/package.js index f698a6b23..314d17c17 100644 --- a/packages/wekan-accounts-cas/package.js +++ b/packages/wekan-accounts-cas/package.js @@ -6,7 +6,6 @@ Package.describe({ }); Package.onUse(function(api) { - api.versionsFrom('2.7'); api.use('routepolicy', 'server'); api.use('webapp', 'server'); api.use('accounts-base', ['client', 'server']); diff --git a/packages/wekan-accounts-lockout/package.js b/packages/wekan-accounts-lockout/package.js index 769680679..7f1a64b21 100644 --- a/packages/wekan-accounts-lockout/package.js +++ b/packages/wekan-accounts-lockout/package.js @@ -9,7 +9,6 @@ Package.describe({ }); Package.onUse((api) => { - api.versionsFrom('2.7'); api.use([ 'ecmascript', 'accounts-password', diff --git a/packages/wekan-accounts-sandstorm/package.js b/packages/wekan-accounts-sandstorm/package.js index efec314f5..b3972324b 100644 --- a/packages/wekan-accounts-sandstorm/package.js +++ b/packages/wekan-accounts-sandstorm/package.js @@ -27,8 +27,6 @@ Package.describe({ }); Package.onUse(function(api) { - api.versionsFrom('2.7'); - api.use('random', ['client', 'server']); api.use('accounts-base', ['client', 'server'], {weak: true}); api.use('webapp', 'server'); diff --git a/packages/wekan-bootstrap-datepicker/package.js b/packages/wekan-bootstrap-datepicker/package.js index ad28d0193..fa0492ea7 100644 --- a/packages/wekan-bootstrap-datepicker/package.js +++ b/packages/wekan-bootstrap-datepicker/package.js @@ -7,7 +7,6 @@ Package.describe({ }); Package.onUse(function (api) { - api.versionsFrom('2.13'); api.use('jquery', 'client'); api.addFiles('bootstrap-datepicker/dist/js/bootstrap-datepicker.js', 'client'); diff --git a/packages/wekan-fontawesome/package.js b/packages/wekan-fontawesome/package.js index ee52d9685..b9c54160e 100644 --- a/packages/wekan-fontawesome/package.js +++ b/packages/wekan-fontawesome/package.js @@ -8,8 +8,6 @@ Package.describe({ Package.onUse(function(api) { - api.versionsFrom('2.13'); - api.addAssets([ 'fontawesome-free/webfonts/fa-brands-400.ttf', 'fontawesome-free/webfonts/fa-brands-400.woff2', diff --git a/packages/wekan-fullcalendar/package.js b/packages/wekan-fullcalendar/package.js index bde916fa9..38e8d64fc 100644 --- a/packages/wekan-fullcalendar/package.js +++ b/packages/wekan-fullcalendar/package.js @@ -6,9 +6,8 @@ Package.describe({ }); Package.onUse(function(api) { - api.versionsFrom('2.13'); api.use([ - 'momentjs:moment@2.29.3', + 'momentjs:moment', 'templating' ], 'client'); api.addFiles([ diff --git a/packages/wekan-ldap/package.js b/packages/wekan-ldap/package.js index b3ea7a7d9..57a2ede35 100644 --- a/packages/wekan-ldap/package.js +++ b/packages/wekan-ldap/package.js @@ -12,7 +12,6 @@ Package.describe({ Package.onUse(function(api) { - api.versionsFrom('2.7'); api.use('yasaricli:slugify'); api.use('ecmascript'); api.use('underscore'); diff --git a/public/Square150x150Logo.scale-100.png b/public/Square150x150Logo.scale-100.png index 0445b50c7..bcddab58a 100644 Binary files a/public/Square150x150Logo.scale-100.png and b/public/Square150x150Logo.scale-100.png differ diff --git a/public/Square44x44Logo.scale-100.png b/public/Square44x44Logo.scale-100.png index bf8cacfee..da57467c8 100644 Binary files a/public/Square44x44Logo.scale-100.png and b/public/Square44x44Logo.scale-100.png differ diff --git a/public/StoreLogo.scale-100.png b/public/StoreLogo.scale-100.png index 5d73037ed..0de8dd974 100644 Binary files a/public/StoreLogo.scale-100.png and b/public/StoreLogo.scale-100.png differ diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png index 7d29824e2..8a72e0ebe 100644 Binary files a/public/android-chrome-192x192.png and b/public/android-chrome-192x192.png differ diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png index 7ecf363ad..8614bfb40 100644 Binary files a/public/android-chrome-512x512.png and b/public/android-chrome-512x512.png differ diff --git a/public/android/android-launchericon-144-144.png b/public/android/android-launchericon-144-144.png index 4f7050c99..6a7a896b8 100644 Binary files a/public/android/android-launchericon-144-144.png and b/public/android/android-launchericon-144-144.png differ diff --git a/public/android/android-launchericon-192-192.png b/public/android/android-launchericon-192-192.png index b6246fb58..a4cdc8eee 100644 Binary files a/public/android/android-launchericon-192-192.png and b/public/android/android-launchericon-192-192.png differ diff --git a/public/android/android-launchericon-48-48.png b/public/android/android-launchericon-48-48.png index 83d50d3a0..ba4207268 100644 Binary files a/public/android/android-launchericon-48-48.png and b/public/android/android-launchericon-48-48.png differ diff --git a/public/android/android-launchericon-512-512.png b/public/android/android-launchericon-512-512.png index 3d8977986..0f69b9976 100644 Binary files a/public/android/android-launchericon-512-512.png and b/public/android/android-launchericon-512-512.png differ diff --git a/public/android/android-launchericon-72-72.png b/public/android/android-launchericon-72-72.png index c8d197893..c62db8504 100644 Binary files a/public/android/android-launchericon-72-72.png and b/public/android/android-launchericon-72-72.png differ diff --git a/public/android/android-launchericon-96-96.png b/public/android/android-launchericon-96-96.png index 9f8d9452c..b17068900 100644 Binary files a/public/android/android-launchericon-96-96.png and b/public/android/android-launchericon-96-96.png differ diff --git a/public/api/wekan.html b/public/api/wekan.html index 481257bdb..d73fec650 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ <meta charset="utf-8"> <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> - <title>Wekan REST API v7.43 + Wekan REST API @@ -1465,30 +1465,10 @@ Darkula color scheme from the JetBrains family of IDEs var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduce(function(e,t){return e+t.boost},0);return n.some(function(e){return this.tokenStore.has(e)},this)?(n.forEach(function(t,n,s){var a=1/s.length*this._fields.length*o,u=this,c=this.tokenStore.expand(t).reduce(function(n,i){var o=u.corpusTokens.indexOf(i),s=u.idf(i),c=1,l=new e.SortedSet;if(i!==t){var f=Math.max(3,i.length-t.length);c=1/Math.log(f)}return o>-1&&r.insert(o,a*s*c),Object.keys(u.tokenStore.get(i)).forEach(function(e){l.add(e)}),n.union(l)},new e.SortedSet);i.push(c)},this),i.reduce(function(e,t){return e.intersect(t)}).map(function(e){return{ref:e,score:r.similarity(this.documentVector(e))}},this).sort(function(e,t){return t.score-e.score})):[]},e.Index.prototype.documentVector=function(t){for(var n=this.documentStore.get(t),r=n.length,i=new e.Vector,o=0;ot;t+=1)n.push(e[t].listener);return n},r.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},r.addListener=function(e,n){var r,i=this.getListenersAsObject(e),o="object"==typeof n;for(r in i)i.hasOwnProperty(r)&&-1===t(i[r],n)&&i[r].push(o?n:{listener:n,once:!1});return this},r.on=n("addListener"),r.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},r.once=n("addOnceListener"),r.defineEvent=function(e){return this.getListeners(e),this},r.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},r.removeListener=function(e,n){var r,i,o=this.getListenersAsObject(e);for(i in o)o.hasOwnProperty(i)&&-1!==(r=t(o[i],n))&&o[i].splice(r,1);return this},r.off=n("removeListener"),r.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},r.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},r.manipulateListeners=function(e,t,n){var r,i,o=e?this.removeListener:this.addListener,s=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)o.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?o.call(this,r,i):s.call(this,r,i));return this},r.removeEvent=function(e){var t,n=typeof e,r=this._getEvents();if("string"===n)delete r[e];else if("object"===n)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},r.removeAllListeners=n("removeEvent"),r.emitEvent=function(e,t){var n,r,i,o=this.getListenersAsObject(e);for(i in o)if(o.hasOwnProperty(i))for(r=o[i].length;r--;)n=o[i][r],!0===n.once&&this.removeListener(e,n.listener),n.listener.apply(this,t||[])===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},r.trigger=n("emitEvent"),r.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},r.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},r._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},r._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return i.EventEmitter=o,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}.call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,r=function(){};n.addEventListener?r=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(r=function(e,n,r){e[n+r]=r.handleEvent?function(){var n=t(e);r.handleEvent.call(r,n)}:function(){var n=t(e);r.call(e,n)},e.attachEvent("on"+n,e[n+r])});var i=function(){};n.removeEventListener?i=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(i=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(r){e[t+n]=void 0}});var o={bind:r,unbind:i};"function"==typeof define&&define.amd?define("eventie/eventie",o):e.eventie=o}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,r){return t(e,n,r)}):"object"==typeof exports?module.exports=t(e,require("wolfy87-eventemitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(window,function(e,t,n){function r(e,t){for(var n in t)e[n]=t[n];return e}function i(e){return"[object Array]"===d.call(e)}function o(e){var t=[];if(i(e))t=e;else if("number"==typeof e.length)for(var n=0,r=e.length;r>n;n++)t.push(e[n]);else t.push(e);return t}function s(e,t,n){if(!(this instanceof s))return new s(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=o(e),this.options=r({},this.options),"function"==typeof t?n=t:r(this.options,t),n&&this.on("always",n),this.getImages(),c&&(this.jqDeferred=new c.Deferred);var i=this;setTimeout(function(){i.check()})}function a(e){this.img=e}function u(e){this.src=e,p[e]=this}var c=e.jQuery,l=e.console,f=void 0!==l,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);var r=n.nodeType;if(r&&(1===r||9===r||11===r))for(var i=n.querySelectorAll("img"),o=0,s=i.length;s>o;o++){var a=i[o];this.addImage(a)}}},s.prototype.addImage=function(e){var t=new a(e);this.images.push(t)},s.prototype.check=function(){function e(e,i){return t.options.debug&&f&&l.log("confirm",e,i),t.progress(e),n++,n===r&&t.complete(),!0}var t=this,n=0,r=this.images.length;if(this.hasAnyBroken=!1,!r)return void this.complete();for(var i=0;r>i;i++){var o=this.images[i];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},c&&(c.fn.imagesLoaded=function(e,t){return new s(this,e,t).jqDeferred.promise(c(this))}),a.prototype=new t,a.prototype.check=function(){var e=p[this.img.src]||new u(this.img.src);if(e.isConfirmed)return void this.confirm(e.isLoaded,"cached was confirmed");if(this.img.complete&&void 0!==this.img.naturalWidth)return void this.confirm(0!==this.img.naturalWidth,"naturalWidth");var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},a.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var p={};return u.prototype=new t,u.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},u.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},u.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},u.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},u.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},u.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s}),function(){if("ontouchstart"in window){var e,t,n,r,i,o,s={};e=function(e,t){return Math.abs(e[0]-t[0])>5||Math.abs(e[1]-t[1])>5},t=function(e){this.startXY=[e.touches[0].clientX,e.touches[0].clientY],this.threshold=!1},n=function(t){if(this.threshold)return!1;this.threshold=e(this.startXY,[t.touches[0].clientX,t.touches[0].clientY])},r=function(t){if(!this.threshold&&!e(this.startXY,[t.changedTouches[0].clientX,t.changedTouches[0].clientY])){var n=t.changedTouches[0],r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),r.simulated=!0,t.target.dispatchEvent(r)}},i=function(e){var t=Date.now(),n=t-s.time,r=e.clientX,i=e.clientY,a=[Math.abs(s.x-r),Math.abs(s.y-i)],u=o(e.target,"A")||e.target,c=u.nodeName,l="A"===c,f=window.navigator.standalone&&l&&e.target.getAttribute("href");if(s.time=t,s.x=r,s.y=i,(!e.simulated&&(n<500||n<1500&&a[0]<50&&a[1]<50)||f)&&(e.preventDefault(),e.stopPropagation(),!f))return!1;f&&(window.location=u.getAttribute("href")),u&&u.classList&&(u.classList.add("energize-focus"),window.setTimeout(function(){u.classList.remove("energize-focus")},150))},o=function(e,t){for(var n=e;n!==document.body;){if(!n||n.nodeName===t)return n;n=n.parentNode}return null},document.addEventListener("touchstart",t,!1),document.addEventListener("touchmove",n,!1),document.addEventListener("touchend",r,!1),document.addEventListener("click",i,!0)}}(),function(){"use strict";function e(e){if(e&&""!==e){$(".lang-selector a").removeClass("active"),$(".lang-selector a[data-language-name='"+e+"']").addClass("active");for(var t=0;t=1){var e=t(location.search).language;if(e)return e;if(-1!=jQuery.inArray(location.search.substr(1),a))return location.search.substr(1)}return!1}function i(e){var r=t(location.search);return r.language?(r.language=e,n(r)):e}function o(e){if(history){var t=window.location.hash;t&&(t=t.replace(/^#+/,"")),history.pushState({},"","?"+i(e)+"#"+t),localStorage.setItem("language",e)}}function s(t){var n=localStorage.getItem("language");a=t;var i=r();i?(e(i),localStorage.setItem("language",i)):e(null!==n&&-1!=jQuery.inArray(n,a)?n:a[0])}var a=[];window.setupLanguages=s,window.activateLanguage=e,window.getLanguageFromQueryString=r,$(function(){$(".lang-selector a").on("click",function(){var t=$(this).data("language-name");return o(t),e(t),!1})})}(),function(){"use strict";function e(){$("h1, h2").each(function(){var e=$(this),t=e.nextUntil("h1, h2");f.add({id:e.prop("id"),title:e.text(),body:t.text()})}),t()}function t(){f.tokenStore.length>5e3&&(c=300)}function n(){s=$(".content"),a=$(".search-results"),$("#input-search").on("keyup",function(e){!function(){return function(e,t){clearTimeout(l),l=setTimeout(e,t)}}()(function(){r(e)},c)})}function r(e){var t=$("#input-search")[0];if(o(),a.addClass("visible"),27===e.keyCode&&(t.value=""),t.value){var n=f.search(t.value).filter(function(e){return e.score>1e-4});n.length?(a.empty(),$.each(n,function(e,t){var n=document.getElementById(t.ref);a.append("
  • "+$(n).text()+"
  • ")}),i.call(t)):(a.html("
  • "),$(".search-results li").text('No Results Found for "'+t.value+'"'))}else o(),a.removeClass("visible")}function i(){this.value&&s.highlight(this.value,u)}function o(){s.unhighlight(u)}var s,a,u={element:"span",className:"search-highlight"},c=0,l=0,f=new lunr.Index;f.ref("id"),f.field("title",{boost:10}),f.field("body"),f.pipeline.add(lunr.trimmer,lunr.stopWordFilter),$(e),$(n)}(),function(){"use strict";function e(e,i,o,s){var a={},u=0,c=0,l=document.title,f=function(){a={},u=$(document).height(),c=$(window).height(),e.find(i).each(function(){var e=$(this).attr("href");"#"===e[0]&&(a[e]=$(e).offset().top)})},d=function(){var n=$(document).scrollTop()+s;n+c>=u&&(n=u+1e3);var r=null;for(var f in a)(a[f]a[r]||null===r)&&(r=f);n!=s||t||(r=window.location.hash,t=!0);var d=e.find("[href='"+r+"']").first();if(!d.hasClass("active")){e.find(".active").removeClass("active"),e.find(".active-parent").removeClass("active-parent"),d.addClass("active"),d.parents(o).addClass("active").siblings(i).addClass("active-parent"),d.siblings(o).addClass("active"),e.find(o).filter(":not(.active)").slideUp(150),e.find(o).filter(".active").slideDown(150),window.history.replaceState&&window.history.replaceState(null,"",r);var p=d.data("title");void 0!==p&&p.length>0?document.title=p+" – "+l:document.title=l}};!function(){f(),d(),$("#nav-button").click(function(){return $(".toc-wrapper").toggleClass("open"),$("#nav-button").toggleClass("open"),!1}),$(".page-wrapper").click(r),$(".toc-link").click(r),e.find(i).click(function(){setTimeout(function(){d()},0)}),$(window).scroll(n(d,200)),$(window).resize(n(f,200))}(),window.recacheHeights=f,window.refreshToc=d}var t=!1,n=function(e,t){var n=!1;return function(){!1===n&&(setTimeout(function(){e(),n=!1},t),n=!0)}},r=function(){$(".toc-wrapper").removeClass("open"),$("#nav-button").removeClass("open")};window.loadToc=e}(),$(function(){loadToc($("#toc"),".toc-link",".toc-list-h2, .toc-list-h3, .toc-list-h4, .toc-list-h5, .toc-list-h6",10),setupLanguages($("body").data("languages")),$(".content").imagesLoaded(function(){window.recacheHeights(),window.refreshToc()})}),window.onpopstate=function(){activateLanguage(getLanguageFromQueryString())}; - - - - - - - - - - - - - - - - - - - - - + - + NAV @@ -1496,7 +1476,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
    - +
    @@ -1532,10 +1512,6 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc Go - - PHP - -
    @@ -1548,7 +1524,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
    • - Wekan REST API v7.43 + Wekan REST API v7.84
    • @@ -1568,12 +1544,12 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
      • - login + login
      • - register + register
      • @@ -1587,62 +1563,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
        • - get_public_boards - -
        • - -
        • - new_board - -
        • - -
        • - get_board - -
        • - -
        • - delete_board - -
        • - -
        • - get_board_attachments - -
        • - -
        • - exportJson - -
        • - -
        • - copy_board - -
        • - -
        • - add_board_label - -
        • - -
        • - set_board_member_permission - -
        • - -
        • - update_board_title - -
        • - -
        • - get_boards_count - -
        • - -
        • - get_boards_from_user + exportJson
        • @@ -1656,22 +1577,22 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
          • - get_all_checklists + get_all_checklists
          • - new_checklist + new_checklist
          • - get_checklist + get_checklist
          • - delete_checklist + delete_checklist
          • @@ -1685,22 +1606,22 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
            • - new_checklist_item + new_checklist_item
            • - get_checklist_item + get_checklist_item
            • - edit_checklist_item + edit_checklist_item
            • - delete_checklist_item + delete_checklist_item
            • @@ -1714,22 +1635,22 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
              • - get_all_comments + get_all_comments
              • - new_comment + new_comment
              • - get_comment + get_comment
              • - delete_comment + delete_comment
              • @@ -1743,52 +1664,52 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                • - get_cards_by_custom_field + get_cards_by_custom_field
                • - get_board_cards_count + get_board_cards_count
                • - get_all_cards + get_all_cards
                • - new_card + new_card
                • - get_card + get_card
                • - edit_card + edit_card
                • - delete_card + delete_card
                • - edit_card_custom_field + edit_card_custom_field
                • - get_list_cards_count + get_list_cards_count
                • - get_swimlane_cards + get_swimlane_cards
                • @@ -1802,42 +1723,42 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                  • - get_all_custom_fields + get_all_custom_fields
                  • - new_custom_field + new_custom_field
                  • - get_custom_field + get_custom_field
                  • - edit_custom_field + edit_custom_field
                  • - delete_custom_field + delete_custom_field
                  • - add_custom_field_dropdown_items + add_custom_field_dropdown_items
                  • - edit_custom_field_dropdown_item + edit_custom_field_dropdown_item
                  • - delete_custom_field_dropdown_item + delete_custom_field_dropdown_item
                  • @@ -1851,37 +1772,37 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                    • - get_all_integrations + get_all_integrations
                    • - new_integration + new_integration
                    • - get_integration + get_integration
                    • - edit_integration + edit_integration
                    • - delete_integration + delete_integration
                    • - delete_integration_activities + delete_integration_activities
                    • - new_integration_activities + new_integration_activities
                    • @@ -1895,22 +1816,22 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                      • - get_all_lists + get_all_lists
                      • - new_list + new_list
                      • - get_list + get_list
                      • - delete_list + delete_list
                      • @@ -1924,27 +1845,27 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                        • - get_all_swimlanes + get_all_swimlanes
                        • - new_swimlane + new_swimlane
                        • - get_swimlane + get_swimlane
                        • - edit_swimlane + edit_swimlane
                        • - delete_swimlane + delete_swimlane
                        • @@ -1958,97 +1879,72 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                          • - Boards + CardComments
                          • - BoardsLabels + Cards
                          • - BoardsMembers + CardsVote
                          • - BoardsOrgs + CardsPoker
                          • - BoardsTeams + CardsCustomfields
                          • - CardComments + ChecklistItems
                          • - Cards + Checklists
                          • - CardsVote + CustomFields
                          • - CardsPoker + CustomFieldsSettings
                          • - CardsCustomfields + CustomFieldsSettingsDropdownitems
                          • - ChecklistItems + Integrations
                          • - Checklists + Lists
                          • - CustomFields + ListsWiplimit
                          • - CustomFieldsSettings - -
                          • - -
                          • - CustomFieldsSettingsDropdownitems - -
                          • - -
                          • - Integrations - -
                          • - -
                          • - Lists - -
                          • - -
                          • - ListsWiplimit - -
                          • - -
                          • - Swimlanes + Swimlanes
                          • @@ -2067,7 +1963,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                            -

                            Wekan REST API v7.43

                            +

                            Wekan REST API v7.84

                            Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

                            @@ -2099,28 +1995,47 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                            # You can also use wget
                             curl -X POST /users/login \
                            -  -H 'Content-Type: application/x-www-form-urlencoded' \
                            -  -H 'Accept: */*'
                            +  -H 'Content-Type: application/x-www-form-urlencoded' \
                            +  -H 'Accept: */*'
                             
                             
                            -
                            POST /users/login HTTP/1.1
                            +
                            POST /users/login HTTP/1.1
                             
                            -Content-Type: application/x-www-form-urlencoded
                            -Accept: */*
                            +Content-Type: application/x-www-form-urlencoded
                            +Accept: */*
                            +
                            +
                            +
                            var headers = {
                            +  'Content-Type':'application/x-www-form-urlencoded',
                            +  'Accept':'*/*'
                             
                            -
                            -
                            const inputBody = '{
                            -  "username": "string",
                            -  "password": "pa$$word"
                            -}';
                            -const headers = {
                            -  'Content-Type':'application/x-www-form-urlencoded',
                            -  'Accept':'*/*'
                             };
                             
                            -fetch('/users/login',
                            +$.ajax({
                            +  url: '/users/login',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "username": "string",
                            +  "password": "pa$$word"
                            +}';
                            +const headers = {
                            +  'Content-Type':'application/x-www-form-urlencoded',
                            +  'Accept':'*/*'
                            +
                            +};
                            +
                            +fetch('/users/login',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -2131,38 +2046,15 @@ fetch('/users/login',
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "username": "string",
                            -  "password": "pa$$word"
                            -};
                            -const headers = {
                            -  'Content-Type':'application/x-www-form-urlencoded',
                            -  'Accept':'*/*'
                            -};
                            -
                            -fetch('/users/login',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'application/x-www-form-urlencoded',
                            -  'Accept' => '*/*'
                            +  'Content-Type' => 'application/x-www-form-urlencoded',
                            +  'Accept' => '*/*'
                             }
                             
                            -result = RestClient.post '/users/login',
                            +result = RestClient.post '/users/login',
                               params: {
                               }, headers: headers
                             
                            @@ -2171,18 +2063,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'application/x-www-form-urlencoded',
                            -  'Accept': '*/*'
                            +  'Content-Type': 'application/x-www-form-urlencoded',
                            +  'Accept': '*/*'
                             }
                             
                            -r = requests.post('/users/login', headers = headers)
                            +r = requests.post('/users/login', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/users/login");
                            +
                            URL obj = new URL("/users/login");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -2198,19 +2092,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"application/x-www-form-urlencoded"},
                            -        "Accept": []string{"*/*"},
                            +        "Content-Type": []string{"application/x-www-form-urlencoded"},
                            +        "Accept": []string{"*/*"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/users/login", data)
                            +    req, err := http.NewRequest("POST", "/users/login", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -2218,31 +2113,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/x-www-form-urlencoded',
                            -    'Accept' => '*/*',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/users/login', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /users/login

                            Login with REST API

                            @@ -2269,7 +2139,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -2399,29 +2269,48 @@ This operation does not require authentication
                            # You can also use wget
                             curl -X POST /users/register \
                            -  -H 'Content-Type: application/x-www-form-urlencoded' \
                            -  -H 'Accept: */*'
                            +  -H 'Content-Type: application/x-www-form-urlencoded' \
                            +  -H 'Accept: */*'
                             
                             
                            -
                            POST /users/register HTTP/1.1
                            +
                            POST /users/register HTTP/1.1
                             
                            -Content-Type: application/x-www-form-urlencoded
                            -Accept: */*
                            +Content-Type: application/x-www-form-urlencoded
                            +Accept: */*
                            +
                            +
                            +
                            var headers = {
                            +  'Content-Type':'application/x-www-form-urlencoded',
                            +  'Accept':'*/*'
                             
                            -
                            -
                            const inputBody = '{
                            -  "username": "string",
                            -  "password": "pa$$word",
                            -  "email": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'application/x-www-form-urlencoded',
                            -  'Accept':'*/*'
                             };
                             
                            -fetch('/users/register',
                            +$.ajax({
                            +  url: '/users/register',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "username": "string",
                            +  "password": "pa$$word",
                            +  "email": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'application/x-www-form-urlencoded',
                            +  'Accept':'*/*'
                            +
                            +};
                            +
                            +fetch('/users/register',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -2432,39 +2321,15 @@ fetch('/users/register',
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "username": "string",
                            -  "password": "pa$$word",
                            -  "email": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'application/x-www-form-urlencoded',
                            -  'Accept':'*/*'
                            -};
                            -
                            -fetch('/users/register',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'application/x-www-form-urlencoded',
                            -  'Accept' => '*/*'
                            +  'Content-Type' => 'application/x-www-form-urlencoded',
                            +  'Accept' => '*/*'
                             }
                             
                            -result = RestClient.post '/users/register',
                            +result = RestClient.post '/users/register',
                               params: {
                               }, headers: headers
                             
                            @@ -2473,18 +2338,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'application/x-www-form-urlencoded',
                            -  'Accept': '*/*'
                            +  'Content-Type': 'application/x-www-form-urlencoded',
                            +  'Accept': '*/*'
                             }
                             
                            -r = requests.post('/users/register', headers = headers)
                            +r = requests.post('/users/register', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/users/register");
                            +
                            URL obj = new URL("/users/register");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -2500,19 +2367,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"application/x-www-form-urlencoded"},
                            -        "Accept": []string{"*/*"},
                            +        "Content-Type": []string{"application/x-www-form-urlencoded"},
                            +        "Accept": []string{"*/*"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/users/register", data)
                            +    req, err := http.NewRequest("POST", "/users/register", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -2520,31 +2388,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/x-www-form-urlencoded',
                            -    'Accept' => '*/*',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/users/register', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /users/register

                            Register with REST API

                            @@ -2576,7 +2419,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -2707,1323 +2550,6 @@ System.out.println(response.toString()); This operation does not require authentication

                            Boards

                            -

                            get_public_boards

                            -

                            -
                            -

                            Code samples

                            -
                            -
                            # You can also use wget
                            -curl -X GET /api/boards \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            -
                            -
                            -
                            GET /api/boards HTTP/1.1
                            -
                            -Accept: application/json
                            -
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            -
                            -headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            -}
                            -
                            -result = RestClient.get '/api/boards',
                            -  params: {
                            -  }, headers: headers
                            -
                            -p JSON.parse(result)
                            -
                            -
                            -
                            import requests
                            -headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            -}
                            -
                            -r = requests.get('/api/boards', headers = headers)
                            -
                            -print(r.json())
                            -
                            -
                            -
                            URL obj = new URL("/api/boards");
                            -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            -int responseCode = con.getResponseCode();
                            -BufferedReader in = new BufferedReader(
                            -    new InputStreamReader(con.getInputStream()));
                            -String inputLine;
                            -StringBuffer response = new StringBuffer();
                            -while ((inputLine = in.readLine()) != null) {
                            -    response.append(inputLine);
                            -}
                            -in.close();
                            -System.out.println(response.toString());
                            -
                            -
                            -
                            package main
                            -
                            -import (
                            -       "bytes"
                            -       "net/http"
                            -)
                            -
                            -func main() {
                            -
                            -    headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            -    }
                            -
                            -    data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards", data)
                            -    req.Header = headers
                            -
                            -    client := &http.Client{}
                            -    resp, err := client.Do(req)
                            -    // ...
                            -}
                            -
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                            -
                            -

                            GET /api/boards

                            -

                            Get all public boards

                            -
                            -

                            Example responses

                            -
                            -
                            -

                            200 Response

                            -
                            -
                            [
                            -  {
                            -    "_id": "string",
                            -    "title": "string"
                            -  }
                            -]
                            -
                            -

                            Responses

                            - - - - - - - - - - - - - - - - - -
                            StatusMeaningDescriptionSchema
                            200OK200 responseInline
                            -

                            Response Schema

                            -

                            Status Code 200

                            - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameTypeRequiredRestrictionsDescription
                            » _idstringfalsenonenone
                            » titlestringfalsenonenone
                            - -

                            new_board

                            -

                            -
                            -

                            Code samples

                            -
                            -
                            # You can also use wget
                            -curl -X POST /api/boards \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            -
                            -
                            -
                            POST /api/boards HTTP/1.1
                            -
                            -Content-Type: multipart/form-data
                            -Accept: application/json
                            -
                            -
                            -
                            const inputBody = '{
                            -  "title": "string",
                            -  "owner": "string",
                            -  "isAdmin": true,
                            -  "isActive": true,
                            -  "isNoComments": true,
                            -  "isCommentOnly": true,
                            -  "isWorker": true,
                            -  "permission": "string",
                            -  "color": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards',
                            -{
                            -  method: 'POST',
                            -  body: inputBody,
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "title": "string",
                            -  "owner": "string",
                            -  "isAdmin": true,
                            -  "isActive": true,
                            -  "isNoComments": true,
                            -  "isCommentOnly": true,
                            -  "isWorker": true,
                            -  "permission": "string",
                            -  "color": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            -
                            -headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            -}
                            -
                            -result = RestClient.post '/api/boards',
                            -  params: {
                            -  }, headers: headers
                            -
                            -p JSON.parse(result)
                            -
                            -
                            -
                            import requests
                            -headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            -}
                            -
                            -r = requests.post('/api/boards', headers = headers)
                            -
                            -print(r.json())
                            -
                            -
                            -
                            URL obj = new URL("/api/boards");
                            -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            -int responseCode = con.getResponseCode();
                            -BufferedReader in = new BufferedReader(
                            -    new InputStreamReader(con.getInputStream()));
                            -String inputLine;
                            -StringBuffer response = new StringBuffer();
                            -while ((inputLine = in.readLine()) != null) {
                            -    response.append(inputLine);
                            -}
                            -in.close();
                            -System.out.println(response.toString());
                            -
                            -
                            -
                            package main
                            -
                            -import (
                            -       "bytes"
                            -       "net/http"
                            -)
                            -
                            -func main() {
                            -
                            -    headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            -    }
                            -
                            -    data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards", data)
                            -    req.Header = headers
                            -
                            -    client := &http.Client{}
                            -    resp, err := client.Do(req)
                            -    // ...
                            -}
                            -
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                            -
                            -

                            POST /api/boards

                            -

                            Create a board

                            -

                            This allows to create a board.

                            -

                            The color has to be chosen between belize, nephritis, pomegranate, -pumpkin, wisteria, moderatepink, strongcyan, -limegreen, midnight, dark, relax, corteza:

                            - Wekan logo -
                            -

                            Body parameter

                            -
                            -
                            title: string
                            -owner: string
                            -isAdmin: true
                            -isActive: true
                            -isNoComments: true
                            -isCommentOnly: true
                            -isWorker: true
                            -permission: string
                            -color: string
                            -
                            -
                            -

                            Parameters

                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameInTypeRequiredDescription
                            bodybodyobjecttruenone
                            » titlebodystringtruethe new title of the board
                            » ownerbodystringtrue"ABCDE12345" <= User ID in Wekan.
                            » isAdminbodybooleanfalseis the owner an admin of the board (default true)
                            » isActivebodybooleanfalseis the board active (default true)
                            » isNoCommentsbodybooleanfalsedisable comments (default false)
                            » isCommentOnlybodybooleanfalseonly enable comments (default false)
                            » isWorkerbodybooleanfalseonly move cards, assign himself to card and comment (default false)
                            » permissionbodystringfalse"private" board <== Set to "public" if you
                            » colorbodystringfalsethe color of the board
                            -

                            Detailed descriptions

                            -

                            » owner: "ABCDE12345" <= User ID in Wekan. -(Not username or email)

                            -

                            » permission: "private" board <== Set to "public" if you -want public Wekan board

                            -
                            -

                            Example responses

                            -
                            -
                            -

                            200 Response

                            -
                            -
                            {
                            -  "_id": "string",
                            -  "defaultSwimlaneId": "string"
                            -}
                            -
                            -

                            Responses

                            - - - - - - - - - - - - - - - - - -
                            StatusMeaningDescriptionSchema
                            200OK200 responseInline
                            -

                            Response Schema

                            -

                            Status Code 200

                            - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameTypeRequiredRestrictionsDescription
                            » _idstringfalsenonenone
                            » defaultSwimlaneIdstringfalsenonenone
                            - -

                            get_board

                            -

                            -
                            -

                            Code samples

                            -
                            -
                            # You can also use wget
                            -curl -X GET /api/boards/{board} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            -
                            -
                            -
                            GET /api/boards/{board} HTTP/1.1
                            -
                            -Accept: application/json
                            -
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            -
                            -headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            -}
                            -
                            -result = RestClient.get '/api/boards/{board}',
                            -  params: {
                            -  }, headers: headers
                            -
                            -p JSON.parse(result)
                            -
                            -
                            -
                            import requests
                            -headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            -}
                            -
                            -r = requests.get('/api/boards/{board}', headers = headers)
                            -
                            -print(r.json())
                            -
                            -
                            -
                            URL obj = new URL("/api/boards/{board}");
                            -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            -int responseCode = con.getResponseCode();
                            -BufferedReader in = new BufferedReader(
                            -    new InputStreamReader(con.getInputStream()));
                            -String inputLine;
                            -StringBuffer response = new StringBuffer();
                            -while ((inputLine = in.readLine()) != null) {
                            -    response.append(inputLine);
                            -}
                            -in.close();
                            -System.out.println(response.toString());
                            -
                            -
                            -
                            package main
                            -
                            -import (
                            -       "bytes"
                            -       "net/http"
                            -)
                            -
                            -func main() {
                            -
                            -    headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            -    }
                            -
                            -    data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}", data)
                            -    req.Header = headers
                            -
                            -    client := &http.Client{}
                            -    resp, err := client.Do(req)
                            -    // ...
                            -}
                            -
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                            -
                            -

                            GET /api/boards/{board}

                            -

                            Get the board with that particular ID

                            -

                            Parameters

                            - - - - - - - - - - - - - - - - - - - -
                            NameInTypeRequiredDescription
                            boardpathstringtruethe ID of the board to retrieve the data
                            -

                            Detailed descriptions

                            -

                            board: the ID of the board to retrieve the data

                            -
                            -

                            Example responses

                            -
                            -
                            -

                            200 Response

                            -
                            -
                            {
                            -  "title": "string",
                            -  "slug": "string",
                            -  "archived": true,
                            -  "archivedAt": "string",
                            -  "createdAt": "string",
                            -  "modifiedAt": "string",
                            -  "stars": 0,
                            -  "labels": [
                            -    {
                            -      "_id": "string",
                            -      "name": "string",
                            -      "color": "white"
                            -    }
                            -  ],
                            -  "members": [
                            -    {
                            -      "userId": "string",
                            -      "isAdmin": true,
                            -      "isActive": true,
                            -      "isNoComments": true,
                            -      "isCommentOnly": true,
                            -      "isWorker": true
                            -    }
                            -  ],
                            -  "permission": "public",
                            -  "orgs": [
                            -    {
                            -      "orgId": "string",
                            -      "orgDisplayName": "string",
                            -      "isActive": true
                            -    }
                            -  ],
                            -  "teams": [
                            -    {
                            -      "teamId": "string",
                            -      "teamDisplayName": "string",
                            -      "isActive": true
                            -    }
                            -  ],
                            -  "color": "belize",
                            -  "backgroundImageURL": "string",
                            -  "allowsCardCounterList": true,
                            -  "allowsBoardMemberList": true,
                            -  "description": "string",
                            -  "subtasksDefaultBoardId": "string",
                            -  "subtasksDefaultListId": "string",
                            -  "dateSettingsDefaultBoardId": "string",
                            -  "dateSettingsDefaultListId": "string",
                            -  "allowsSubtasks": true,
                            -  "allowsAttachments": true,
                            -  "allowsChecklists": true,
                            -  "allowsComments": true,
                            -  "allowsDescriptionTitle": true,
                            -  "allowsDescriptionText": true,
                            -  "allowsDescriptionTextOnMinicard": true,
                            -  "allowsCoverAttachmentOnMinicard": true,
                            -  "allowsBadgeAttachmentOnMinicard": true,
                            -  "allowsCardSortingByNumberOnMinicard": true,
                            -  "allowsCardNumber": true,
                            -  "allowsActivities": true,
                            -  "allowsLabels": true,
                            -  "allowsCreator": true,
                            -  "allowsCreatorOnMinicard": true,
                            -  "allowsAssignee": true,
                            -  "allowsMembers": true,
                            -  "allowsRequestedBy": true,
                            -  "allowsCardSortingByNumber": true,
                            -  "allowsShowLists": true,
                            -  "allowsAssignedBy": true,
                            -  "allowsReceivedDate": true,
                            -  "allowsStartDate": true,
                            -  "allowsEndDate": true,
                            -  "allowsDueDate": true,
                            -  "presentParentTask": "prefix-with-full-path",
                            -  "receivedAt": "string",
                            -  "startAt": "string",
                            -  "dueAt": "string",
                            -  "endAt": "string",
                            -  "spentTime": 0,
                            -  "isOvertime": true,
                            -  "type": "board",
                            -  "sort": 0
                            -}
                            -
                            -

                            Responses

                            - - - - - - - - - - - - - - - - - -
                            StatusMeaningDescriptionSchema
                            200OK200 responseBoards
                            - -

                            delete_board

                            -

                            -
                            -

                            Code samples

                            -
                            -
                            # You can also use wget
                            -curl -X DELETE /api/boards/{board} \
                            -  -H 'Authorization: API_KEY'
                            -
                            -
                            -
                            DELETE /api/boards/{board} HTTP/1.1
                            -
                            -
                            -
                            
                            -const headers = {
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}',
                            -{
                            -  method: 'DELETE',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}',
                            -{
                            -  method: 'DELETE',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            -
                            -headers = {
                            -  'Authorization' => 'API_KEY'
                            -}
                            -
                            -result = RestClient.delete '/api/boards/{board}',
                            -  params: {
                            -  }, headers: headers
                            -
                            -p JSON.parse(result)
                            -
                            -
                            -
                            import requests
                            -headers = {
                            -  'Authorization': 'API_KEY'
                            -}
                            -
                            -r = requests.delete('/api/boards/{board}', headers = headers)
                            -
                            -print(r.json())
                            -
                            -
                            -
                            URL obj = new URL("/api/boards/{board}");
                            -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("DELETE");
                            -int responseCode = con.getResponseCode();
                            -BufferedReader in = new BufferedReader(
                            -    new InputStreamReader(con.getInputStream()));
                            -String inputLine;
                            -StringBuffer response = new StringBuffer();
                            -while ((inputLine = in.readLine()) != null) {
                            -    response.append(inputLine);
                            -}
                            -in.close();
                            -System.out.println(response.toString());
                            -
                            -
                            -
                            package main
                            -
                            -import (
                            -       "bytes"
                            -       "net/http"
                            -)
                            -
                            -func main() {
                            -
                            -    headers := map[string][]string{
                            -        "Authorization": []string{"API_KEY"},
                            -    }
                            -
                            -    data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("DELETE", "/api/boards/{board}", data)
                            -    req.Header = headers
                            -
                            -    client := &http.Client{}
                            -    resp, err := client.Do(req)
                            -    // ...
                            -}
                            -
                            -
                            -
                             'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('DELETE','/api/boards/{board}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                            -
                            -

                            DELETE /api/boards/{board}

                            -

                            Delete a board

                            -

                            Parameters

                            - - - - - - - - - - - - - - - - - - - -
                            NameInTypeRequiredDescription
                            boardpathstringtruethe ID of the board
                            -

                            Detailed descriptions

                            -

                            board: the ID of the board

                            -

                            Responses

                            - - - - - - - - - - - - - - - - - -
                            StatusMeaningDescriptionSchema
                            200OK200 responseNone
                            - -

                            get_board_attachments

                            -

                            -
                            -

                            Code samples

                            -
                            -
                            # You can also use wget
                            -curl -X GET /api/boards/{board}/attachments \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            -
                            -
                            -
                            GET /api/boards/{board}/attachments HTTP/1.1
                            -
                            -Accept: application/json
                            -
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/attachments',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/attachments',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            -
                            -headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            -}
                            -
                            -result = RestClient.get '/api/boards/{board}/attachments',
                            -  params: {
                            -  }, headers: headers
                            -
                            -p JSON.parse(result)
                            -
                            -
                            -
                            import requests
                            -headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            -}
                            -
                            -r = requests.get('/api/boards/{board}/attachments', headers = headers)
                            -
                            -print(r.json())
                            -
                            -
                            -
                            URL obj = new URL("/api/boards/{board}/attachments");
                            -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            -int responseCode = con.getResponseCode();
                            -BufferedReader in = new BufferedReader(
                            -    new InputStreamReader(con.getInputStream()));
                            -String inputLine;
                            -StringBuffer response = new StringBuffer();
                            -while ((inputLine = in.readLine()) != null) {
                            -    response.append(inputLine);
                            -}
                            -in.close();
                            -System.out.println(response.toString());
                            -
                            -
                            -
                            package main
                            -
                            -import (
                            -       "bytes"
                            -       "net/http"
                            -)
                            -
                            -func main() {
                            -
                            -    headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            -    }
                            -
                            -    data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/attachments", data)
                            -    req.Header = headers
                            -
                            -    client := &http.Client{}
                            -    resp, err := client.Do(req)
                            -    // ...
                            -}
                            -
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/attachments', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                            -
                            -

                            GET /api/boards/{board}/attachments

                            -

                            Get the list of attachments of a board

                            -

                            Parameters

                            - - - - - - - - - - - - - - - - - - - -
                            NameInTypeRequiredDescription
                            boardpathstringtruethe board ID
                            -

                            Detailed descriptions

                            -

                            board: the board ID

                            -
                            -

                            Example responses

                            -
                            -
                            -

                            200 Response

                            -
                            -
                            [
                            -  {
                            -    "attachmentId": "string",
                            -    "attachmentName": "string",
                            -    "attachmentType": "string",
                            -    "url": "string",
                            -    "urlDownload": "string",
                            -    "boardId": "string",
                            -    "swimlaneId": "string",
                            -    "listId": "string",
                            -    "cardId": "string"
                            -  }
                            -]
                            -
                            -

                            Responses

                            - - - - - - - - - - - - - - - - - -
                            StatusMeaningDescriptionSchema
                            200OK200 responseInline
                            -

                            Response Schema

                            -

                            Status Code 200

                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameTypeRequiredRestrictionsDescription
                            » attachmentIdstringfalsenonenone
                            » attachmentNamestringfalsenonenone
                            » attachmentTypestringfalsenonenone
                            » urlstringfalsenonenone
                            » urlDownloadstringfalsenonenone
                            » boardIdstringfalsenonenone
                            » swimlaneIdstringfalsenonenone
                            » listIdstringfalsenonenone
                            » cardIdstringfalsenonenone
                            -

                            exportJson

                            @@ -4031,20 +2557,38 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/export \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/export HTTP/1.1
                            +
                            GET /api/boards/{board}/export HTTP/1.1
                            +
                            +
                            +
                            var headers = {
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/export',
                            +$.ajax({
                            +  url: '/api/boards/{board}/export',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/export',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -4055,33 +2599,14 @@ fetch('/api/boards/{board}/export',
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/export',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Authorization' => 'API_KEY'
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/export',
                            +result = RestClient.get '/api/boards/{board}/export',
                               params: {
                               }, headers: headers
                             
                            @@ -4090,17 +2615,19 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Authorization': 'API_KEY'
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/export', headers = headers)
                            +r = requests.get('/api/boards/{board}/export', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/export");
                            +
                            URL obj = new URL("/api/boards/{board}/export");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -4116,18 +2643,19 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Authorization": []string{"API_KEY"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/export", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/export", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -4135,30 +2663,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/export', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/export

                            This route is used to export the board to a json file format.

                            @@ -4187,7 +2691,7 @@ for detailed explanations

                            -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the ID of the board we are exporting

                            Responses

                            @@ -4212,1393 +2716,6 @@ for detailed explanations

                            To perform this operation, you must be authenticated by means of one of the following methods: UserSecurity -

                            copy_board

                            -

                            -
                            -

                            Code samples

                            -
                            -
                            # You can also use wget
                            -curl -X POST /api/boards/{board}/copy \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            -
                            -
                            -
                            POST /api/boards/{board}/copy HTTP/1.1
                            -
                            -Content-Type: multipart/form-data
                            -Accept: application/json
                            -
                            -
                            -
                            const inputBody = '{
                            -  "title": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/copy',
                            -{
                            -  method: 'POST',
                            -  body: inputBody,
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "title": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/copy',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            -
                            -headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            -}
                            -
                            -result = RestClient.post '/api/boards/{board}/copy',
                            -  params: {
                            -  }, headers: headers
                            -
                            -p JSON.parse(result)
                            -
                            -
                            -
                            import requests
                            -headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            -}
                            -
                            -r = requests.post('/api/boards/{board}/copy', headers = headers)
                            -
                            -print(r.json())
                            -
                            -
                            -
                            URL obj = new URL("/api/boards/{board}/copy");
                            -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            -int responseCode = con.getResponseCode();
                            -BufferedReader in = new BufferedReader(
                            -    new InputStreamReader(con.getInputStream()));
                            -String inputLine;
                            -StringBuffer response = new StringBuffer();
                            -while ((inputLine = in.readLine()) != null) {
                            -    response.append(inputLine);
                            -}
                            -in.close();
                            -System.out.println(response.toString());
                            -
                            -
                            -
                            package main
                            -
                            -import (
                            -       "bytes"
                            -       "net/http"
                            -)
                            -
                            -func main() {
                            -
                            -    headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            -    }
                            -
                            -    data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/copy", data)
                            -    req.Header = headers
                            -
                            -    client := &http.Client{}
                            -    resp, err := client.Do(req)
                            -    // ...
                            -}
                            -
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/copy', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                            -
                            -

                            POST /api/boards/{board}/copy

                            -

                            Copy a board to a new one

                            -

                            If your are board admin or wekan admin, this copies the -given board to a new one.

                            -
                            -

                            Body parameter

                            -
                            -
                            title: string
                            -
                            -
                            -

                            Parameters

                            -
                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameInTypeRequiredDescription
                            boardpathstringtruethe board
                            bodybodyobjecttruenone
                            » titlebodystringtruethe title of the new board (default to old one)
                            -

                            Detailed descriptions

                            -

                            board: the board

                            -
                            -

                            Example responses

                            -
                            -
                            -

                            200 Response

                            -
                            -
                            "string"
                            -
                            -

                            Responses

                            - - - - - - - - - - - - - - - - - -
                            StatusMeaningDescriptionSchema
                            200OK200 responsestring
                            - -

                            add_board_label

                            -

                            -
                            -

                            Code samples

                            -
                            -
                            # You can also use wget
                            -curl -X PUT /api/boards/{board}/labels \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            -
                            -
                            -
                            PUT /api/boards/{board}/labels HTTP/1.1
                            -
                            -Content-Type: multipart/form-data
                            -Accept: application/json
                            -
                            -
                            -
                            const inputBody = '{
                            -  "label": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/labels',
                            -{
                            -  method: 'PUT',
                            -  body: inputBody,
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "label": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/labels',
                            -{
                            -  method: 'PUT',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            -
                            -headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            -}
                            -
                            -result = RestClient.put '/api/boards/{board}/labels',
                            -  params: {
                            -  }, headers: headers
                            -
                            -p JSON.parse(result)
                            -
                            -
                            -
                            import requests
                            -headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            -}
                            -
                            -r = requests.put('/api/boards/{board}/labels', headers = headers)
                            -
                            -print(r.json())
                            -
                            -
                            -
                            URL obj = new URL("/api/boards/{board}/labels");
                            -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("PUT");
                            -int responseCode = con.getResponseCode();
                            -BufferedReader in = new BufferedReader(
                            -    new InputStreamReader(con.getInputStream()));
                            -String inputLine;
                            -StringBuffer response = new StringBuffer();
                            -while ((inputLine = in.readLine()) != null) {
                            -    response.append(inputLine);
                            -}
                            -in.close();
                            -System.out.println(response.toString());
                            -
                            -
                            -
                            package main
                            -
                            -import (
                            -       "bytes"
                            -       "net/http"
                            -)
                            -
                            -func main() {
                            -
                            -    headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            -    }
                            -
                            -    data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("PUT", "/api/boards/{board}/labels", data)
                            -    req.Header = headers
                            -
                            -    client := &http.Client{}
                            -    resp, err := client.Do(req)
                            -    // ...
                            -}
                            -
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('PUT','/api/boards/{board}/labels', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                            -
                            -

                            PUT /api/boards/{board}/labels

                            -

                            Add a label to a board

                            -

                            If the board doesn't have the name/color label, this function -adds the label to the board.

                            -
                            -

                            Body parameter

                            -
                            -
                            label: string
                            -
                            -
                            -

                            Parameters

                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameInTypeRequiredDescription
                            boardpathstringtruethe board
                            bodybodyobjecttruenone
                            » labelbodystringtruethe label value
                            -

                            Detailed descriptions

                            -

                            board: the board

                            -
                            -

                            Example responses

                            -
                            -
                            -

                            200 Response

                            -
                            -
                            "string"
                            -
                            -

                            Responses

                            - - - - - - - - - - - - - - - - - -
                            StatusMeaningDescriptionSchema
                            200OK200 responsestring
                            - -

                            set_board_member_permission

                            -

                            -
                            -

                            Code samples

                            -
                            -
                            # You can also use wget
                            -curl -X POST /api/boards/{board}/members/{member} \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Authorization: API_KEY'
                            -
                            -
                            -
                            POST /api/boards/{board}/members/{member} HTTP/1.1
                            -
                            -Content-Type: multipart/form-data
                            -
                            -
                            -
                            const inputBody = '{
                            -  "isAdmin": true,
                            -  "isNoComments": true,
                            -  "isCommentOnly": true,
                            -  "isWorker": true
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/members/{member}',
                            -{
                            -  method: 'POST',
                            -  body: inputBody,
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "isAdmin": true,
                            -  "isNoComments": true,
                            -  "isCommentOnly": true,
                            -  "isWorker": true
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/members/{member}',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            -
                            -headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Authorization' => 'API_KEY'
                            -}
                            -
                            -result = RestClient.post '/api/boards/{board}/members/{member}',
                            -  params: {
                            -  }, headers: headers
                            -
                            -p JSON.parse(result)
                            -
                            -
                            -
                            import requests
                            -headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Authorization': 'API_KEY'
                            -}
                            -
                            -r = requests.post('/api/boards/{board}/members/{member}', headers = headers)
                            -
                            -print(r.json())
                            -
                            -
                            -
                            URL obj = new URL("/api/boards/{board}/members/{member}");
                            -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            -int responseCode = con.getResponseCode();
                            -BufferedReader in = new BufferedReader(
                            -    new InputStreamReader(con.getInputStream()));
                            -String inputLine;
                            -StringBuffer response = new StringBuffer();
                            -while ((inputLine = in.readLine()) != null) {
                            -    response.append(inputLine);
                            -}
                            -in.close();
                            -System.out.println(response.toString());
                            -
                            -
                            -
                            package main
                            -
                            -import (
                            -       "bytes"
                            -       "net/http"
                            -)
                            -
                            -func main() {
                            -
                            -    headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Authorization": []string{"API_KEY"},
                            -    }
                            -
                            -    data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/members/{member}", data)
                            -    req.Header = headers
                            -
                            -    client := &http.Client{}
                            -    resp, err := client.Do(req)
                            -    // ...
                            -}
                            -
                            -
                            -
                             'multipart/form-data',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/members/{member}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                            -
                            -

                            POST /api/boards/{board}/members/{member}

                            -

                            Change the permission of a member of a board

                            -
                            -

                            Body parameter

                            -
                            -
                            isAdmin: true
                            -isNoComments: true
                            -isCommentOnly: true
                            -isWorker: true
                            -
                            -
                            -

                            Parameters

                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameInTypeRequiredDescription
                            boardpathstringtruethe ID of the board that we are changing
                            memberpathstringtruethe ID of the user to change permissions
                            bodybodyobjecttruenone
                            » isAdminbodybooleantrueadmin capability
                            » isNoCommentsbodybooleantrueNoComments capability
                            » isCommentOnlybodybooleantrueCommentsOnly capability
                            » isWorkerbodybooleantrueWorker capability
                            -

                            Detailed descriptions

                            -

                            board: the ID of the board that we are changing

                            -

                            member: the ID of the user to change permissions

                            -

                            Responses

                            - - - - - - - - - - - - - - - - - -
                            StatusMeaningDescriptionSchema
                            200OK200 responseNone
                            - -

                            update_board_title

                            -

                            -
                            -

                            Code samples

                            -
                            -
                            # You can also use wget
                            -curl -X PUT /api/boards/{board}/title \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Authorization: API_KEY'
                            -
                            -
                            -
                            PUT /api/boards/{board}/title HTTP/1.1
                            -
                            -Content-Type: multipart/form-data
                            -
                            -
                            -
                            const inputBody = '{
                            -  "title": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/title',
                            -{
                            -  method: 'PUT',
                            -  body: inputBody,
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "title": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/title',
                            -{
                            -  method: 'PUT',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            -
                            -headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Authorization' => 'API_KEY'
                            -}
                            -
                            -result = RestClient.put '/api/boards/{board}/title',
                            -  params: {
                            -  }, headers: headers
                            -
                            -p JSON.parse(result)
                            -
                            -
                            -
                            import requests
                            -headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Authorization': 'API_KEY'
                            -}
                            -
                            -r = requests.put('/api/boards/{board}/title', headers = headers)
                            -
                            -print(r.json())
                            -
                            -
                            -
                            URL obj = new URL("/api/boards/{board}/title");
                            -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("PUT");
                            -int responseCode = con.getResponseCode();
                            -BufferedReader in = new BufferedReader(
                            -    new InputStreamReader(con.getInputStream()));
                            -String inputLine;
                            -StringBuffer response = new StringBuffer();
                            -while ((inputLine = in.readLine()) != null) {
                            -    response.append(inputLine);
                            -}
                            -in.close();
                            -System.out.println(response.toString());
                            -
                            -
                            -
                            package main
                            -
                            -import (
                            -       "bytes"
                            -       "net/http"
                            -)
                            -
                            -func main() {
                            -
                            -    headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Authorization": []string{"API_KEY"},
                            -    }
                            -
                            -    data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("PUT", "/api/boards/{board}/title", data)
                            -    req.Header = headers
                            -
                            -    client := &http.Client{}
                            -    resp, err := client.Do(req)
                            -    // ...
                            -}
                            -
                            -
                            -
                             'multipart/form-data',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('PUT','/api/boards/{board}/title', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                            -
                            -

                            PUT /api/boards/{board}/title

                            -

                            Update the title of a board

                            -
                            -

                            Body parameter

                            -
                            -
                            title: string
                            -
                            -
                            -

                            Parameters

                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameInTypeRequiredDescription
                            boardpathstringtruethe ID of the board to update
                            bodybodyobjecttruenone
                            » titlebodystringtruethe new title for the board
                            -

                            Detailed descriptions

                            -

                            board: the ID of the board to update

                            -

                            Responses

                            - - - - - - - - - - - - - - - - - -
                            StatusMeaningDescriptionSchema
                            200OK200 responseNone
                            - -

                            get_boards_count

                            -

                            -
                            -

                            Code samples

                            -
                            -
                            # You can also use wget
                            -curl -X GET /api/boards_count \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            -
                            -
                            -
                            GET /api/boards_count HTTP/1.1
                            -
                            -Accept: application/json
                            -
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards_count',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards_count',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            -
                            -headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            -}
                            -
                            -result = RestClient.get '/api/boards_count',
                            -  params: {
                            -  }, headers: headers
                            -
                            -p JSON.parse(result)
                            -
                            -
                            -
                            import requests
                            -headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            -}
                            -
                            -r = requests.get('/api/boards_count', headers = headers)
                            -
                            -print(r.json())
                            -
                            -
                            -
                            URL obj = new URL("/api/boards_count");
                            -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            -int responseCode = con.getResponseCode();
                            -BufferedReader in = new BufferedReader(
                            -    new InputStreamReader(con.getInputStream()));
                            -String inputLine;
                            -StringBuffer response = new StringBuffer();
                            -while ((inputLine = in.readLine()) != null) {
                            -    response.append(inputLine);
                            -}
                            -in.close();
                            -System.out.println(response.toString());
                            -
                            -
                            -
                            package main
                            -
                            -import (
                            -       "bytes"
                            -       "net/http"
                            -)
                            -
                            -func main() {
                            -
                            -    headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            -    }
                            -
                            -    data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards_count", data)
                            -    req.Header = headers
                            -
                            -    client := &http.Client{}
                            -    resp, err := client.Do(req)
                            -    // ...
                            -}
                            -
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards_count', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                            -
                            -

                            GET /api/boards_count

                            -

                            Get public and private boards count

                            -
                            -

                            Example responses

                            -
                            -
                            -

                            200 Response

                            -
                            -
                            {
                            -  "private": 0,
                            -  "public": 0
                            -}
                            -
                            -

                            Responses

                            - - - - - - - - - - - - - - - - - -
                            StatusMeaningDescriptionSchema
                            200OK200 responseInline
                            -

                            Response Schema

                            -

                            Status Code 200

                            - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameTypeRequiredRestrictionsDescription
                            » privateintegerfalsenonenone
                            » publicintegerfalsenonenone
                            - -

                            get_boards_from_user

                            -

                            -
                            -

                            Code samples

                            -
                            -
                            # You can also use wget
                            -curl -X GET /api/users/{user}/boards \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            -
                            -
                            -
                            GET /api/users/{user}/boards HTTP/1.1
                            -
                            -Accept: application/json
                            -
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/users/{user}/boards',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/users/{user}/boards',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            -
                            -headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            -}
                            -
                            -result = RestClient.get '/api/users/{user}/boards',
                            -  params: {
                            -  }, headers: headers
                            -
                            -p JSON.parse(result)
                            -
                            -
                            -
                            import requests
                            -headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            -}
                            -
                            -r = requests.get('/api/users/{user}/boards', headers = headers)
                            -
                            -print(r.json())
                            -
                            -
                            -
                            URL obj = new URL("/api/users/{user}/boards");
                            -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            -int responseCode = con.getResponseCode();
                            -BufferedReader in = new BufferedReader(
                            -    new InputStreamReader(con.getInputStream()));
                            -String inputLine;
                            -StringBuffer response = new StringBuffer();
                            -while ((inputLine = in.readLine()) != null) {
                            -    response.append(inputLine);
                            -}
                            -in.close();
                            -System.out.println(response.toString());
                            -
                            -
                            -
                            package main
                            -
                            -import (
                            -       "bytes"
                            -       "net/http"
                            -)
                            -
                            -func main() {
                            -
                            -    headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            -    }
                            -
                            -    data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/users/{user}/boards", data)
                            -    req.Header = headers
                            -
                            -    client := &http.Client{}
                            -    resp, err := client.Do(req)
                            -    // ...
                            -}
                            -
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/users/{user}/boards', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                            -
                            -

                            GET /api/users/{user}/boards

                            -

                            Get all boards attached to a user

                            -

                            Parameters

                            - - - - - - - - - - - - - - - - - - - -
                            NameInTypeRequiredDescription
                            userpathstringtruethe ID of the user to retrieve the data
                            -

                            Detailed descriptions

                            -

                            user: the ID of the user to retrieve the data

                            -
                            -

                            Example responses

                            -
                            -
                            -

                            200 Response

                            -
                            -
                            [
                            -  {
                            -    "_id": "string",
                            -    "title": "string"
                            -  }
                            -]
                            -
                            -

                            Responses

                            - - - - - - - - - - - - - - - - - -
                            StatusMeaningDescriptionSchema
                            200OK200 responseInline
                            -

                            Response Schema

                            -

                            Status Code 200

                            - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameTypeRequiredRestrictionsDescription
                            » _idstringfalsenonenone
                            » titlestringfalsenonenone
                            -

                            Checklists

                            get_all_checklists

                            @@ -5607,24 +2724,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/cards/{card}/checklists \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/cards/{card}/checklists HTTP/1.1
                            +
                            GET /api/boards/{board}/cards/{card}/checklists HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/cards/{card}/checklists',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards/{card}/checklists',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards/{card}/checklists',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -5635,35 +2771,15 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards/{card}/checklists',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/cards/{card}/checklists',
                            +result = RestClient.get '/api/boards/{board}/cards/{card}/checklists',
                               params: {
                               }, headers: headers
                             
                            @@ -5672,18 +2788,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/cards/{card}/checklists', headers = headers)
                            +r = requests.get('/api/boards/{board}/cards/{card}/checklists', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists");
                            +
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -5699,19 +2817,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -5719,31 +2838,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/cards/{card}/checklists', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/cards/{card}/checklists

                            Get the list of checklists attached to a card

                            @@ -5775,7 +2869,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            card: the card ID

                            @@ -5786,8 +2880,8 @@ System.out.println(response.toString());
                            [
                               {
                            -    "_id": "string",
                            -    "title": "string"
                            +    "_id": "string",
                            +    "title": "string"
                               }
                             ]
                             
                            @@ -5850,30 +2944,50 @@ UserSecurity
                            # You can also use wget
                             curl -X POST /api/boards/{board}/cards/{card}/checklists \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            POST /api/boards/{board}/cards/{card}/checklists HTTP/1.1
                            +
                            POST /api/boards/{board}/cards/{card}/checklists HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "title": "string",
                            -  "items": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/cards/{card}/checklists',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards/{card}/checklists',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "title": "string",
                            +  "items": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards/{card}/checklists',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -5884,40 +2998,16 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "title": "string",
                            -  "items": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards/{card}/checklists',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.post '/api/boards/{board}/cards/{card}/checklists',
                            +result = RestClient.post '/api/boards/{board}/cards/{card}/checklists',
                               params: {
                               }, headers: headers
                             
                            @@ -5926,19 +3016,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.post('/api/boards/{board}/cards/{card}/checklists', headers = headers)
                            +r = requests.post('/api/boards/{board}/cards/{card}/checklists', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists");
                            +
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -5954,20 +3046,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/checklists", data)
                            +    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/checklists", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -5975,32 +3068,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/cards/{card}/checklists', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /api/boards/{board}/cards/{card}/checklists

                            create a new checklist

                            @@ -6041,7 +3108,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -6060,7 +3127,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            card: the card ID

                            @@ -6070,7 +3137,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -6125,24 +3192,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/cards/{card}/checklists/{checklist} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
                            +
                            GET /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -6153,35 +3239,15 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}',
                            +result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}',
                               params: {
                               }, headers: headers
                             
                            @@ -6190,18 +3256,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/cards/{card}/checklists/{checklist}', headers = headers)
                            +r = requests.get('/api/boards/{board}/cards/{card}/checklists/{checklist}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}");
                            +
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -6217,19 +3285,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists/{checklist}", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists/{checklist}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -6237,31 +3306,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/cards/{card}/checklists/{checklist}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/cards/{card}/checklists/{checklist}

                            Get a checklist

                            @@ -6300,7 +3344,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            card: the card ID

                            checklist: the ID of the checklist

                            @@ -6311,16 +3355,16 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "cardId": "string",
                            -  "title": "string",
                            -  "finishedAt": "string",
                            -  "createdAt": "string",
                            -  "sort": 0,
                            -  "items": [
                            +  "cardId": "string",
                            +  "title": "string",
                            +  "finishedAt": "string",
                            +  "createdAt": "string",
                            +  "sort": 0,
                            +  "items": [
                                 {
                            -      "_id": "string",
                            -      "title": "string",
                            -      "isFinished": true
                            +      "_id": "string",
                            +      "title": "string",
                            +      "isFinished": true
                                 }
                               ]
                             }
                            @@ -6433,24 +3477,43 @@ UserSecurity
                             
                             
                            # You can also use wget
                             curl -X DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
                            +
                            DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}',
                            +  method: 'delete',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
                             {
                            -  method: 'DELETE',
                            +  method: 'DELETE',
                             
                               headers: headers
                             })
                            @@ -6461,35 +3524,15 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
                            -{
                            -  method: 'DELETE',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}',
                            +result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}',
                               params: {
                               }, headers: headers
                             
                            @@ -6498,18 +3541,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.delete('/api/boards/{board}/cards/{card}/checklists/{checklist}', headers = headers)
                            +r = requests.delete('/api/boards/{board}/cards/{card}/checklists/{checklist}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}");
                            +
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("DELETE");
                            +con.setRequestMethod("DELETE");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -6525,19 +3570,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/checklists/{checklist}", data)
                            +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/checklists/{checklist}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -6545,31 +3591,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('DELETE','/api/boards/{board}/cards/{card}/checklists/{checklist}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}

                            Delete a checklist

                            @@ -6609,7 +3630,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            card: the card ID

                            checklist: the ID of the checklist to remove

                            @@ -6620,7 +3641,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -6676,29 +3697,49 @@ UserSecurity
                            # You can also use wget
                             curl -X POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items HTTP/1.1
                            +
                            POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "title": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "title": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -6709,39 +3750,16 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "title": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.post '/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
                            +result = RestClient.post '/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
                               params: {
                               }, headers: headers
                             
                            @@ -6750,19 +3768,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.post('/api/boards/{board}/cards/{card}/checklists/{checklist}/items', headers = headers)
                            +r = requests.post('/api/boards/{board}/cards/{card}/checklists/{checklist}/items', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items");
                            +
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -6778,20 +3798,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items", data)
                            +    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -6799,32 +3820,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/cards/{card}/checklists/{checklist}/items', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items

                            add a new item to a checklist

                            @@ -6871,7 +3866,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -6883,7 +3878,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            card: the card ID

                            checklist: the ID of the checklist

                            @@ -6894,7 +3889,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -6949,24 +3944,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
                            +
                            GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -6977,35 +3991,15 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                            +result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                               params: {
                               }, headers: headers
                             
                            @@ -7014,18 +4008,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', headers = headers)
                            +r = requests.get('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
                            +
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -7041,19 +4037,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -7061,31 +4058,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}

                            Get a checklist item

                            @@ -7131,7 +4103,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            card: the card ID

                            checklist: the checklist ID

                            @@ -7143,13 +4115,13 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "title": "string",
                            -  "sort": 0,
                            -  "isFinished": true,
                            -  "checklistId": "string",
                            -  "cardId": "string",
                            -  "createdAt": "string",
                            -  "modifiedAt": "string"
                            +  "title": "string",
                            +  "sort": 0,
                            +  "isFinished": true,
                            +  "checklistId": "string",
                            +  "cardId": "string",
                            +  "createdAt": "string",
                            +  "modifiedAt": "string"
                             }
                             

                            Responses

                            @@ -7182,30 +4154,50 @@ UserSecurity
                            # You can also use wget
                             curl -X PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
                            +
                            PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "isFinished": "string",
                            -  "title": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                            +  method: 'put',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "isFinished": "string",
                            +  "title": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                             {
                            -  method: 'PUT',
                            +  method: 'PUT',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -7216,40 +4208,16 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "isFinished": "string",
                            -  "title": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                            -{
                            -  method: 'PUT',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.put '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                            +result = RestClient.put '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                               params: {
                               }, headers: headers
                             
                            @@ -7258,19 +4226,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.put('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', headers = headers)
                            +r = requests.put('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
                            +
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("PUT");
                            +con.setRequestMethod("PUT");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -7286,20 +4256,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("PUT", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
                            +    req, err := http.NewRequest("PUT", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -7307,32 +4278,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('PUT','/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}

                            Edit a checklist item

                            @@ -7406,7 +4351,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            card: the card ID

                            checklist: the checklist ID

                            @@ -7418,7 +4363,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -7473,24 +4418,43 @@ UserSecurity
                            # You can also use wget
                             curl -X DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
                            +
                            DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                            +  method: 'delete',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                             {
                            -  method: 'DELETE',
                            +  method: 'DELETE',
                             
                               headers: headers
                             })
                            @@ -7501,35 +4465,15 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                            -{
                            -  method: 'DELETE',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                            +result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                               params: {
                               }, headers: headers
                             
                            @@ -7538,18 +4482,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.delete('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', headers = headers)
                            +r = requests.delete('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
                            +
                            URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("DELETE");
                            +con.setRequestMethod("DELETE");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -7565,19 +4511,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
                            +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -7585,31 +4532,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('DELETE','/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}

                            Delete a checklist item

                            @@ -7656,7 +4578,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            card: the card ID

                            checklist: the checklist ID

                            @@ -7668,7 +4590,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -7724,24 +4646,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/cards/{card}/comments \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/cards/{card}/comments HTTP/1.1
                            +
                            GET /api/boards/{board}/cards/{card}/comments HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/cards/{card}/comments',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards/{card}/comments',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards/{card}/comments',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -7752,35 +4693,15 @@ fetch('/api/boards/{board}/cards/{card}/comments&
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards/{card}/comments',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/cards/{card}/comments',
                            +result = RestClient.get '/api/boards/{board}/cards/{card}/comments',
                               params: {
                               }, headers: headers
                             
                            @@ -7789,18 +4710,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/cards/{card}/comments', headers = headers)
                            +r = requests.get('/api/boards/{board}/cards/{card}/comments', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards/{card}/comments");
                            +
                            URL obj = new URL("/api/boards/{board}/cards/{card}/comments");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -7816,19 +4739,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/comments", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/comments", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -7836,31 +4760,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/cards/{card}/comments', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/cards/{card}/comments

                            Get all comments attached to a card

                            @@ -7892,7 +4791,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID of the card

                            card: the ID of the card

                            @@ -7903,9 +4802,9 @@ System.out.println(response.toString());
                            [
                               {
                            -    "_id": "string",
                            -    "comment": "string",
                            -    "authorId": "string"
                            +    "_id": "string",
                            +    "comment": "string",
                            +    "authorId": "string"
                               }
                             ]
                             
                            @@ -7975,30 +4874,50 @@ UserSecurity
                            # You can also use wget
                             curl -X POST /api/boards/{board}/cards/{card}/comments \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            POST /api/boards/{board}/cards/{card}/comments HTTP/1.1
                            +
                            POST /api/boards/{board}/cards/{card}/comments HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "authorId": "string",
                            -  "comment": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/cards/{card}/comments',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards/{card}/comments',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "authorId": "string",
                            +  "comment": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards/{card}/comments',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -8009,40 +4928,16 @@ fetch('/api/boards/{board}/cards/{card}/comments&
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "authorId": "string",
                            -  "comment": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards/{card}/comments',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.post '/api/boards/{board}/cards/{card}/comments',
                            +result = RestClient.post '/api/boards/{board}/cards/{card}/comments',
                               params: {
                               }, headers: headers
                             
                            @@ -8051,19 +4946,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.post('/api/boards/{board}/cards/{card}/comments', headers = headers)
                            +r = requests.post('/api/boards/{board}/cards/{card}/comments', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards/{card}/comments");
                            +
                            URL obj = new URL("/api/boards/{board}/cards/{card}/comments");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -8079,20 +4976,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/comments", data)
                            +    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/comments", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -8100,32 +4998,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/cards/{card}/comments', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /api/boards/{board}/cards/{card}/comments

                            Add a comment on a card

                            @@ -8166,7 +5038,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -8185,7 +5057,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID of the card

                            card: the ID of the card

                            @@ -8195,7 +5067,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -8250,24 +5122,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/cards/{card}/comments/{comment} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
                            +
                            GET /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards/{card}/comments/{comment}',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -8278,35 +5169,15 @@ fetch('/api/boards/{board}/cards/{card}/comments/
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/cards/{card}/comments/{comment}',
                            +result = RestClient.get '/api/boards/{board}/cards/{card}/comments/{comment}',
                               params: {
                               }, headers: headers
                             
                            @@ -8315,18 +5186,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/cards/{card}/comments/{comment}', headers = headers)
                            +r = requests.get('/api/boards/{board}/cards/{card}/comments/{comment}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards/{card}/comments/{comment}");
                            +
                            URL obj = new URL("/api/boards/{board}/cards/{card}/comments/{comment}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -8342,19 +5215,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/comments/{comment}", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/comments/{comment}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -8362,31 +5236,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/cards/{card}/comments/{comment}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/cards/{card}/comments/{comment}

                            Get a comment on a card

                            @@ -8425,7 +5274,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID of the card

                            card: the ID of the card

                            comment: the ID of the comment to retrieve

                            @@ -8436,12 +5285,12 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "boardId": "string",
                            -  "cardId": "string",
                            -  "text": "string",
                            -  "createdAt": "string",
                            -  "modifiedAt": "string",
                            -  "userId": "string"
                            +  "boardId": "string",
                            +  "cardId": "string",
                            +  "text": "string",
                            +  "createdAt": "string",
                            +  "modifiedAt": "string",
                            +  "userId": "string"
                             }
                             

                            Responses

                            @@ -8474,24 +5323,43 @@ UserSecurity
                            # You can also use wget
                             curl -X DELETE /api/boards/{board}/cards/{card}/comments/{comment} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            DELETE /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
                            +
                            DELETE /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards/{card}/comments/{comment}',
                            +  method: 'delete',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
                             {
                            -  method: 'DELETE',
                            +  method: 'DELETE',
                             
                               headers: headers
                             })
                            @@ -8502,35 +5370,15 @@ fetch('/api/boards/{board}/cards/{card}/comments/
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
                            -{
                            -  method: 'DELETE',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.delete '/api/boards/{board}/cards/{card}/comments/{comment}',
                            +result = RestClient.delete '/api/boards/{board}/cards/{card}/comments/{comment}',
                               params: {
                               }, headers: headers
                             
                            @@ -8539,18 +5387,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.delete('/api/boards/{board}/cards/{card}/comments/{comment}', headers = headers)
                            +r = requests.delete('/api/boards/{board}/cards/{card}/comments/{comment}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards/{card}/comments/{comment}");
                            +
                            URL obj = new URL("/api/boards/{board}/cards/{card}/comments/{comment}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("DELETE");
                            +con.setRequestMethod("DELETE");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -8566,19 +5416,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/comments/{comment}", data)
                            +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/comments/{comment}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -8586,31 +5437,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('DELETE','/api/boards/{board}/cards/{card}/comments/{comment}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            DELETE /api/boards/{board}/cards/{card}/comments/{comment}

                            Delete a comment on a card

                            @@ -8649,7 +5475,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID of the card

                            card: the ID of the card

                            comment: the ID of the comment to delete

                            @@ -8660,7 +5486,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -8716,24 +5542,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue} HTTP/1.1
                            +
                            GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -8744,35 +5589,15 @@ fetch('/api/boards/{board}/cardsByCustomField/{cu
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
                            +result = RestClient.get '/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
                               params: {
                               }, headers: headers
                             
                            @@ -8781,18 +5606,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}', headers = headers)
                            +r = requests.get('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}");
                            +
                            URL obj = new URL("/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -8808,19 +5635,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -8828,31 +5656,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}

                            Get all Cards that matchs a value of a specific custom field

                            @@ -8891,7 +5694,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            customField: the list ID

                            customFieldValue: the value to look for

                            @@ -8903,11 +5706,11 @@ System.out.println(response.toString());
                            [
                               {
                            -    "_id": "string",
                            -    "title": "string",
                            -    "description": "string",
                            -    "listId": "string",
                            -    "swinlaneId": "string"
                            +    "_id": "string",
                            +    "title": "string",
                            +    "description": "string",
                            +    "listId": "string",
                            +    "swinlaneId": "string"
                               }
                             ]
                             
                            @@ -8991,24 +5794,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/cards_count \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/cards_count HTTP/1.1
                            +
                            GET /api/boards/{board}/cards_count HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/cards_count',
                            +$.ajax({
                            +  url: '/api/boards/{board}/cards_count',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/cards_count',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -9019,35 +5841,15 @@ fetch('/api/boards/{board}/cards_count'
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/cards_count',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/cards_count',
                            +result = RestClient.get '/api/boards/{board}/cards_count',
                               params: {
                               }, headers: headers
                             
                            @@ -9056,18 +5858,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/cards_count', headers = headers)
                            +r = requests.get('/api/boards/{board}/cards_count', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/cards_count");
                            +
                            URL obj = new URL("/api/boards/{board}/cards_count");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -9083,19 +5887,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards_count", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/cards_count", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -9103,31 +5908,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/cards_count', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/cards_count

                            Get a cards count to a board

                            @@ -9152,7 +5932,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            Example responses

                            @@ -9161,7 +5941,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "board_cards_count": 0
                            +  "board_cards_count": 0
                             }
                             

                            Responses

                            @@ -9216,24 +5996,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/lists/{list}/cards \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/lists/{list}/cards HTTP/1.1
                            +
                            GET /api/boards/{board}/lists/{list}/cards HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/lists/{list}/cards',
                            +$.ajax({
                            +  url: '/api/boards/{board}/lists/{list}/cards',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/lists/{list}/cards',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -9244,35 +6043,15 @@ fetch('/api/boards/{board}/lists/{list}/cards
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/lists/{list}/cards',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/lists/{list}/cards',
                            +result = RestClient.get '/api/boards/{board}/lists/{list}/cards',
                               params: {
                               }, headers: headers
                             
                            @@ -9281,18 +6060,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/lists/{list}/cards', headers = headers)
                            +r = requests.get('/api/boards/{board}/lists/{list}/cards', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards");
                            +
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -9308,19 +6089,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -9328,31 +6110,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/lists/{list}/cards', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/lists/{list}/cards

                            Get all Cards attached to a List

                            @@ -9384,7 +6141,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            list: the list ID

                            @@ -9395,9 +6152,9 @@ System.out.println(response.toString());
                            [
                               {
                            -    "_id": "string",
                            -    "title": "string",
                            -    "description": "string"
                            +    "_id": "string",
                            +    "title": "string",
                            +    "description": "string"
                               }
                             ]
                             
                            @@ -9467,34 +6224,54 @@ UserSecurity
                            # You can also use wget
                             curl -X POST /api/boards/{board}/lists/{list}/cards \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            POST /api/boards/{board}/lists/{list}/cards HTTP/1.1
                            +
                            POST /api/boards/{board}/lists/{list}/cards HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "authorId": "string",
                            -  "members": "string",
                            -  "assignees": "string",
                            -  "title": "string",
                            -  "description": "string",
                            -  "swimlaneId": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/lists/{list}/cards',
                            +$.ajax({
                            +  url: '/api/boards/{board}/lists/{list}/cards',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "authorId": "string",
                            +  "members": "string",
                            +  "assignees": "string",
                            +  "title": "string",
                            +  "description": "string",
                            +  "swimlaneId": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/lists/{list}/cards',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -9505,44 +6282,16 @@ fetch('/api/boards/{board}/lists/{list}/cards
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "authorId": "string",
                            -  "members": "string",
                            -  "assignees": "string",
                            -  "title": "string",
                            -  "description": "string",
                            -  "swimlaneId": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/lists/{list}/cards',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.post '/api/boards/{board}/lists/{list}/cards',
                            +result = RestClient.post '/api/boards/{board}/lists/{list}/cards',
                               params: {
                               }, headers: headers
                             
                            @@ -9551,19 +6300,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.post('/api/boards/{board}/lists/{list}/cards', headers = headers)
                            +r = requests.post('/api/boards/{board}/lists/{list}/cards', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards");
                            +
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -9579,20 +6330,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/lists/{list}/cards", data)
                            +    req, err := http.NewRequest("POST", "/api/boards/{board}/lists/{list}/cards", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -9600,32 +6352,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/lists/{list}/cards', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /api/boards/{board}/lists/{list}/cards

                            Create a new Card

                            @@ -9670,7 +6396,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -9717,7 +6443,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID of the new card

                            list: the list ID of the new card

                            @@ -9727,7 +6453,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -9782,24 +6508,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/lists/{list}/cards/{card} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
                            +
                            GET /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/lists/{list}/cards/{card}',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -9810,35 +6555,15 @@ fetch('/api/boards/{board}/lists/{list}/cards/{ca
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/lists/{list}/cards/{card}',
                            +result = RestClient.get '/api/boards/{board}/lists/{list}/cards/{card}',
                               params: {
                               }, headers: headers
                             
                            @@ -9847,18 +6572,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/lists/{list}/cards/{card}', headers = headers)
                            +r = requests.get('/api/boards/{board}/lists/{list}/cards/{card}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
                            +
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -9874,19 +6601,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards/{card}", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards/{card}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -9894,31 +6622,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/lists/{list}/cards/{card}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/lists/{list}/cards/{card}

                            Get a Card

                            @@ -9957,7 +6660,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            list: the list ID of the card

                            card: the card ID

                            @@ -9968,102 +6671,104 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "title": "string",
                            -  "archived": true,
                            -  "archivedAt": "string",
                            -  "parentId": "string",
                            -  "listId": "string",
                            -  "swimlaneId": "string",
                            -  "boardId": "string",
                            -  "coverId": "string",
                            -  "color": "white",
                            -  "createdAt": "string",
                            -  "modifiedAt": "string",
                            -  "customFields": [
                            +  "title": "string",
                            +  "archived": true,
                            +  "archivedAt": "string",
                            +  "parentId": "string",
                            +  "listId": "string",
                            +  "swimlaneId": "string",
                            +  "boardId": "string",
                            +  "coverId": "string",
                            +  "color": "white",
                            +  "createdAt": "string",
                            +  "modifiedAt": "string",
                            +  "customFields": [
                                 {}
                               ],
                            -  "dateLastActivity": "string",
                            -  "description": "string",
                            -  "requestedBy": "string",
                            -  "assignedBy": "string",
                            -  "labelIds": [
                            -    "string"
                            +  "dateLastActivity": "string",
                            +  "description": "string",
                            +  "requestedBy": "string",
                            +  "assignedBy": "string",
                            +  "labelIds": [
                            +    "string"
                               ],
                            -  "members": [
                            -    "string"
                            +  "members": [
                            +    "string"
                               ],
                            -  "assignees": [
                            -    "string"
                            +  "assignees": [
                            +    "string"
                               ],
                            -  "receivedAt": "string",
                            -  "startAt": "string",
                            -  "dueAt": "string",
                            -  "endAt": "string",
                            -  "spentTime": 0,
                            -  "isOvertime": true,
                            -  "userId": "string",
                            -  "sort": 0,
                            -  "subtaskSort": 0,
                            -  "type": "string",
                            -  "linkedId": "string",
                            -  "vote": {
                            -    "question": "string",
                            -    "positive": [
                            -      "string"
                            +  "receivedAt": "string",
                            +  "startAt": "string",
                            +  "dueAt": "string",
                            +  "endAt": "string",
                            +  "spentTime": 0,
                            +  "isOvertime": true,
                            +  "userId": "string",
                            +  "sort": 0,
                            +  "subtaskSort": 0,
                            +  "type": "string",
                            +  "linkedId": "string",
                            +  "vote": {
                            +    "question": "string",
                            +    "positive": [
                            +      "string"
                                 ],
                            -    "negative": [
                            -      "string"
                            +    "negative": [
                            +      "string"
                                 ],
                            -    "end": "string",
                            -    "public": true,
                            -    "allowNonBoardMembers": true
                            +    "end": "string",
                            +    "public": true,
                            +    "allowNonBoardMembers": true
                               },
                            -  "poker": {
                            -    "question": true,
                            -    "one": [
                            -      "string"
                            +  "poker": {
                            +    "question": true,
                            +    "one": [
                            +      "string"
                                 ],
                            -    "two": [
                            -      "string"
                            +    "two": [
                            +      "string"
                                 ],
                            -    "three": [
                            -      "string"
                            +    "three": [
                            +      "string"
                                 ],
                            -    "five": [
                            -      "string"
                            +    "five": [
                            +      "string"
                                 ],
                            -    "eight": [
                            -      "string"
                            +    "eight": [
                            +      "string"
                                 ],
                            -    "thirteen": [
                            -      "string"
                            +    "thirteen": [
                            +      "string"
                                 ],
                            -    "twenty": [
                            -      "string"
                            +    "twenty": [
                            +      "string"
                                 ],
                            -    "forty": [
                            -      "string"
                            +    "forty": [
                            +      "string"
                                 ],
                            -    "oneHundred": [
                            -      "string"
                            +    "oneHundred": [
                            +      "string"
                                 ],
                            -    "unsure": [
                            -      "string"
                            +    "unsure": [
                            +      "string"
                                 ],
                            -    "end": "string",
                            -    "allowNonBoardMembers": true,
                            -    "estimation": 0
                            +    "end": "string",
                            +    "allowNonBoardMembers": true,
                            +    "estimation": 0
                               },
                            -  "targetId_gantt": [
                            -    "string"
                            +  "targetId_gantt": [
                            +    "string"
                               ],
                            -  "linkType_gantt": [
                            +  "linkType_gantt": [
                                 0
                               ],
                            -  "linkId_gantt": [
                            -    "string"
                            +  "linkId_gantt": [
                            +    "string"
                               ],
                            -  "cardNumber": 0
                            +  "cardNumber": 0,
                            +  "showActivities": true,
                            +  "hideFinishedChecklistIfItemsAreHidden": true
                             }
                             

                            Responses

                            @@ -10096,54 +6801,74 @@ UserSecurity
                            # You can also use wget
                             curl -X PUT /api/boards/{board}/lists/{list}/cards/{card} \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            PUT /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
                            +
                            PUT /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "newBoardId": "string",
                            -  "newSwimlaneId": "string",
                            -  "newListId": "string",
                            -  "title": "string",
                            -  "sort": "string",
                            -  "parentId": "string",
                            -  "description": "string",
                            -  "color": "string",
                            -  "vote": {},
                            -  "poker": {},
                            -  "labelIds": "string",
                            -  "requestedBy": "string",
                            -  "assignedBy": "string",
                            -  "receivedAt": "string",
                            -  "startAt": "string",
                            -  "dueAt": "string",
                            -  "endAt": "string",
                            -  "spentTime": "string",
                            -  "isOverTime": true,
                            -  "customFields": "string",
                            -  "members": "string",
                            -  "assignees": "string",
                            -  "swimlaneId": "string",
                            -  "listId": "string",
                            -  "authorId": "string",
                            -  "archive": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/lists/{list}/cards/{card}',
                            +  method: 'put',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "newBoardId": "string",
                            +  "newSwimlaneId": "string",
                            +  "newListId": "string",
                            +  "title": "string",
                            +  "sort": "string",
                            +  "parentId": "string",
                            +  "description": "string",
                            +  "color": "string",
                            +  "vote": {},
                            +  "poker": {},
                            +  "labelIds": "string",
                            +  "requestedBy": "string",
                            +  "assignedBy": "string",
                            +  "receivedAt": "string",
                            +  "startAt": "string",
                            +  "dueAt": "string",
                            +  "endAt": "string",
                            +  "spentTime": "string",
                            +  "isOverTime": true,
                            +  "customFields": "string",
                            +  "members": "string",
                            +  "assignees": "string",
                            +  "swimlaneId": "string",
                            +  "listId": "string",
                            +  "authorId": "string",
                            +  "archive": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                             {
                            -  method: 'PUT',
                            +  method: 'PUT',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -10154,64 +6879,16 @@ fetch('/api/boards/{board}/lists/{list}/cards/{ca
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "newBoardId": "string",
                            -  "newSwimlaneId": "string",
                            -  "newListId": "string",
                            -  "title": "string",
                            -  "sort": "string",
                            -  "parentId": "string",
                            -  "description": "string",
                            -  "color": "string",
                            -  "vote": {},
                            -  "poker": {},
                            -  "labelIds": "string",
                            -  "requestedBy": "string",
                            -  "assignedBy": "string",
                            -  "receivedAt": "string",
                            -  "startAt": "string",
                            -  "dueAt": "string",
                            -  "endAt": "string",
                            -  "spentTime": "string",
                            -  "isOverTime": true,
                            -  "customFields": "string",
                            -  "members": "string",
                            -  "assignees": "string",
                            -  "swimlaneId": "string",
                            -  "listId": "string",
                            -  "authorId": "string",
                            -  "archive": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                            -{
                            -  method: 'PUT',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.put '/api/boards/{board}/lists/{list}/cards/{card}',
                            +result = RestClient.put '/api/boards/{board}/lists/{list}/cards/{card}',
                               params: {
                               }, headers: headers
                             
                            @@ -10220,19 +6897,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.put('/api/boards/{board}/lists/{list}/cards/{card}', headers = headers)
                            +r = requests.put('/api/boards/{board}/lists/{list}/cards/{card}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
                            +
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("PUT");
                            +con.setRequestMethod("PUT");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -10248,20 +6927,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("PUT", "/api/boards/{board}/lists/{list}/cards/{card}", data)
                            +    req, err := http.NewRequest("PUT", "/api/boards/{board}/lists/{list}/cards/{card}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -10269,32 +6949,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('PUT','/api/boards/{board}/lists/{list}/cards/{card}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            PUT /api/boards/{board}/lists/{list}/cards/{card}

                            Edit Fields in a Card

                            @@ -10317,8 +6971,8 @@ System.out.println(response.toString()); parentId: string description: string color: string -vote: {} -poker: {} +vote: {} +poker: {} labelIds: string requestedBy: string assignedBy: string @@ -10374,7 +7028,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -10561,7 +7215,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID of the card

                            list: the list ID of the card

                            card: the ID of the card

                            @@ -10572,7 +7226,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -10627,24 +7281,43 @@ UserSecurity
                            # You can also use wget
                             curl -X DELETE /api/boards/{board}/lists/{list}/cards/{card} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            DELETE /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
                            +
                            DELETE /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/lists/{list}/cards/{card}',
                            +  method: 'delete',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                             {
                            -  method: 'DELETE',
                            +  method: 'DELETE',
                             
                               headers: headers
                             })
                            @@ -10655,35 +7328,15 @@ fetch('/api/boards/{board}/lists/{list}/cards/{ca
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                            -{
                            -  method: 'DELETE',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.delete '/api/boards/{board}/lists/{list}/cards/{card}',
                            +result = RestClient.delete '/api/boards/{board}/lists/{list}/cards/{card}',
                               params: {
                               }, headers: headers
                             
                            @@ -10692,18 +7345,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.delete('/api/boards/{board}/lists/{list}/cards/{card}', headers = headers)
                            +r = requests.delete('/api/boards/{board}/lists/{list}/cards/{card}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
                            +
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("DELETE");
                            +con.setRequestMethod("DELETE");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -10719,19 +7374,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/lists/{list}/cards/{card}", data)
                            +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/lists/{list}/cards/{card}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -10739,31 +7395,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('DELETE','/api/boards/{board}/lists/{list}/cards/{card}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            DELETE /api/boards/{board}/lists/{list}/cards/{card}

                            Delete a card from a board

                            @@ -10804,7 +7435,7 @@ is not put in the recycle bin.

                            -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID of the card

                            list: the list ID of the card

                            card: the ID of the card

                            @@ -10815,7 +7446,7 @@ is not put in the recycle bin.

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -10870,29 +7501,49 @@ UserSecurity
                            # You can also use wget
                             curl -X POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField} \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField} HTTP/1.1
                            +
                            POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField} HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "value": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "value": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -10903,39 +7554,16 @@ fetch('/api/boards/{board}/lists/{list}/cards/{ca
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "value": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.post '/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
                            +result = RestClient.post '/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
                               params: {
                               }, headers: headers
                             
                            @@ -10944,19 +7572,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.post('/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}', headers = headers)
                            +r = requests.post('/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}");
                            +
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -10972,20 +7602,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}", data)
                            +    req, err := http.NewRequest("POST", "/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -10993,32 +7624,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}

                            Edit Custom Field in a Card

                            @@ -11073,7 +7678,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -11085,7 +7690,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID of the card

                            list: the list ID of the card

                            card: the ID of the card

                            @@ -11097,8 +7702,8 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string",
                            -  "customFields": {}
                            +  "_id": "string",
                            +  "customFields": {}
                             }
                             

                            Responses

                            @@ -11160,24 +7765,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/lists/{list}/cards_count \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/lists/{list}/cards_count HTTP/1.1
                            +
                            GET /api/boards/{board}/lists/{list}/cards_count HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/lists/{list}/cards_count',
                            +$.ajax({
                            +  url: '/api/boards/{board}/lists/{list}/cards_count',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/lists/{list}/cards_count',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -11188,35 +7812,15 @@ fetch('/api/boards/{board}/lists/{list}/cards_cou
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/lists/{list}/cards_count',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/lists/{list}/cards_count',
                            +result = RestClient.get '/api/boards/{board}/lists/{list}/cards_count',
                               params: {
                               }, headers: headers
                             
                            @@ -11225,18 +7829,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/lists/{list}/cards_count', headers = headers)
                            +r = requests.get('/api/boards/{board}/lists/{list}/cards_count', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards_count");
                            +
                            URL obj = new URL("/api/boards/{board}/lists/{list}/cards_count");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -11252,19 +7858,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards_count", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards_count", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -11272,31 +7879,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/lists/{list}/cards_count', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/lists/{list}/cards_count

                            Get a cards count to a list

                            @@ -11328,7 +7910,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            list: the List ID

                            @@ -11338,7 +7920,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "list_cards_count": 0
                            +  "list_cards_count": 0
                             }
                             

                            Responses

                            @@ -11393,24 +7975,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/swimlanes/{swimlane}/cards \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/swimlanes/{swimlane}/cards HTTP/1.1
                            +
                            GET /api/boards/{board}/swimlanes/{swimlane}/cards HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/swimlanes/{swimlane}/cards',
                            +$.ajax({
                            +  url: '/api/boards/{board}/swimlanes/{swimlane}/cards',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/swimlanes/{swimlane}/cards',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -11421,35 +8022,15 @@ fetch('/api/boards/{board}/swimlanes/{swimlane}/c
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/swimlanes/{swimlane}/cards',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}/cards',
                            +result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}/cards',
                               params: {
                               }, headers: headers
                             
                            @@ -11458,18 +8039,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/swimlanes/{swimlane}/cards', headers = headers)
                            +r = requests.get('/api/boards/{board}/swimlanes/{swimlane}/cards', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}/cards");
                            +
                            URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}/cards");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -11485,19 +8068,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes/{swimlane}/cards", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes/{swimlane}/cards", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -11505,31 +8089,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/swimlanes/{swimlane}/cards', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/swimlanes/{swimlane}/cards

                            get all cards attached to a swimlane

                            @@ -11561,7 +8120,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            swimlane: the swimlane ID

                            @@ -11572,10 +8131,10 @@ System.out.println(response.toString());
                            [
                               {
                            -    "_id": "string",
                            -    "title": "string",
                            -    "description": "string",
                            -    "listId": "string"
                            +    "_id": "string",
                            +    "title": "string",
                            +    "description": "string",
                            +    "listId": "string"
                               }
                             ]
                             
                            @@ -11653,24 +8212,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/custom-fields \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/custom-fields HTTP/1.1
                            +
                            GET /api/boards/{board}/custom-fields HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/custom-fields',
                            +$.ajax({
                            +  url: '/api/boards/{board}/custom-fields',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/custom-fields',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -11681,35 +8259,15 @@ fetch('/api/boards/{board}/custom-fields'
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/custom-fields',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/custom-fields',
                            +result = RestClient.get '/api/boards/{board}/custom-fields',
                               params: {
                               }, headers: headers
                             
                            @@ -11718,18 +8276,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/custom-fields', headers = headers)
                            +r = requests.get('/api/boards/{board}/custom-fields', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/custom-fields");
                            +
                            URL obj = new URL("/api/boards/{board}/custom-fields");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -11745,19 +8305,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/custom-fields", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/custom-fields", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -11765,31 +8326,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/custom-fields', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/custom-fields

                            Get the list of Custom Fields attached to a board

                            @@ -11822,9 +8358,9 @@ System.out.println(response.toString());
                            [
                               {
                            -    "_id": "string",
                            -    "name": "string",
                            -    "type": "string"
                            +    "_id": "string",
                            +    "name": "string",
                            +    "type": "string"
                               }
                             ]
                             
                            @@ -11894,36 +8430,56 @@ UserSecurity
                            # You can also use wget
                             curl -X POST /api/boards/{board}/custom-fields \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            POST /api/boards/{board}/custom-fields HTTP/1.1
                            +
                            POST /api/boards/{board}/custom-fields HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "name": "string",
                            -  "type": "string",
                            -  "settings": "string",
                            -  "showOnCard": true,
                            -  "automaticallyOnCard": true,
                            -  "showLabelOnMiniCard": true,
                            -  "showSumAtTopOfList": true,
                            -  "authorId": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/custom-fields',
                            +$.ajax({
                            +  url: '/api/boards/{board}/custom-fields',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "name": "string",
                            +  "type": "string",
                            +  "settings": "string",
                            +  "showOnCard": true,
                            +  "automaticallyOnCard": true,
                            +  "showLabelOnMiniCard": true,
                            +  "showSumAtTopOfList": true,
                            +  "authorId": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/custom-fields',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -11934,46 +8490,16 @@ fetch('/api/boards/{board}/custom-fields'
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "name": "string",
                            -  "type": "string",
                            -  "settings": "string",
                            -  "showOnCard": true,
                            -  "automaticallyOnCard": true,
                            -  "showLabelOnMiniCard": true,
                            -  "showSumAtTopOfList": true,
                            -  "authorId": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/custom-fields',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.post '/api/boards/{board}/custom-fields',
                            +result = RestClient.post '/api/boards/{board}/custom-fields',
                               params: {
                               }, headers: headers
                             
                            @@ -11982,19 +8508,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.post('/api/boards/{board}/custom-fields', headers = headers)
                            +r = requests.post('/api/boards/{board}/custom-fields', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/custom-fields");
                            +
                            URL obj = new URL("/api/boards/{board}/custom-fields");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -12010,20 +8538,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/custom-fields", data)
                            +    req, err := http.NewRequest("POST", "/api/boards/{board}/custom-fields", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -12031,32 +8560,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/custom-fields', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /api/boards/{board}/custom-fields

                            Create a Custom Field

                            @@ -12096,7 +8599,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -12164,7 +8667,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -12219,24 +8722,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/custom-fields/{customField} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/custom-fields/{customField} HTTP/1.1
                            +
                            GET /api/boards/{board}/custom-fields/{customField} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/custom-fields/{customField}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/custom-fields/{customField}',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/custom-fields/{customField}',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -12247,35 +8769,15 @@ fetch('/api/boards/{board}/custom-fields/{customF
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/custom-fields/{customField}',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/custom-fields/{customField}',
                            +result = RestClient.get '/api/boards/{board}/custom-fields/{customField}',
                               params: {
                               }, headers: headers
                             
                            @@ -12284,18 +8786,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/custom-fields/{customField}', headers = headers)
                            +r = requests.get('/api/boards/{board}/custom-fields/{customField}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
                            +
                            URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -12311,19 +8815,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/custom-fields/{customField}", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/custom-fields/{customField}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -12331,31 +8836,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/custom-fields/{customField}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/custom-fields/{customField}

                            Get a Custom Fields attached to a board

                            @@ -12387,7 +8867,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            customField: the ID of the custom field

                            Example responses

                            @@ -12397,8 +8877,8 @@ System.out.println(response.toString());
                            [
                               {
                            -    "_id": "string",
                            -    "boardIds": "string"
                            +    "_id": "string",
                            +    "boardIds": "string"
                               }
                             ]
                             
                            @@ -12461,36 +8941,56 @@ UserSecurity
                            # You can also use wget
                             curl -X PUT /api/boards/{board}/custom-fields/{customField} \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            PUT /api/boards/{board}/custom-fields/{customField} HTTP/1.1
                            +
                            PUT /api/boards/{board}/custom-fields/{customField} HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "name": "string",
                            -  "type": "string",
                            -  "settings": "string",
                            -  "showOnCard": true,
                            -  "automaticallyOnCard": true,
                            -  "alwaysOnCard": "string",
                            -  "showLabelOnMiniCard": true,
                            -  "showSumAtTopOfList": true
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/custom-fields/{customField}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/custom-fields/{customField}',
                            +  method: 'put',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "name": "string",
                            +  "type": "string",
                            +  "settings": "string",
                            +  "showOnCard": true,
                            +  "automaticallyOnCard": true,
                            +  "alwaysOnCard": "string",
                            +  "showLabelOnMiniCard": true,
                            +  "showSumAtTopOfList": true
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/custom-fields/{customField}',
                             {
                            -  method: 'PUT',
                            +  method: 'PUT',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -12501,46 +9001,16 @@ fetch('/api/boards/{board}/custom-fields/{customF
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "name": "string",
                            -  "type": "string",
                            -  "settings": "string",
                            -  "showOnCard": true,
                            -  "automaticallyOnCard": true,
                            -  "alwaysOnCard": "string",
                            -  "showLabelOnMiniCard": true,
                            -  "showSumAtTopOfList": true
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/custom-fields/{customField}',
                            -{
                            -  method: 'PUT',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.put '/api/boards/{board}/custom-fields/{customField}',
                            +result = RestClient.put '/api/boards/{board}/custom-fields/{customField}',
                               params: {
                               }, headers: headers
                             
                            @@ -12549,19 +9019,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.put('/api/boards/{board}/custom-fields/{customField}', headers = headers)
                            +r = requests.put('/api/boards/{board}/custom-fields/{customField}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
                            +
                            URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("PUT");
                            +con.setRequestMethod("PUT");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -12577,20 +9049,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("PUT", "/api/boards/{board}/custom-fields/{customField}", data)
                            +    req, err := http.NewRequest("PUT", "/api/boards/{board}/custom-fields/{customField}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -12598,32 +9071,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('PUT','/api/boards/{board}/custom-fields/{customField}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            PUT /api/boards/{board}/custom-fields/{customField}

                            Update a Custom Field

                            @@ -12670,7 +9117,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -12738,7 +9185,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -12793,24 +9240,43 @@ UserSecurity
                            # You can also use wget
                             curl -X DELETE /api/boards/{board}/custom-fields/{customField} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            DELETE /api/boards/{board}/custom-fields/{customField} HTTP/1.1
                            +
                            DELETE /api/boards/{board}/custom-fields/{customField} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/custom-fields/{customField}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/custom-fields/{customField}',
                            +  method: 'delete',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/custom-fields/{customField}',
                             {
                            -  method: 'DELETE',
                            +  method: 'DELETE',
                             
                               headers: headers
                             })
                            @@ -12821,35 +9287,15 @@ fetch('/api/boards/{board}/custom-fields/{customF
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/custom-fields/{customField}',
                            -{
                            -  method: 'DELETE',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.delete '/api/boards/{board}/custom-fields/{customField}',
                            +result = RestClient.delete '/api/boards/{board}/custom-fields/{customField}',
                               params: {
                               }, headers: headers
                             
                            @@ -12858,18 +9304,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.delete('/api/boards/{board}/custom-fields/{customField}', headers = headers)
                            +r = requests.delete('/api/boards/{board}/custom-fields/{customField}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
                            +
                            URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("DELETE");
                            +con.setRequestMethod("DELETE");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -12885,19 +9333,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/custom-fields/{customField}", data)
                            +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/custom-fields/{customField}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -12905,31 +9354,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('DELETE','/api/boards/{board}/custom-fields/{customField}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            DELETE /api/boards/{board}/custom-fields/{customField}

                            Delete a Custom Fields attached to a board

                            @@ -12962,7 +9386,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            customField: the ID of the custom field

                            Example responses

                            @@ -12971,7 +9395,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -13026,29 +9450,49 @@ UserSecurity
                            # You can also use wget
                             curl -X POST /api/boards/{board}/custom-fields/{customField}/dropdown-items \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            POST /api/boards/{board}/custom-fields/{customField}/dropdown-items HTTP/1.1
                            +
                            POST /api/boards/{board}/custom-fields/{customField}/dropdown-items HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "items": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items',
                            +$.ajax({
                            +  url: '/api/boards/{board}/custom-fields/{customField}/dropdown-items',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "items": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -13059,39 +9503,16 @@ fetch('/api/boards/{board}/custom-fields/{customF
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "items": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.post '/api/boards/{board}/custom-fields/{customField}/dropdown-items',
                            +result = RestClient.post '/api/boards/{board}/custom-fields/{customField}/dropdown-items',
                               params: {
                               }, headers: headers
                             
                            @@ -13100,19 +9521,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.post('/api/boards/{board}/custom-fields/{customField}/dropdown-items', headers = headers)
                            +r = requests.post('/api/boards/{board}/custom-fields/{customField}/dropdown-items', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items");
                            +
                            URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -13128,20 +9551,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/custom-fields/{customField}/dropdown-items", data)
                            +    req, err := http.NewRequest("POST", "/api/boards/{board}/custom-fields/{customField}/dropdown-items", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -13149,32 +9573,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/custom-fields/{customField}/dropdown-items', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /api/boards/{board}/custom-fields/{customField}/dropdown-items

                            Update a Custom Field's dropdown items

                            @@ -13233,7 +9631,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -13288,29 +9686,49 @@ UserSecurity
                            # You can also use wget
                             curl -X PUT /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            PUT /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} HTTP/1.1
                            +
                            PUT /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "name": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                            +  method: 'put',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "name": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                             {
                            -  method: 'PUT',
                            +  method: 'PUT',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -13321,39 +9739,16 @@ fetch('/api/boards/{board}/custom-fields/{customF
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "name": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                            -{
                            -  method: 'PUT',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.put '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                            +result = RestClient.put '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                               params: {
                               }, headers: headers
                             
                            @@ -13362,19 +9757,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.put('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', headers = headers)
                            +r = requests.put('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}");
                            +
                            URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("PUT");
                            +con.setRequestMethod("PUT");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -13390,20 +9787,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("PUT", "/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}", data)
                            +    req, err := http.NewRequest("PUT", "/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -13411,32 +9809,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('PUT','/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            PUT /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}

                            Update a Custom Field's dropdown item

                            @@ -13483,7 +9855,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -13502,7 +9874,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -13557,24 +9929,43 @@ UserSecurity
                            # You can also use wget
                             curl -X DELETE /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            DELETE /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} HTTP/1.1
                            +
                            DELETE /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                            +  method: 'delete',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                             {
                            -  method: 'DELETE',
                            +  method: 'DELETE',
                             
                               headers: headers
                             })
                            @@ -13585,35 +9976,15 @@ fetch('/api/boards/{board}/custom-fields/{customF
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                            -{
                            -  method: 'DELETE',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.delete '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                            +result = RestClient.delete '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                               params: {
                               }, headers: headers
                             
                            @@ -13622,18 +9993,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.delete('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', headers = headers)
                            +r = requests.delete('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}");
                            +
                            URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("DELETE");
                            +con.setRequestMethod("DELETE");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -13649,19 +10022,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}", data)
                            +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -13669,31 +10043,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('DELETE','/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            DELETE /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}

                            Update a Custom Field's dropdown items

                            @@ -13739,7 +10088,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -13795,24 +10144,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/integrations \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/integrations HTTP/1.1
                            +
                            GET /api/boards/{board}/integrations HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/integrations',
                            +$.ajax({
                            +  url: '/api/boards/{board}/integrations',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/integrations',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -13823,35 +10191,15 @@ fetch('/api/boards/{board}/integrations'
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/integrations',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/integrations',
                            +result = RestClient.get '/api/boards/{board}/integrations',
                               params: {
                               }, headers: headers
                             
                            @@ -13860,18 +10208,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/integrations', headers = headers)
                            +r = requests.get('/api/boards/{board}/integrations', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/integrations");
                            +
                            URL obj = new URL("/api/boards/{board}/integrations");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -13887,19 +10237,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/integrations", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/integrations", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -13907,31 +10258,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/integrations', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/integrations

                            Get all integrations in board

                            @@ -13956,7 +10282,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            Example responses

                            @@ -13966,18 +10292,18 @@ System.out.println(response.toString());
                            [
                               {
                            -    "enabled": true,
                            -    "title": "string",
                            -    "type": "string",
                            -    "activities": [
                            -      "string"
                            +    "enabled": true,
                            +    "title": "string",
                            +    "type": "string",
                            +    "activities": [
                            +      "string"
                                 ],
                            -    "url": "string",
                            -    "token": "string",
                            -    "boardId": "string",
                            -    "createdAt": "string",
                            -    "modifiedAt": "string",
                            -    "userId": "string"
                            +    "url": "string",
                            +    "token": "string",
                            +    "boardId": "string",
                            +    "createdAt": "string",
                            +    "modifiedAt": "string",
                            +    "userId": "string"
                               }
                             ]
                             
                            @@ -14029,7 +10355,7 @@ System.out.println(response.toString()); » title -string¦null +string|null false none name of the integration @@ -14057,7 +10383,7 @@ System.out.println(response.toString()); » token -string¦null +string|null false none token of the integration @@ -14103,29 +10429,49 @@ UserSecurity
                            # You can also use wget
                             curl -X POST /api/boards/{board}/integrations \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            POST /api/boards/{board}/integrations HTTP/1.1
                            +
                            POST /api/boards/{board}/integrations HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "url": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/integrations',
                            +$.ajax({
                            +  url: '/api/boards/{board}/integrations',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "url": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/integrations',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -14136,39 +10482,16 @@ fetch('/api/boards/{board}/integrations'
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "url": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/integrations',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.post '/api/boards/{board}/integrations',
                            +result = RestClient.post '/api/boards/{board}/integrations',
                               params: {
                               }, headers: headers
                             
                            @@ -14177,19 +10500,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.post('/api/boards/{board}/integrations', headers = headers)
                            +r = requests.post('/api/boards/{board}/integrations', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/integrations");
                            +
                            URL obj = new URL("/api/boards/{board}/integrations");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -14205,20 +10530,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/integrations", data)
                            +    req, err := http.NewRequest("POST", "/api/boards/{board}/integrations", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -14226,32 +10552,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/integrations', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /api/boards/{board}/integrations

                            Create a new integration

                            @@ -14284,7 +10584,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -14296,7 +10596,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            Example responses

                            @@ -14305,7 +10605,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -14360,24 +10660,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/integrations/{int} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/integrations/{int} HTTP/1.1
                            +
                            GET /api/boards/{board}/integrations/{int} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/integrations/{int}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/integrations/{int}',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/integrations/{int}',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -14388,35 +10707,15 @@ fetch('/api/boards/{board}/integrations/{int}
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/integrations/{int}',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/integrations/{int}',
                            +result = RestClient.get '/api/boards/{board}/integrations/{int}',
                               params: {
                               }, headers: headers
                             
                            @@ -14425,18 +10724,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/integrations/{int}', headers = headers)
                            +r = requests.get('/api/boards/{board}/integrations/{int}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/integrations/{int}");
                            +
                            URL obj = new URL("/api/boards/{board}/integrations/{int}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -14452,19 +10753,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/integrations/{int}", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/integrations/{int}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -14472,31 +10774,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/integrations/{int}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/integrations/{int}

                            Get a single integration in board

                            @@ -14528,7 +10805,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            int: the integration ID

                            @@ -14538,18 +10815,18 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "enabled": true,
                            -  "title": "string",
                            -  "type": "string",
                            -  "activities": [
                            -    "string"
                            +  "enabled": true,
                            +  "title": "string",
                            +  "type": "string",
                            +  "activities": [
                            +    "string"
                               ],
                            -  "url": "string",
                            -  "token": "string",
                            -  "boardId": "string",
                            -  "createdAt": "string",
                            -  "modifiedAt": "string",
                            -  "userId": "string"
                            +  "url": "string",
                            +  "token": "string",
                            +  "boardId": "string",
                            +  "createdAt": "string",
                            +  "modifiedAt": "string",
                            +  "userId": "string"
                             }
                             

                            Responses

                            @@ -14582,33 +10859,53 @@ UserSecurity
                            # You can also use wget
                             curl -X PUT /api/boards/{board}/integrations/{int} \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            PUT /api/boards/{board}/integrations/{int} HTTP/1.1
                            +
                            PUT /api/boards/{board}/integrations/{int} HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "enabled": "string",
                            -  "title": "string",
                            -  "url": "string",
                            -  "token": "string",
                            -  "activities": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/integrations/{int}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/integrations/{int}',
                            +  method: 'put',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "enabled": "string",
                            +  "title": "string",
                            +  "url": "string",
                            +  "token": "string",
                            +  "activities": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/integrations/{int}',
                             {
                            -  method: 'PUT',
                            +  method: 'PUT',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -14619,43 +10916,16 @@ fetch('/api/boards/{board}/integrations/{int}
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "enabled": "string",
                            -  "title": "string",
                            -  "url": "string",
                            -  "token": "string",
                            -  "activities": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/integrations/{int}',
                            -{
                            -  method: 'PUT',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.put '/api/boards/{board}/integrations/{int}',
                            +result = RestClient.put '/api/boards/{board}/integrations/{int}',
                               params: {
                               }, headers: headers
                             
                            @@ -14664,19 +10934,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.put('/api/boards/{board}/integrations/{int}', headers = headers)
                            +r = requests.put('/api/boards/{board}/integrations/{int}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/integrations/{int}");
                            +
                            URL obj = new URL("/api/boards/{board}/integrations/{int}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("PUT");
                            +con.setRequestMethod("PUT");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -14692,20 +10964,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("PUT", "/api/boards/{board}/integrations/{int}", data)
                            +    req, err := http.NewRequest("PUT", "/api/boards/{board}/integrations/{int}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -14713,32 +10986,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('PUT','/api/boards/{board}/integrations/{int}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            PUT /api/boards/{board}/integrations/{int}

                            Edit integration data

                            @@ -14822,7 +11069,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            int: the integration ID

                            @@ -14832,7 +11079,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -14887,24 +11134,43 @@ UserSecurity
                            # You can also use wget
                             curl -X DELETE /api/boards/{board}/integrations/{int} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            DELETE /api/boards/{board}/integrations/{int} HTTP/1.1
                            +
                            DELETE /api/boards/{board}/integrations/{int} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/integrations/{int}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/integrations/{int}',
                            +  method: 'delete',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/integrations/{int}',
                             {
                            -  method: 'DELETE',
                            +  method: 'DELETE',
                             
                               headers: headers
                             })
                            @@ -14915,35 +11181,15 @@ fetch('/api/boards/{board}/integrations/{int}
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/integrations/{int}',
                            -{
                            -  method: 'DELETE',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.delete '/api/boards/{board}/integrations/{int}',
                            +result = RestClient.delete '/api/boards/{board}/integrations/{int}',
                               params: {
                               }, headers: headers
                             
                            @@ -14952,18 +11198,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.delete('/api/boards/{board}/integrations/{int}', headers = headers)
                            +r = requests.delete('/api/boards/{board}/integrations/{int}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/integrations/{int}");
                            +
                            URL obj = new URL("/api/boards/{board}/integrations/{int}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("DELETE");
                            +con.setRequestMethod("DELETE");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -14979,19 +11227,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/integrations/{int}", data)
                            +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/integrations/{int}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -14999,31 +11248,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('DELETE','/api/boards/{board}/integrations/{int}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            DELETE /api/boards/{board}/integrations/{int}

                            Delete integration

                            @@ -15055,7 +11279,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            int: the integration ID

                            @@ -15065,7 +11289,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -15120,24 +11344,43 @@ UserSecurity
                            # You can also use wget
                             curl -X DELETE /api/boards/{board}/integrations/{int}/activities \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            DELETE /api/boards/{board}/integrations/{int}/activities HTTP/1.1
                            +
                            DELETE /api/boards/{board}/integrations/{int}/activities HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/integrations/{int}/activities',
                            +$.ajax({
                            +  url: '/api/boards/{board}/integrations/{int}/activities',
                            +  method: 'delete',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/integrations/{int}/activities',
                             {
                            -  method: 'DELETE',
                            +  method: 'DELETE',
                             
                               headers: headers
                             })
                            @@ -15148,35 +11391,15 @@ fetch('/api/boards/{board}/integrations/{int}/act
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/integrations/{int}/activities',
                            -{
                            -  method: 'DELETE',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.delete '/api/boards/{board}/integrations/{int}/activities',
                            +result = RestClient.delete '/api/boards/{board}/integrations/{int}/activities',
                               params: {
                               }, headers: headers
                             
                            @@ -15185,18 +11408,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.delete('/api/boards/{board}/integrations/{int}/activities', headers = headers)
                            +r = requests.delete('/api/boards/{board}/integrations/{int}/activities', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/integrations/{int}/activities");
                            +
                            URL obj = new URL("/api/boards/{board}/integrations/{int}/activities");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("DELETE");
                            +con.setRequestMethod("DELETE");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -15212,19 +11437,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/integrations/{int}/activities", data)
                            +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/integrations/{int}/activities", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -15232,31 +11458,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('DELETE','/api/boards/{board}/integrations/{int}/activities', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            DELETE /api/boards/{board}/integrations/{int}/activities

                            Delete subscribed activities

                            @@ -15288,7 +11489,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            int: the integration ID

                            @@ -15298,18 +11499,18 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "enabled": true,
                            -  "title": "string",
                            -  "type": "string",
                            -  "activities": [
                            -    "string"
                            +  "enabled": true,
                            +  "title": "string",
                            +  "type": "string",
                            +  "activities": [
                            +    "string"
                               ],
                            -  "url": "string",
                            -  "token": "string",
                            -  "boardId": "string",
                            -  "createdAt": "string",
                            -  "modifiedAt": "string",
                            -  "userId": "string"
                            +  "url": "string",
                            +  "token": "string",
                            +  "boardId": "string",
                            +  "createdAt": "string",
                            +  "modifiedAt": "string",
                            +  "userId": "string"
                             }
                             

                            Responses

                            @@ -15342,29 +11543,49 @@ UserSecurity
                            # You can also use wget
                             curl -X POST /api/boards/{board}/integrations/{int}/activities \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            POST /api/boards/{board}/integrations/{int}/activities HTTP/1.1
                            +
                            POST /api/boards/{board}/integrations/{int}/activities HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "activities": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/integrations/{int}/activities',
                            +$.ajax({
                            +  url: '/api/boards/{board}/integrations/{int}/activities',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "activities": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/integrations/{int}/activities',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -15375,39 +11596,16 @@ fetch('/api/boards/{board}/integrations/{int}/act
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "activities": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/integrations/{int}/activities',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.post '/api/boards/{board}/integrations/{int}/activities',
                            +result = RestClient.post '/api/boards/{board}/integrations/{int}/activities',
                               params: {
                               }, headers: headers
                             
                            @@ -15416,19 +11614,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.post('/api/boards/{board}/integrations/{int}/activities', headers = headers)
                            +r = requests.post('/api/boards/{board}/integrations/{int}/activities', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/integrations/{int}/activities");
                            +
                            URL obj = new URL("/api/boards/{board}/integrations/{int}/activities");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -15444,20 +11644,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/integrations/{int}/activities", data)
                            +    req, err := http.NewRequest("POST", "/api/boards/{board}/integrations/{int}/activities", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -15465,32 +11666,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/integrations/{int}/activities', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /api/boards/{board}/integrations/{int}/activities

                            Add subscribed activities

                            @@ -15530,7 +11705,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -15542,7 +11717,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            int: the integration ID

                            @@ -15552,18 +11727,18 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "enabled": true,
                            -  "title": "string",
                            -  "type": "string",
                            -  "activities": [
                            -    "string"
                            +  "enabled": true,
                            +  "title": "string",
                            +  "type": "string",
                            +  "activities": [
                            +    "string"
                               ],
                            -  "url": "string",
                            -  "token": "string",
                            -  "boardId": "string",
                            -  "createdAt": "string",
                            -  "modifiedAt": "string",
                            -  "userId": "string"
                            +  "url": "string",
                            +  "token": "string",
                            +  "boardId": "string",
                            +  "createdAt": "string",
                            +  "modifiedAt": "string",
                            +  "userId": "string"
                             }
                             

                            Responses

                            @@ -15597,24 +11772,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/lists \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/lists HTTP/1.1
                            +
                            GET /api/boards/{board}/lists HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/lists',
                            +$.ajax({
                            +  url: '/api/boards/{board}/lists',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/lists',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -15625,35 +11819,15 @@ fetch('/api/boards/{board}/lists',
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/lists',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/lists',
                            +result = RestClient.get '/api/boards/{board}/lists',
                               params: {
                               }, headers: headers
                             
                            @@ -15662,18 +11836,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/lists', headers = headers)
                            +r = requests.get('/api/boards/{board}/lists', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/lists");
                            +
                            URL obj = new URL("/api/boards/{board}/lists");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -15689,19 +11865,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/lists", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -15709,31 +11886,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/lists', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/lists

                            Get the list of Lists attached to a board

                            @@ -15758,7 +11910,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            Example responses

                            @@ -15768,8 +11920,8 @@ System.out.println(response.toString());
                            [
                               {
                            -    "_id": "string",
                            -    "title": "string"
                            +    "_id": "string",
                            +    "title": "string"
                               }
                             ]
                             
                            @@ -15832,29 +11984,49 @@ UserSecurity
                            # You can also use wget
                             curl -X POST /api/boards/{board}/lists \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            POST /api/boards/{board}/lists HTTP/1.1
                            +
                            POST /api/boards/{board}/lists HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "title": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/lists',
                            +$.ajax({
                            +  url: '/api/boards/{board}/lists',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "title": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/lists',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -15865,39 +12037,16 @@ fetch('/api/boards/{board}/lists',
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "title": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/lists',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.post '/api/boards/{board}/lists',
                            +result = RestClient.post '/api/boards/{board}/lists',
                               params: {
                               }, headers: headers
                             
                            @@ -15906,19 +12055,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.post('/api/boards/{board}/lists', headers = headers)
                            +r = requests.post('/api/boards/{board}/lists', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/lists");
                            +
                            URL obj = new URL("/api/boards/{board}/lists");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -15934,20 +12085,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/lists", data)
                            +    req, err := http.NewRequest("POST", "/api/boards/{board}/lists", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -15955,32 +12107,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/lists', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /api/boards/{board}/lists

                            Add a List to a board

                            @@ -16013,7 +12139,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -16025,7 +12151,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            Example responses

                            @@ -16034,7 +12160,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -16089,24 +12215,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/lists/{list} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/lists/{list} HTTP/1.1
                            +
                            GET /api/boards/{board}/lists/{list} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/lists/{list}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/lists/{list}',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/lists/{list}',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -16117,35 +12262,15 @@ fetch('/api/boards/{board}/lists/{list}'
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/lists/{list}',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/lists/{list}',
                            +result = RestClient.get '/api/boards/{board}/lists/{list}',
                               params: {
                               }, headers: headers
                             
                            @@ -16154,18 +12279,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/lists/{list}', headers = headers)
                            +r = requests.get('/api/boards/{board}/lists/{list}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/lists/{list}");
                            +
                            URL obj = new URL("/api/boards/{board}/lists/{list}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -16181,19 +12308,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -16201,31 +12329,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/lists/{list}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/lists/{list}

                            Get a List attached to a board

                            @@ -16257,7 +12360,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            list: the List ID

                            @@ -16267,23 +12370,24 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "title": "string",
                            -  "starred": true,
                            -  "archived": true,
                            -  "archivedAt": "string",
                            -  "boardId": "string",
                            -  "swimlaneId": "string",
                            -  "createdAt": "string",
                            -  "sort": 0,
                            -  "updatedAt": "string",
                            -  "modifiedAt": "string",
                            -  "wipLimit": {
                            -    "value": 0,
                            -    "enabled": true,
                            -    "soft": true
                            +  "title": "string",
                            +  "starred": true,
                            +  "archived": true,
                            +  "archivedAt": "string",
                            +  "boardId": "string",
                            +  "swimlaneId": "string",
                            +  "createdAt": "string",
                            +  "sort": 0,
                            +  "updatedAt": "string",
                            +  "modifiedAt": "string",
                            +  "wipLimit": {
                            +    "value": 0,
                            +    "enabled": true,
                            +    "soft": true
                               },
                            -  "color": "white",
                            -  "type": "string"
                            +  "color": "white",
                            +  "type": "string",
                            +  "collapsed": true
                             }
                             

                            Responses

                            @@ -16316,24 +12420,43 @@ UserSecurity
                            # You can also use wget
                             curl -X DELETE /api/boards/{board}/lists/{list} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            DELETE /api/boards/{board}/lists/{list} HTTP/1.1
                            +
                            DELETE /api/boards/{board}/lists/{list} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/lists/{list}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/lists/{list}',
                            +  method: 'delete',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/lists/{list}',
                             {
                            -  method: 'DELETE',
                            +  method: 'DELETE',
                             
                               headers: headers
                             })
                            @@ -16344,35 +12467,15 @@ fetch('/api/boards/{board}/lists/{list}'
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/lists/{list}',
                            -{
                            -  method: 'DELETE',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.delete '/api/boards/{board}/lists/{list}',
                            +result = RestClient.delete '/api/boards/{board}/lists/{list}',
                               params: {
                               }, headers: headers
                             
                            @@ -16381,18 +12484,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.delete('/api/boards/{board}/lists/{list}', headers = headers)
                            +r = requests.delete('/api/boards/{board}/lists/{list}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/lists/{list}");
                            +
                            URL obj = new URL("/api/boards/{board}/lists/{list}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("DELETE");
                            +con.setRequestMethod("DELETE");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -16408,19 +12513,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/lists/{list}", data)
                            +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/lists/{list}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -16428,31 +12534,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('DELETE','/api/boards/{board}/lists/{list}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            DELETE /api/boards/{board}/lists/{list}

                            Delete a List

                            @@ -16486,7 +12567,7 @@ The list is not put in the recycle bin.

                            -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the board ID

                            list: the ID of the list to remove

                            @@ -16496,7 +12577,7 @@ The list is not put in the recycle bin.

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -16552,24 +12633,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/swimlanes \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/swimlanes HTTP/1.1
                            +
                            GET /api/boards/{board}/swimlanes HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/swimlanes',
                            +$.ajax({
                            +  url: '/api/boards/{board}/swimlanes',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/swimlanes',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -16580,35 +12680,15 @@ fetch('/api/boards/{board}/swimlanes'
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/swimlanes',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/swimlanes',
                            +result = RestClient.get '/api/boards/{board}/swimlanes',
                               params: {
                               }, headers: headers
                             
                            @@ -16617,18 +12697,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/swimlanes', headers = headers)
                            +r = requests.get('/api/boards/{board}/swimlanes', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/swimlanes");
                            +
                            URL obj = new URL("/api/boards/{board}/swimlanes");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -16644,19 +12726,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -16664,31 +12747,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/swimlanes', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/swimlanes

                            Get the list of swimlanes attached to a board

                            @@ -16713,7 +12771,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the ID of the board

                            Example responses

                            @@ -16723,8 +12781,8 @@ System.out.println(response.toString());
                            [
                               {
                            -    "_id": "string",
                            -    "title": "string"
                            +    "_id": "string",
                            +    "title": "string"
                               }
                             ]
                             
                            @@ -16787,29 +12845,49 @@ UserSecurity
                            # You can also use wget
                             curl -X POST /api/boards/{board}/swimlanes \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            POST /api/boards/{board}/swimlanes HTTP/1.1
                            +
                            POST /api/boards/{board}/swimlanes HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "title": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/swimlanes',
                            +$.ajax({
                            +  url: '/api/boards/{board}/swimlanes',
                            +  method: 'post',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "title": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/swimlanes',
                             {
                            -  method: 'POST',
                            +  method: 'POST',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -16820,39 +12898,16 @@ fetch('/api/boards/{board}/swimlanes'
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "title": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/swimlanes',
                            -{
                            -  method: 'POST',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.post '/api/boards/{board}/swimlanes',
                            +result = RestClient.post '/api/boards/{board}/swimlanes',
                               params: {
                               }, headers: headers
                             
                            @@ -16861,19 +12916,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.post('/api/boards/{board}/swimlanes', headers = headers)
                            +r = requests.post('/api/boards/{board}/swimlanes', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/swimlanes");
                            +
                            URL obj = new URL("/api/boards/{board}/swimlanes");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("POST");
                            +con.setRequestMethod("POST");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -16889,20 +12946,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("POST", "/api/boards/{board}/swimlanes", data)
                            +    req, err := http.NewRequest("POST", "/api/boards/{board}/swimlanes", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -16910,32 +12968,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('POST','/api/boards/{board}/swimlanes', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            POST /api/boards/{board}/swimlanes

                            Add a swimlane to a board

                            @@ -16967,8 +12999,8 @@ System.out.println(response.toString()); body body -object -true +new_swimlane +false none @@ -16980,7 +13012,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the ID of the board

                            Example responses

                            @@ -16989,7 +13021,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -17044,24 +13076,43 @@ UserSecurity
                            # You can also use wget
                             curl -X GET /api/boards/{board}/swimlanes/{swimlane} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            GET /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
                            +
                            GET /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/swimlanes/{swimlane}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/swimlanes/{swimlane}',
                            +  method: 'get',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/swimlanes/{swimlane}',
                             {
                            -  method: 'GET',
                            +  method: 'GET',
                             
                               headers: headers
                             })
                            @@ -17072,35 +13123,15 @@ fetch('/api/boards/{board}/swimlanes/{swimlane}&#
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/swimlanes/{swimlane}',
                            -{
                            -  method: 'GET',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}',
                            +result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}',
                               params: {
                               }, headers: headers
                             
                            @@ -17109,18 +13140,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.get('/api/boards/{board}/swimlanes/{swimlane}', headers = headers)
                            +r = requests.get('/api/boards/{board}/swimlanes/{swimlane}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
                            +
                            URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("GET");
                            +con.setRequestMethod("GET");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -17136,19 +13169,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes/{swimlane}", data)
                            +    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes/{swimlane}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -17156,31 +13190,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('GET','/api/boards/{board}/swimlanes/{swimlane}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            GET /api/boards/{board}/swimlanes/{swimlane}

                            Get a swimlane

                            @@ -17212,7 +13221,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the ID of the board

                            swimlane: the ID of the swimlane

                            @@ -17222,16 +13231,17 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "title": "string",
                            -  "archived": true,
                            -  "archivedAt": "string",
                            -  "boardId": "string",
                            -  "createdAt": "string",
                            -  "sort": 0,
                            -  "color": "white",
                            -  "updatedAt": "string",
                            -  "modifiedAt": "string",
                            -  "type": "string"
                            +  "title": "string",
                            +  "archived": true,
                            +  "archivedAt": "string",
                            +  "boardId": "string",
                            +  "createdAt": "string",
                            +  "sort": 0,
                            +  "color": "white",
                            +  "updatedAt": "string",
                            +  "modifiedAt": "string",
                            +  "type": "string",
                            +  "collapsed": true
                             }
                             

                            Responses

                            @@ -17264,29 +13274,49 @@ UserSecurity
                            # You can also use wget
                             curl -X PUT /api/boards/{board}/swimlanes/{swimlane} \
                            -  -H 'Content-Type: multipart/form-data' \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Content-Type: multipart/form-data' \
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            PUT /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
                            +
                            PUT /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
                             
                             Content-Type: multipart/form-data
                             Accept: application/json
                             
                             
                            -
                            const inputBody = '{
                            -  "title": "string"
                            -}';
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            +
                            var headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                             };
                             
                            -fetch('/api/boards/{board}/swimlanes/{swimlane}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/swimlanes/{swimlane}',
                            +  method: 'put',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +const inputBody = '{
                            +  "title": "string"
                            +}';
                            +const headers = {
                            +  'Content-Type':'multipart/form-data',
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/swimlanes/{swimlane}',
                             {
                            -  method: 'PUT',
                            +  method: 'PUT',
                               body: inputBody,
                               headers: headers
                             })
                            @@ -17297,39 +13327,16 @@ fetch('/api/boards/{board}/swimlanes/{swimlane}&#
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -const inputBody = {
                            -  "title": "string"
                            -};
                            -const headers = {
                            -  'Content-Type':'multipart/form-data',
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/swimlanes/{swimlane}',
                            -{
                            -  method: 'PUT',
                            -  body: JSON.stringify(inputBody),
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Content-Type' => 'multipart/form-data',
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Content-Type' => 'multipart/form-data',
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.put '/api/boards/{board}/swimlanes/{swimlane}',
                            +result = RestClient.put '/api/boards/{board}/swimlanes/{swimlane}',
                               params: {
                               }, headers: headers
                             
                            @@ -17338,19 +13345,21 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Content-Type': 'multipart/form-data',
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Content-Type': 'multipart/form-data',
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.put('/api/boards/{board}/swimlanes/{swimlane}', headers = headers)
                            +r = requests.put('/api/boards/{board}/swimlanes/{swimlane}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
                            +
                            URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("PUT");
                            +con.setRequestMethod("PUT");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -17366,20 +13375,21 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Content-Type": []string{"multipart/form-data"},
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Content-Type": []string{"multipart/form-data"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("PUT", "/api/boards/{board}/swimlanes/{swimlane}", data)
                            +    req, err := http.NewRequest("PUT", "/api/boards/{board}/swimlanes/{swimlane}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -17387,32 +13397,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'multipart/form-data',
                            -    'Accept' => 'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('PUT','/api/boards/{board}/swimlanes/{swimlane}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            PUT /api/boards/{board}/swimlanes/{swimlane}

                            Edit the title of a swimlane

                            @@ -17451,8 +13435,8 @@ System.out.println(response.toString()); body body -object -true +new_swimlane +false none @@ -17464,7 +13448,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the ID of the board

                            swimlane: the ID of the swimlane to edit

                            @@ -17474,7 +13458,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -17529,24 +13513,43 @@ UserSecurity
                            # You can also use wget
                             curl -X DELETE /api/boards/{board}/swimlanes/{swimlane} \
                            -  -H 'Accept: application/json' \
                            -  -H 'Authorization: API_KEY'
                            +  -H 'Accept: application/json' \
                            +  -H 'Authorization: API_KEY'
                             
                             
                            -
                            DELETE /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
                            +
                            DELETE /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
                             
                            -Accept: application/json
                            +Accept: application/json
                            +
                            +
                            +
                            var headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                             
                            -
                            -
                            
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                             };
                             
                            -fetch('/api/boards/{board}/swimlanes/{swimlane}',
                            +$.ajax({
                            +  url: '/api/boards/{board}/swimlanes/{swimlane}',
                            +  method: 'delete',
                            +
                            +  headers: headers,
                            +  success: function(data) {
                            +    console.log(JSON.stringify(data));
                            +  }
                            +})
                            +
                            +
                            +
                            const fetch = require('node-fetch');
                            +
                            +const headers = {
                            +  'Accept':'application/json',
                            +  'Authorization':'API_KEY'
                            +
                            +};
                            +
                            +fetch('/api/boards/{board}/swimlanes/{swimlane}',
                             {
                            -  method: 'DELETE',
                            +  method: 'DELETE',
                             
                               headers: headers
                             })
                            @@ -17557,35 +13560,15 @@ fetch('/api/boards/{board}/swimlanes/{swimlane}&#
                             });
                             
                             
                            -
                            const fetch = require('node-fetch');
                            -
                            -const headers = {
                            -  'Accept':'application/json',
                            -  'Authorization':'API_KEY'
                            -};
                            -
                            -fetch('/api/boards/{board}/swimlanes/{swimlane}',
                            -{
                            -  method: 'DELETE',
                            -
                            -  headers: headers
                            -})
                            -.then(function(res) {
                            -    return res.json();
                            -}).then(function(body) {
                            -    console.log(body);
                            -});
                            -
                            -
                            -
                            require 'rest-client'
                            -require 'json'
                            +
                            require 'rest-client'
                            +require 'json'
                             
                             headers = {
                            -  'Accept' => 'application/json',
                            -  'Authorization' => 'API_KEY'
                            +  'Accept' => 'application/json',
                            +  'Authorization' => 'API_KEY'
                             }
                             
                            -result = RestClient.delete '/api/boards/{board}/swimlanes/{swimlane}',
                            +result = RestClient.delete '/api/boards/{board}/swimlanes/{swimlane}',
                               params: {
                               }, headers: headers
                             
                            @@ -17594,18 +13577,20 @@ p JSON.parse(result)
                             
                            import requests
                             headers = {
                            -  'Accept': 'application/json',
                            -  'Authorization': 'API_KEY'
                            +  'Accept': 'application/json',
                            +  'Authorization': 'API_KEY'
                             }
                             
                            -r = requests.delete('/api/boards/{board}/swimlanes/{swimlane}', headers = headers)
                            +r = requests.delete('/api/boards/{board}/swimlanes/{swimlane}', params={
                             
                            -print(r.json())
                            +}, headers = headers)
                            +
                            +print r.json()
                             
                             
                            -
                            URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
                            +
                            URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
                             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                            -con.setRequestMethod("DELETE");
                            +con.setRequestMethod("DELETE");
                             int responseCode = con.getResponseCode();
                             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(con.getInputStream()));
                            @@ -17621,19 +13606,20 @@ System.out.println(response.toString());
                             
                            package main
                             
                             import (
                            -       "bytes"
                            -       "net/http"
                            +       "bytes"
                            +       "net/http"
                             )
                             
                             func main() {
                             
                                 headers := map[string][]string{
                            -        "Accept": []string{"application/json"},
                            -        "Authorization": []string{"API_KEY"},
                            +        "Accept": []string{"application/json"},
                            +        "Authorization": []string{"API_KEY"},
                            +        
                                 }
                             
                                 data := bytes.NewBuffer([]byte{jsonReq})
                            -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/swimlanes/{swimlane}", data)
                            +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/swimlanes/{swimlane}", data)
                                 req.Header = headers
                             
                                 client := &http.Client{}
                            @@ -17641,31 +13627,6 @@ System.out.println(response.toString());
                                 // ...
                             }
                             
                            -
                            -
                             'application/json',
                            -    'Authorization' => 'API_KEY',
                            -);
                            -
                            -$client = new \GuzzleHttp\Client();
                            -
                            -// Define array of request body.
                            -$request_body = array();
                            -
                            -try {
                            -    $response = $client->request('DELETE','/api/boards/{board}/swimlanes/{swimlane}', array(
                            -        'headers' => $headers,
                            -        'json' => $request_body,
                            -       )
                            -    );
                            -    print_r($response->getBody()->getContents());
                            - }
                            - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                            -    // handle exception or api errors.
                            -    print_r($e->getMessage());
                            - }
                            -
                            - // ...
                            -
                             

                            DELETE /api/boards/{board}/swimlanes/{swimlane}

                            Delete a swimlane

                            @@ -17698,7 +13659,7 @@ System.out.println(response.toString()); -

                            Detailed descriptions

                            +

                            Detailed descriptions

                            board: the ID of the board

                            swimlane: the ID of the swimlane

                            @@ -17708,7 +13669,7 @@ System.out.println(response.toString());

                            200 Response

                            {
                            -  "_id": "string"
                            +  "_id": "string"
                             }
                             

                            Responses

                            @@ -17757,98 +13718,19 @@ To perform this operation, you must be authenticated by means of one of the foll UserSecurity

                            Schemas

                            -

                            Boards

                            -

                            - - -

                            +

                            CardComments

                            +

                            {
                            -  "title": "string",
                            -  "slug": "string",
                            -  "archived": true,
                            -  "archivedAt": "string",
                            -  "createdAt": "string",
                            -  "modifiedAt": "string",
                            -  "stars": 0,
                            -  "labels": [
                            -    {
                            -      "_id": "string",
                            -      "name": "string",
                            -      "color": "white"
                            -    }
                            -  ],
                            -  "members": [
                            -    {
                            -      "userId": "string",
                            -      "isAdmin": true,
                            -      "isActive": true,
                            -      "isNoComments": true,
                            -      "isCommentOnly": true,
                            -      "isWorker": true
                            -    }
                            -  ],
                            -  "permission": "public",
                            -  "orgs": [
                            -    {
                            -      "orgId": "string",
                            -      "orgDisplayName": "string",
                            -      "isActive": true
                            -    }
                            -  ],
                            -  "teams": [
                            -    {
                            -      "teamId": "string",
                            -      "teamDisplayName": "string",
                            -      "isActive": true
                            -    }
                            -  ],
                            -  "color": "belize",
                            -  "backgroundImageURL": "string",
                            -  "allowsCardCounterList": true,
                            -  "allowsBoardMemberList": true,
                            -  "description": "string",
                            -  "subtasksDefaultBoardId": "string",
                            -  "subtasksDefaultListId": "string",
                            -  "dateSettingsDefaultBoardId": "string",
                            -  "dateSettingsDefaultListId": "string",
                            -  "allowsSubtasks": true,
                            -  "allowsAttachments": true,
                            -  "allowsChecklists": true,
                            -  "allowsComments": true,
                            -  "allowsDescriptionTitle": true,
                            -  "allowsDescriptionText": true,
                            -  "allowsDescriptionTextOnMinicard": true,
                            -  "allowsCoverAttachmentOnMinicard": true,
                            -  "allowsBadgeAttachmentOnMinicard": true,
                            -  "allowsCardSortingByNumberOnMinicard": true,
                            -  "allowsCardNumber": true,
                            -  "allowsActivities": true,
                            -  "allowsLabels": true,
                            -  "allowsCreator": true,
                            -  "allowsCreatorOnMinicard": true,
                            -  "allowsAssignee": true,
                            -  "allowsMembers": true,
                            -  "allowsRequestedBy": true,
                            -  "allowsCardSortingByNumber": true,
                            -  "allowsShowLists": true,
                            -  "allowsAssignedBy": true,
                            -  "allowsReceivedDate": true,
                            -  "allowsStartDate": true,
                            -  "allowsEndDate": true,
                            -  "allowsDueDate": true,
                            -  "presentParentTask": "prefix-with-full-path",
                            -  "receivedAt": "string",
                            -  "startAt": "string",
                            -  "dueAt": "string",
                            -  "endAt": "string",
                            -  "spentTime": 0,
                            -  "isOvertime": true,
                            -  "type": "board",
                            -  "sort": 0
                            +  "boardId": "string",
                            +  "cardId": "string",
                            +  "text": "string",
                            +  "createdAt": "string",
                            +  "modifiedAt": "string",
                            +  "userId": "string"
                             }
                             
                             
                            -

                            This is a Board.

                            +

                            A comment on a card

                            Properties

                            @@ -17862,863 +13744,6 @@ UserSecurity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            titlestringtruenoneThe title of the board
                            slugstringtruenoneThe title slugified.
                            archivedbooleantruenoneIs the board archived?
                            archivedAtstring¦nullfalsenoneLatest archiving time of the board
                            createdAtstringtruenoneCreation time of the board
                            modifiedAtstring¦nullfalsenoneLast modification time of the board
                            starsnumbertruenoneHow many stars the board has
                            labels[BoardsLabels]¦nullfalsenoneList of labels attached to a board
                            members[BoardsMembers]truenoneList of members of a board
                            permissionstringtruenonevisibility of the board
                            orgs[BoardsOrgs]¦nullfalsenonethe list of organizations that a board belongs to
                            teams[BoardsTeams]¦nullfalsenonethe list of teams that a board belongs to
                            colorstringtruenoneThe color of the board.
                            backgroundImageURLstring¦nullfalsenoneThe background image URL of the board.
                            allowsCardCounterListbooleantruenoneShow card counter per list
                            allowsBoardMemberListbooleantruenoneShow board member list
                            descriptionstring¦nullfalsenoneThe description of the board
                            subtasksDefaultBoardIdstring¦nullfalsenoneThe default board ID assigned to subtasks.
                            subtasksDefaultListIdstring¦nullfalsenoneThe default List ID assigned to subtasks.
                            dateSettingsDefaultBoardIdstring¦nullfalsenonenone
                            dateSettingsDefaultListIdstring¦nullfalsenonenone
                            allowsSubtasksbooleantruenoneDoes the board allows subtasks?
                            allowsAttachmentsbooleantruenoneDoes the board allows attachments?
                            allowsChecklistsbooleantruenoneDoes the board allows checklists?
                            allowsCommentsbooleantruenoneDoes the board allows comments?
                            allowsDescriptionTitlebooleantruenoneDoes the board allows description title?
                            allowsDescriptionTextbooleantruenoneDoes the board allows description text?
                            allowsDescriptionTextOnMinicardbooleantruenoneDoes the board allows description text on minicard?
                            allowsCoverAttachmentOnMinicardbooleantruenoneDoes the board allows cover attachment on minicard?
                            allowsBadgeAttachmentOnMinicardbooleantruenoneDoes the board allows badge attachment on minicard?
                            allowsCardSortingByNumberOnMinicardbooleantruenoneDoes the board allows card sorting by number on minicard?
                            allowsCardNumberbooleantruenoneDoes the board allows card numbers?
                            allowsActivitiesbooleantruenoneDoes the board allows comments?
                            allowsLabelsbooleantruenoneDoes the board allows labels?
                            allowsCreatorbooleantruenoneDoes the board allow creator?
                            allowsCreatorOnMinicardbooleantruenoneDoes the board allow creator?
                            allowsAssigneebooleantruenoneDoes the board allows assignee?
                            allowsMembersbooleantruenoneDoes the board allows members?
                            allowsRequestedBybooleantruenoneDoes the board allows requested by?
                            allowsCardSortingByNumberbooleantruenoneDoes the board allows card sorting by number?
                            allowsShowListsbooleantruenoneDoes the board allows show lists on the card?
                            allowsAssignedBybooleantruenoneDoes the board allows requested by?
                            allowsReceivedDatebooleantruenoneDoes the board allows received date?
                            allowsStartDatebooleantruenoneDoes the board allows start date?
                            allowsEndDatebooleantruenoneDoes the board allows end date?
                            allowsDueDatebooleantruenoneDoes the board allows due date?
                            presentParentTaskstring¦nullfalsenoneControls how to present the parent task:

                            - prefix-with-full-path: add a prefix with the full path
                            - prefix-with-parent: add a prefisx with the parent name
                            - subtext-with-full-path: add a subtext with the full path
                            - subtext-with-parent: add a subtext with the parent name
                            - no-parent: does not show the parent at all
                            receivedAtstring¦nullfalsenoneDate the card was received
                            startAtstring¦nullfalsenoneStarting date of the board.
                            dueAtstring¦nullfalsenoneDue date of the board.
                            endAtstring¦nullfalsenoneEnd date of the board.
                            spentTimenumber¦nullfalsenoneTime spent in the board.
                            isOvertimeboolean¦nullfalsenoneIs the board overtimed?
                            typestringtruenoneThe type of board
                            possible values: board, template-board, template-container
                            sortnumbertruenoneSort value
                            -

                            Enumerated Values

                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            PropertyValue
                            permissionpublic
                            permissionprivate
                            colorbelize
                            colornephritis
                            colorpomegranate
                            colorpumpkin
                            colorwisteria
                            colormoderatepink
                            colorstrongcyan
                            colorlimegreen
                            colormidnight
                            colordark
                            colorrelax
                            colorcorteza
                            colorclearblue
                            colornatural
                            colormodern
                            colormoderndark
                            colorexodark
                            presentParentTaskprefix-with-full-path
                            presentParentTaskprefix-with-parent
                            presentParentTasksubtext-with-full-path
                            presentParentTasksubtext-with-parent
                            presentParentTaskno-parent
                            typeboard
                            typetemplate-board
                            typetemplate-container
                            -

                            BoardsLabels

                            -

                            - - -

                            -
                            {
                            -  "_id": "string",
                            -  "name": "string",
                            -  "color": "white"
                            -}
                            -
                            -
                            -

                            Properties

                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameTypeRequiredRestrictionsDescription
                            _idstringtruenoneUnique id of a label
                            namestringfalsenoneName of a label
                            colorstringtruenonecolor of a label.

                            Can be amongst green, yellow, orange, red, purple,
                            blue, sky, lime, pink, black,
                            silver, peachpuff, crimson, plum, darkgreen,
                            slateblue, magenta, gold, navy, gray,
                            saddlebrown, paleturquoise, mistyrose, indigo
                            -

                            Enumerated Values

                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            PropertyValue
                            colorwhite
                            colorgreen
                            coloryellow
                            colororange
                            colorred
                            colorpurple
                            colorblue
                            colorsky
                            colorlime
                            colorpink
                            colorblack
                            colorsilver
                            colorpeachpuff
                            colorcrimson
                            colorplum
                            colordarkgreen
                            colorslateblue
                            colormagenta
                            colorgold
                            colornavy
                            colorgray
                            colorsaddlebrown
                            colorpaleturquoise
                            colormistyrose
                            colorindigo
                            -

                            BoardsMembers

                            -

                            - - -

                            -
                            {
                            -  "userId": "string",
                            -  "isAdmin": true,
                            -  "isActive": true,
                            -  "isNoComments": true,
                            -  "isCommentOnly": true,
                            -  "isWorker": true
                            -}
                            -
                            -
                            -

                            Properties

                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameTypeRequiredRestrictionsDescription
                            userIdstringtruenoneThe uniq ID of the member
                            isAdminbooleantruenoneIs the member an admin of the board?
                            isActivebooleantruenoneIs the member active?
                            isNoCommentsbooleanfalsenoneIs the member not allowed to make comments
                            isCommentOnlybooleanfalsenoneIs the member only allowed to comment on the board
                            isWorkerbooleanfalsenoneIs the member only allowed to move card, assign himself to card and comment
                            -

                            BoardsOrgs

                            -

                            - - -

                            -
                            {
                            -  "orgId": "string",
                            -  "orgDisplayName": "string",
                            -  "isActive": true
                            -}
                            -
                            -
                            -

                            Properties

                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameTypeRequiredRestrictionsDescription
                            orgIdstringtruenoneThe uniq ID of the organization
                            orgDisplayNamestringtruenoneThe display name of the organization
                            isActivebooleantruenoneIs the organization active?
                            -

                            BoardsTeams

                            -

                            - - -

                            -
                            {
                            -  "teamId": "string",
                            -  "teamDisplayName": "string",
                            -  "isActive": true
                            -}
                            -
                            -
                            -

                            Properties

                            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            NameTypeRequiredRestrictionsDescription
                            teamIdstringtruenoneThe uniq ID of the team
                            teamDisplayNamestringtruenoneThe display name of the team
                            isActivebooleantruenoneIs the team active?
                            -

                            CardComments

                            -

                            - - -

                            -
                            {
                            -  "boardId": "string",
                            -  "cardId": "string",
                            -  "text": "string",
                            -  "createdAt": "string",
                            -  "modifiedAt": "string",
                            -  "userId": "string"
                            -}
                            -
                            -
                            -

                            A comment on a card

                            -

                            Properties

                            - - - - - - - - - - - - @@ -18762,112 +13787,111 @@ UserSecurity
                            NameTypeRequiredRestrictionsDescription
                            boardId string true
                            -

                            Cards

                            -

                            - - -

                            +

                            Cards

                            +

                            {
                            -  "title": "string",
                            -  "archived": true,
                            -  "archivedAt": "string",
                            -  "parentId": "string",
                            -  "listId": "string",
                            -  "swimlaneId": "string",
                            -  "boardId": "string",
                            -  "coverId": "string",
                            -  "color": "white",
                            -  "createdAt": "string",
                            -  "modifiedAt": "string",
                            -  "customFields": [
                            +  "title": "string",
                            +  "archived": true,
                            +  "archivedAt": "string",
                            +  "parentId": "string",
                            +  "listId": "string",
                            +  "swimlaneId": "string",
                            +  "boardId": "string",
                            +  "coverId": "string",
                            +  "color": "white",
                            +  "createdAt": "string",
                            +  "modifiedAt": "string",
                            +  "customFields": [
                                 {}
                               ],
                            -  "dateLastActivity": "string",
                            -  "description": "string",
                            -  "requestedBy": "string",
                            -  "assignedBy": "string",
                            -  "labelIds": [
                            -    "string"
                            +  "dateLastActivity": "string",
                            +  "description": "string",
                            +  "requestedBy": "string",
                            +  "assignedBy": "string",
                            +  "labelIds": [
                            +    "string"
                               ],
                            -  "members": [
                            -    "string"
                            +  "members": [
                            +    "string"
                               ],
                            -  "assignees": [
                            -    "string"
                            +  "assignees": [
                            +    "string"
                               ],
                            -  "receivedAt": "string",
                            -  "startAt": "string",
                            -  "dueAt": "string",
                            -  "endAt": "string",
                            -  "spentTime": 0,
                            -  "isOvertime": true,
                            -  "userId": "string",
                            -  "sort": 0,
                            -  "subtaskSort": 0,
                            -  "type": "string",
                            -  "linkedId": "string",
                            -  "vote": {
                            -    "question": "string",
                            -    "positive": [
                            -      "string"
                            +  "receivedAt": "string",
                            +  "startAt": "string",
                            +  "dueAt": "string",
                            +  "endAt": "string",
                            +  "spentTime": 0,
                            +  "isOvertime": true,
                            +  "userId": "string",
                            +  "sort": 0,
                            +  "subtaskSort": 0,
                            +  "type": "string",
                            +  "linkedId": "string",
                            +  "vote": {
                            +    "question": "string",
                            +    "positive": [
                            +      "string"
                                 ],
                            -    "negative": [
                            -      "string"
                            +    "negative": [
                            +      "string"
                                 ],
                            -    "end": "string",
                            -    "public": true,
                            -    "allowNonBoardMembers": true
                            +    "end": "string",
                            +    "public": true,
                            +    "allowNonBoardMembers": true
                               },
                            -  "poker": {
                            -    "question": true,
                            -    "one": [
                            -      "string"
                            +  "poker": {
                            +    "question": true,
                            +    "one": [
                            +      "string"
                                 ],
                            -    "two": [
                            -      "string"
                            +    "two": [
                            +      "string"
                                 ],
                            -    "three": [
                            -      "string"
                            +    "three": [
                            +      "string"
                                 ],
                            -    "five": [
                            -      "string"
                            +    "five": [
                            +      "string"
                                 ],
                            -    "eight": [
                            -      "string"
                            +    "eight": [
                            +      "string"
                                 ],
                            -    "thirteen": [
                            -      "string"
                            +    "thirteen": [
                            +      "string"
                                 ],
                            -    "twenty": [
                            -      "string"
                            +    "twenty": [
                            +      "string"
                                 ],
                            -    "forty": [
                            -      "string"
                            +    "forty": [
                            +      "string"
                                 ],
                            -    "oneHundred": [
                            -      "string"
                            +    "oneHundred": [
                            +      "string"
                                 ],
                            -    "unsure": [
                            -      "string"
                            +    "unsure": [
                            +      "string"
                                 ],
                            -    "end": "string",
                            -    "allowNonBoardMembers": true,
                            -    "estimation": 0
                            +    "end": "string",
                            +    "allowNonBoardMembers": true,
                            +    "estimation": 0
                               },
                            -  "targetId_gantt": [
                            -    "string"
                            +  "targetId_gantt": [
                            +    "string"
                               ],
                            -  "linkType_gantt": [
                            +  "linkType_gantt": [
                                 0
                               ],
                            -  "linkId_gantt": [
                            -    "string"
                            +  "linkId_gantt": [
                            +    "string"
                               ],
                            -  "cardNumber": 0
                            +  "cardNumber": 0,
                            +  "showActivities": true,
                            +  "hideFinishedChecklistIfItemsAreHidden": true
                             }
                             
                             
                            -

                            Properties

                            +

                            Properties

                            @@ -18881,7 +13905,7 @@ UserSecurity - + @@ -18895,21 +13919,21 @@ UserSecurity - + - + - + @@ -18923,21 +13947,21 @@ UserSecurity - + - + - + @@ -18958,7 +13982,7 @@ UserSecurity - + @@ -18972,84 +13996,84 @@ UserSecurity - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19063,14 +14087,14 @@ UserSecurity - + - + @@ -19084,7 +14108,7 @@ UserSecurity - + @@ -19094,46 +14118,60 @@ UserSecurity - + - + - + - + - + - + - + + + + + + + + + + + + + + +
                            titlestring¦nullstring|null false none the title of the card
                            archivedAtstring¦nullstring|null false none latest archiving date
                            parentIdstring¦nullstring|null false none ID of the parent card
                            listIdstring¦nullstring|null false none List ID where the card is
                            boardIdstring¦nullstring|null false none Board ID of the card
                            coverIdstring¦nullstring|null false none Cover ID of the card
                            colorstring¦nullstring|null false none none
                            customFields[CardsCustomfields]¦null[CardsCustomfields]|null false none list of custom fields
                            descriptionstring¦nullstring|null false none description of the card
                            requestedBystring¦nullstring|null false none who requested the card (ID of the user)
                            assignedBystring¦nullstring|null false none who assigned the card (ID of the user)
                            labelIds[string]¦null[string]|null false none list of labels ID the card has
                            members[string]¦null[string]|null false none list of members (user IDs)
                            assignees[string]¦null[string]|null false nonewho is assignee of the card (user ID),
                            maximum one ID of assignee in array.
                            who is assignee of the card (user ID), maximum one ID of assignee in array.
                            receivedAtstring¦nullstring|null false none Date the card was received
                            startAtstring¦nullstring|null false none Date the card was started to be worked on
                            dueAtstring¦nullstring|null false none Date the card is due
                            endAtstring¦nullstring|null false none Date the card ended
                            spentTimenumber¦nullnumber|null false none How much time has been spent on this
                            isOvertimeboolean¦nullboolean|null false none is the card over time?
                            sortnumber¦nullnumber|null false none Sort value
                            subtaskSortnumber¦nullnumber|null false none subtask sort value
                            linkedIdstring¦nullstring|null false none ID of the linked cardCardsVote false nonenonevote object, see below
                            poker CardsPoker false nonenonepoker object, see below
                            targetId_gantt[string]¦null[string]|null false none ID of card which is the child link in gantt view
                            linkType_gantt[number]¦null[number]|null false none ID of card which is the parent link in gantt view
                            linkId_gantt[string]¦null[string]|null false none ID of card which is the parent link in gantt view
                            cardNumbernumber¦nullnumber|null false noneA boardwise sequentially increasing number that is assigned
                            to every newly created card
                            A boardwise sequentially increasing number that is assigned to every newly created card
                            showActivitiesbooleantruenonenone
                            hideFinishedChecklistIfItemsAreHiddenboolean|nullfalsenonehide completed checklist?
                            -

                            Enumerated Values

                            +

                            Enumerated Values

                            @@ -19244,26 +14282,23 @@ UserSecurity
                            -

                            CardsVote

                            -

                            - - -

                            +

                            CardsVote

                            +

                            {
                            -  "question": "string",
                            -  "positive": [
                            -    "string"
                            +  "question": "string",
                            +  "positive": [
                            +    "string"
                               ],
                            -  "negative": [
                            -    "string"
                            +  "negative": [
                            +    "string"
                               ],
                            -  "end": "string",
                            -  "public": true,
                            -  "allowNonBoardMembers": true
                            +  "end": "string",
                            +  "public": true,
                            +  "allowNonBoardMembers": true
                             }
                             
                             
                            -

                            Properties

                            +

                            Properties

                            @@ -19319,50 +14354,47 @@ UserSecurity
                            -

                            CardsPoker

                            -

                            - - -

                            +

                            CardsPoker

                            +

                            {
                            -  "question": true,
                            -  "one": [
                            -    "string"
                            +  "question": true,
                            +  "one": [
                            +    "string"
                               ],
                            -  "two": [
                            -    "string"
                            +  "two": [
                            +    "string"
                               ],
                            -  "three": [
                            -    "string"
                            +  "three": [
                            +    "string"
                               ],
                            -  "five": [
                            -    "string"
                            +  "five": [
                            +    "string"
                               ],
                            -  "eight": [
                            -    "string"
                            +  "eight": [
                            +    "string"
                               ],
                            -  "thirteen": [
                            -    "string"
                            +  "thirteen": [
                            +    "string"
                               ],
                            -  "twenty": [
                            -    "string"
                            +  "twenty": [
                            +    "string"
                               ],
                            -  "forty": [
                            -    "string"
                            +  "forty": [
                            +    "string"
                               ],
                            -  "oneHundred": [
                            -    "string"
                            +  "oneHundred": [
                            +    "string"
                               ],
                            -  "unsure": [
                            -    "string"
                            +  "unsure": [
                            +    "string"
                               ],
                            -  "end": "string",
                            -  "allowNonBoardMembers": true,
                            -  "estimation": 0
                            +  "end": "string",
                            +  "allowNonBoardMembers": true,
                            +  "estimation": 0
                             }
                             
                             
                            -

                            Properties

                            +

                            Properties

                            @@ -19377,7 +14409,7 @@ UserSecurity - + @@ -19461,7 +14493,7 @@ UserSecurity - + @@ -19474,34 +14506,28 @@ UserSecurity
                            question booleantruefalse none none
                            allowNonBoardMembers booleantruefalse none none
                            -

                            CardsCustomfields

                            -

                            - - -

                            +

                            CardsCustomfields

                            +

                            {}
                             
                             
                            -

                            Properties

                            +

                            Properties

                            None

                            -

                            ChecklistItems

                            -

                            - - -

                            +

                            ChecklistItems

                            +

                            {
                            -  "title": "string",
                            -  "sort": 0,
                            -  "isFinished": true,
                            -  "checklistId": "string",
                            -  "cardId": "string",
                            -  "createdAt": "string",
                            -  "modifiedAt": "string"
                            +  "title": "string",
                            +  "sort": 0,
                            +  "isFinished": true,
                            +  "checklistId": "string",
                            +  "cardId": "string",
                            +  "createdAt": "string",
                            +  "modifiedAt": "string"
                             }
                             
                             
                            -

                            An item in a checklist

                            -

                            Properties

                            +

                            An item in a checklist

                            +

                            Properties

                            @@ -19550,7 +14576,7 @@ UserSecurity - + @@ -19564,24 +14590,22 @@ UserSecurity
                            createdAtstring¦nullstring|null false none none
                            -

                            Checklists

                            -

                            - - -

                            +

                            Checklists

                            +

                            {
                            -  "cardId": "string",
                            -  "title": "string",
                            -  "finishedAt": "string",
                            -  "showAtMinicard": true,
                            -  "createdAt": "string",
                            -  "modifiedAt": "string",
                            -  "sort": 0
                            +  "cardId": "string",
                            +  "title": "string",
                            +  "finishedAt": "string",
                            +  "createdAt": "string",
                            +  "modifiedAt": "string",
                            +  "sort": 0,
                            +  "hideCheckedChecklistItems": true,
                            +  "hideAllChecklistItems": true
                             }
                             
                             
                            -

                            A Checklist

                            -

                            Properties

                            +

                            A Checklist

                            +

                            Properties

                            @@ -19609,19 +14633,12 @@ UserSecurity - + - - - - - - - @@ -19642,39 +14659,50 @@ UserSecurity + + + + + + + + + + + + + +
                            finishedAtstring¦nullstring|null false none When was the checklist finished
                            showAtMinicardboolean¦nullfalsenoneShow at minicard. Default: false.
                            createdAt string truenone sorting value of the checklist
                            hideCheckedChecklistItemsboolean|nullfalsenonehide the checked checklist-items?
                            hideAllChecklistItemsboolean|nullfalsenonehide all checklist items ?
                            -

                            CustomFields

                            -

                            - - -

                            +

                            CustomFields

                            +

                            {
                            -  "boardIds": [
                            -    "string"
                            +  "boardIds": [
                            +    "string"
                               ],
                            -  "name": "string",
                            -  "type": "text",
                            -  "settings": {
                            -    "currencyCode": "string",
                            -    "dropdownItems": [
                            +  "name": "string",
                            +  "type": "text",
                            +  "settings": {
                            +    "currencyCode": "string",
                            +    "dropdownItems": [
                                   {}
                                 ],
                            -    "stringtemplateFormat": "string",
                            -    "stringtemplateSeparator": "string"
                            +    "stringtemplateFormat": "string",
                            +    "stringtemplateSeparator": "string"
                               },
                            -  "showOnCard": true,
                            -  "automaticallyOnCard": true,
                            -  "alwaysOnCard": true,
                            -  "showLabelOnMiniCard": true,
                            -  "showSumAtTopOfList": true,
                            -  "createdAt": "string",
                            -  "modifiedAt": "string"
                            +  "showOnCard": true,
                            +  "automaticallyOnCard": true,
                            +  "alwaysOnCard": true,
                            +  "showLabelOnMiniCard": true,
                            +  "showSumAtTopOfList": true,
                            +  "createdAt": "string",
                            +  "modifiedAt": "string"
                             }
                             
                             
                            -

                            A custom field on a card in the board

                            -

                            Properties

                            +

                            A custom field on a card in the board

                            +

                            Properties

                            @@ -19712,7 +14740,7 @@ UserSecurity - + @@ -19751,7 +14779,7 @@ UserSecurity - + @@ -19765,7 +14793,7 @@ UserSecurity
                            CustomFieldsSettings true nonenonesettings of the custom field
                            showOnCard
                            createdAtstring¦nullstring|null false none none
                            -

                            Enumerated Values

                            +

                            Enumerated Values

                            @@ -19804,22 +14832,19 @@ UserSecurity
                            -

                            CustomFieldsSettings

                            -

                            - - -

                            +

                            CustomFieldsSettings

                            +

                            {
                            -  "currencyCode": "string",
                            -  "dropdownItems": [
                            +  "currencyCode": "string",
                            +  "dropdownItems": [
                                 {}
                               ],
                            -  "stringtemplateFormat": "string",
                            -  "stringtemplateSeparator": "string"
                            +  "stringtemplateFormat": "string",
                            +  "stringtemplateSeparator": "string"
                             }
                             
                             
                            -

                            Properties

                            +

                            Properties

                            @@ -19861,39 +14886,33 @@ UserSecurity
                            -

                            CustomFieldsSettingsDropdownitems

                            -

                            - - -

                            +

                            CustomFieldsSettingsDropdownitems

                            +

                            {}
                             
                             
                            -

                            Properties

                            +

                            Properties

                            None

                            -

                            Integrations

                            -

                            - - -

                            +

                            Integrations

                            +

                            {
                            -  "enabled": true,
                            -  "title": "string",
                            -  "type": "string",
                            -  "activities": [
                            -    "string"
                            +  "enabled": true,
                            +  "title": "string",
                            +  "type": "string",
                            +  "activities": [
                            +    "string"
                               ],
                            -  "url": "string",
                            -  "token": "string",
                            -  "boardId": "string",
                            -  "createdAt": "string",
                            -  "modifiedAt": "string",
                            -  "userId": "string"
                            +  "url": "string",
                            +  "token": "string",
                            +  "boardId": "string",
                            +  "createdAt": "string",
                            +  "modifiedAt": "string",
                            +  "userId": "string"
                             }
                             
                             
                            -

                            Integration with third-party applications

                            -

                            Properties

                            +

                            Integration with third-party applications

                            +

                            Properties

                            @@ -19914,7 +14933,7 @@ UserSecurity - + @@ -19942,7 +14961,7 @@ UserSecurity - + @@ -19977,34 +14996,32 @@ UserSecurity
                            titlestring¦nullstring|null false none name of the integration
                            tokenstring¦nullstring|null false none token of the integration
                            -

                            Lists

                            -

                            - - -

                            +

                            Lists

                            +

                            {
                            -  "title": "string",
                            -  "starred": true,
                            -  "archived": true,
                            -  "archivedAt": "string",
                            -  "boardId": "string",
                            -  "swimlaneId": "string",
                            -  "createdAt": "string",
                            -  "sort": 0,
                            -  "updatedAt": "string",
                            -  "modifiedAt": "string",
                            -  "wipLimit": {
                            -    "value": 0,
                            -    "enabled": true,
                            -    "soft": true
                            +  "title": "string",
                            +  "starred": true,
                            +  "archived": true,
                            +  "archivedAt": "string",
                            +  "boardId": "string",
                            +  "swimlaneId": "string",
                            +  "createdAt": "string",
                            +  "sort": 0,
                            +  "updatedAt": "string",
                            +  "modifiedAt": "string",
                            +  "wipLimit": {
                            +    "value": 0,
                            +    "enabled": true,
                            +    "soft": true
                               },
                            -  "color": "white",
                            -  "type": "string"
                            +  "color": "white",
                            +  "type": "string",
                            +  "collapsed": true
                             }
                             
                             
                            -

                            A list (column) in the Wekan board.

                            -

                            Properties

                            +

                            A list (column) in the Wekan board.

                            +

                            Properties

                            @@ -20025,10 +15042,10 @@ UserSecurity - + - + @@ -20039,7 +15056,7 @@ UserSecurity - + @@ -20067,14 +15084,14 @@ UserSecurity - + - + @@ -20091,11 +15108,11 @@ UserSecurity - + - + @@ -20107,9 +15124,16 @@ UserSecurity + + + + + + +
                            starredboolean¦nullboolean|null false noneif a list is stared
                            then we put it on the top
                            if a list is stared then we put it on the top
                            archived
                            archivedAtstring¦nullstring|null false none latest archiving date
                            sortnumber¦nullnumber|null false none is the list sorted
                            updatedAtstring¦nullstring|null false none last update of the listListsWiplimit false nonenoneWIP object, see below
                            colorstring¦nullstring|null false none the color of the listnone The type of list
                            collapsedbooleantruenoneis the list collapsed
                            -

                            Enumerated Values

                            +

                            Enumerated Values

                            @@ -20220,19 +15244,16 @@ UserSecurity
                            -

                            ListsWiplimit

                            -

                            - - -

                            +

                            ListsWiplimit

                            +

                            {
                            -  "value": 0,
                            -  "enabled": true,
                            -  "soft": true
                            +  "value": 0,
                            +  "enabled": true,
                            +  "soft": true
                             }
                             
                             
                            -

                            Properties

                            +

                            Properties

                            @@ -20267,27 +15288,25 @@ UserSecurity
                            -

                            Swimlanes

                            -

                            - - -

                            +

                            Swimlanes

                            +

                            {
                            -  "title": "string",
                            -  "archived": true,
                            -  "archivedAt": "string",
                            -  "boardId": "string",
                            -  "createdAt": "string",
                            -  "sort": 0,
                            -  "color": "white",
                            -  "updatedAt": "string",
                            -  "modifiedAt": "string",
                            -  "type": "string"
                            +  "title": "string",
                            +  "archived": true,
                            +  "archivedAt": "string",
                            +  "boardId": "string",
                            +  "createdAt": "string",
                            +  "sort": 0,
                            +  "color": "white",
                            +  "updatedAt": "string",
                            +  "modifiedAt": "string",
                            +  "type": "string",
                            +  "collapsed": true
                             }
                             
                             
                            -

                            A swimlane is an line in the kaban board.

                            -

                            Properties

                            +

                            A swimlane is an line in the kaban board.

                            +

                            Properties

                            @@ -20315,7 +15334,7 @@ UserSecurity - + @@ -20336,21 +15355,21 @@ UserSecurity - + - + - + @@ -20369,9 +15388,16 @@ UserSecurity + + + + + + +
                            archivedAtstring¦nullstring|null false none latest archiving date of the swimlane
                            sortnumber¦nullnumber|null false none the sort value of the swimlane
                            colorstring¦nullstring|null false none the color of the swimlane
                            updatedAtstring¦nullstring|null false none when was the swimlane last editednone The type of swimlane
                            collapsedbooleantruenoneis the swimlane collapsed
                            -

                            Enumerated Values

                            +

                            Enumerated Values

                            @@ -20482,27 +15508,7 @@ UserSecurity
                            - - - - - - - - - - - - - - - - - - - - - +
                            @@ -20540,10 +15546,6 @@ UserSecurity Go - - PHP - -
                            diff --git a/public/api/wekan.yml b/public/api/wekan.yml index b638b2a04..9fd90b2cc 100644 --- a/public/api/wekan.yml +++ b/public/api/wekan.yml @@ -1,7 +1,7 @@ swagger: '2.0' info: title: Wekan REST API - version: v7.43 + version: v7.84 description: | The REST API allows you to control and extend Wekan with ease. @@ -134,204 +134,6 @@ paths: description: | Error in registration - /api/boards: - get: - operationId: get_public_boards - summary: Get all public boards - tags: - - Boards - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: array - items: - type: object - properties: - _id: - type: string - title: - type: string - post: - operationId: new_board - summary: Create a board - description: | - This allows to create a board. - - The color has to be chosen between `belize`, `nephritis`, `pomegranate`, - `pumpkin`, `wisteria`, `moderatepink`, `strongcyan`, - `limegreen`, `midnight`, `dark`, `relax`, `corteza`: - - Wekan logo - tags: - - Boards - consumes: - - multipart/form-data - - application/json - parameters: - - name: title - in: formData - description: | - the new title of the board - type: string - required: true - - name: owner - in: formData - description: | - "ABCDE12345" <= User ID in Wekan. - (Not username or email) - type: string - required: true - - name: isAdmin - in: formData - description: | - is the owner an admin of the board (default true) - type: boolean - required: false - - name: isActive - in: formData - description: | - is the board active (default true) - type: boolean - required: false - - name: isNoComments - in: formData - description: | - disable comments (default false) - type: boolean - required: false - - name: isCommentOnly - in: formData - description: | - only enable comments (default false) - type: boolean - required: false - - name: isWorker - in: formData - description: | - only move cards, assign himself to card and comment (default false) - type: boolean - required: false - - name: permission - in: formData - description: | - "private" board <== Set to "public" if you - want public Wekan board - type: string - required: false - - name: color - in: formData - description: | - the color of the board - type: string - required: false - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - defaultSwimlaneId: - type: string - /api/boards/{board}: - get: - operationId: get_board - summary: Get the board with that particular ID - tags: - - Boards - parameters: - - name: board - in: path - description: | - the ID of the board to retrieve the data - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - $ref: "#/definitions/Boards" - delete: - operationId: delete_board - summary: Delete a board - tags: - - Boards - parameters: - - name: board - in: path - description: | - the ID of the board - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - /api/boards/{board}/attachments: - get: - operationId: get_board_attachments - summary: Get the list of attachments of a board - tags: - - Boards - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: array - items: - type: object - properties: - attachmentId: - type: string - attachmentName: - type: string - attachmentType: - type: string - url: - type: string - urlDownload: - type: string - boardId: - type: string - swimlaneId: - type: string - listId: - type: string - cardId: - type: string /api/boards/{board}/attachments/{attachment}/export: get: operationId: exportJson @@ -963,41 +765,6 @@ paths: properties: board_cards_count: type: integer - /api/boards/{board}/copy: - post: - operationId: copy_board - summary: Copy a board to a new one - description: | - If your are board admin or wekan admin, this copies the - given board to a new one. - tags: - - Boards - consumes: - - multipart/form-data - - application/json - parameters: - - name: title - in: formData - description: | - the title of the new board (default to old one) - type: string - required: true - - name: board - in: path - description: | - the board - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: string /api/boards/{board}/custom-fields: get: operationId: get_all_custom_fields @@ -1641,40 +1408,6 @@ paths: 200 response schema: $ref: "#/definitions/Integrations" - /api/boards/{board}/labels: - put: - operationId: add_board_label - summary: Add a label to a board - description: | - If the board doesn't have the name/color label, this function - adds the label to the board. - tags: - - Boards - consumes: - - multipart/form-data - - application/json - parameters: - - name: label - in: formData - description: the label value - type: string - required: true - - name: board - in: path - description: | - the board - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: string /api/boards/{board}/lists: get: operationId: get_all_lists @@ -2277,61 +2010,6 @@ paths: properties: list_cards_count: type: integer - /api/boards/{board}/members/{member}: - post: - operationId: set_board_member_permission - summary: Change the permission of a member of a board - tags: - - Boards - - Users - consumes: - - multipart/form-data - - application/json - parameters: - - name: isAdmin - in: formData - description: | - admin capability - type: boolean - required: true - - name: isNoComments - in: formData - description: | - NoComments capability - type: boolean - required: true - - name: isCommentOnly - in: formData - description: | - CommentsOnly capability - type: boolean - required: true - - name: isWorker - in: formData - description: | - Worker capability - type: boolean - required: true - - name: board - in: path - description: | - the ID of the board that we are changing - type: string - required: true - - name: member - in: path - description: | - the ID of the user to change permissions - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response /api/boards/{board}/swimlanes: get: operationId: get_all_swimlanes @@ -2538,529 +2216,7 @@ paths: type: string listId: type: string - /api/boards/{board}/title: - put: - operationId: update_board_title - summary: Update the title of a board - tags: - - Boards - consumes: - - multipart/form-data - - application/json - parameters: - - name: title - in: formData - description: | - the new title for the board - type: string - required: true - - name: board - in: path - description: | - the ID of the board to update - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - /api/boards_count: - get: - operationId: get_boards_count - summary: Get public and private boards count - tags: - - Boards - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - private: - type: integer - public: - type: integer - /api/users/{user}/boards: - get: - operationId: get_boards_from_user - summary: Get all boards attached to a user - tags: - - Boards - parameters: - - name: user - in: path - description: | - the ID of the user to retrieve the data - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: array - items: - type: object - properties: - _id: - type: string - title: - type: string definitions: - Boards: - type: object - description: This is a Board. - properties: - title: - description: | - The title of the board - type: string - slug: - description: | - The title slugified. - type: string - archived: - description: | - Is the board archived? - type: boolean - archivedAt: - description: | - Latest archiving time of the board - type: string - x-nullable: true - createdAt: - description: | - Creation time of the board - type: string - modifiedAt: - description: | - Last modification time of the board - type: string - x-nullable: true - stars: - description: | - How many stars the board has - type: number - labels: - description: | - List of labels attached to a board - type: array - items: - $ref: "#/definitions/BoardsLabels" - x-nullable: true - members: - description: | - List of members of a board - type: array - items: - $ref: "#/definitions/BoardsMembers" - permission: - description: | - visibility of the board - type: string - enum: - - public - - private - orgs: - description: | - the list of organizations that a board belongs to - type: array - items: - $ref: "#/definitions/BoardsOrgs" - x-nullable: true - teams: - description: | - the list of teams that a board belongs to - type: array - items: - $ref: "#/definitions/BoardsTeams" - x-nullable: true - color: - description: | - The color of the board. - type: string - enum: - - belize - - nephritis - - pomegranate - - pumpkin - - wisteria - - moderatepink - - strongcyan - - limegreen - - midnight - - dark - - relax - - corteza - - clearblue - - natural - - modern - - moderndark - - exodark - backgroundImageURL: - description: | - The background image URL of the board. - type: string - x-nullable: true - allowsCardCounterList: - description: | - Show card counter per list - type: boolean - allowsBoardMemberList: - description: | - Show board member list - type: boolean - description: - description: | - The description of the board - type: string - x-nullable: true - subtasksDefaultBoardId: - description: | - The default board ID assigned to subtasks. - type: string - x-nullable: true - subtasksDefaultListId: - description: | - The default List ID assigned to subtasks. - type: string - x-nullable: true - dateSettingsDefaultBoardId: - type: string - x-nullable: true - dateSettingsDefaultListId: - type: string - x-nullable: true - allowsSubtasks: - description: | - Does the board allows subtasks? - type: boolean - allowsAttachments: - description: | - Does the board allows attachments? - type: boolean - allowsChecklists: - description: | - Does the board allows checklists? - type: boolean - allowsComments: - description: | - Does the board allows comments? - type: boolean - allowsDescriptionTitle: - description: | - Does the board allows description title? - type: boolean - allowsDescriptionText: - description: | - Does the board allows description text? - type: boolean - allowsDescriptionTextOnMinicard: - description: | - Does the board allows description text on minicard? - type: boolean - allowsCoverAttachmentOnMinicard: - description: | - Does the board allows cover attachment on minicard? - type: boolean - allowsBadgeAttachmentOnMinicard: - description: | - Does the board allows badge attachment on minicard? - type: boolean - allowsCardSortingByNumberOnMinicard: - description: | - Does the board allows card sorting by number on minicard? - type: boolean - allowsCardNumber: - description: | - Does the board allows card numbers? - type: boolean - allowsActivities: - description: | - Does the board allows comments? - type: boolean - allowsLabels: - description: | - Does the board allows labels? - type: boolean - allowsCreator: - description: | - Does the board allow creator? - type: boolean - allowsCreatorOnMinicard: - description: | - Does the board allow creator? - type: boolean - allowsAssignee: - description: | - Does the board allows assignee? - type: boolean - allowsMembers: - description: | - Does the board allows members? - type: boolean - allowsRequestedBy: - description: | - Does the board allows requested by? - type: boolean - allowsCardSortingByNumber: - description: | - Does the board allows card sorting by number? - type: boolean - allowsShowLists: - description: | - Does the board allows show lists on the card? - type: boolean - allowsAssignedBy: - description: | - Does the board allows requested by? - type: boolean - allowsReceivedDate: - description: | - Does the board allows received date? - type: boolean - allowsStartDate: - description: | - Does the board allows start date? - type: boolean - allowsEndDate: - description: | - Does the board allows end date? - type: boolean - allowsDueDate: - description: | - Does the board allows due date? - type: boolean - presentParentTask: - description: | - Controls how to present the parent task: - - - `prefix-with-full-path`: add a prefix with the full path - - `prefix-with-parent`: add a prefisx with the parent name - - `subtext-with-full-path`: add a subtext with the full path - - `subtext-with-parent`: add a subtext with the parent name - - `no-parent`: does not show the parent at all - type: string - enum: - - prefix-with-full-path - - prefix-with-parent - - subtext-with-full-path - - subtext-with-parent - - no-parent - x-nullable: true - receivedAt: - description: | - Date the card was received - type: string - x-nullable: true - startAt: - description: | - Starting date of the board. - type: string - x-nullable: true - dueAt: - description: | - Due date of the board. - type: string - x-nullable: true - endAt: - description: | - End date of the board. - type: string - x-nullable: true - spentTime: - description: | - Time spent in the board. - type: number - x-nullable: true - isOvertime: - description: | - Is the board overtimed? - type: boolean - x-nullable: true - type: - description: | - The type of board - possible values: board, template-board, template-container - type: string - enum: - - board - - template-board - - template-container - sort: - description: | - Sort value - type: number - required: - - title - - slug - - archived - - createdAt - - stars - - members - - permission - - color - - allowsCardCounterList - - allowsBoardMemberList - - allowsSubtasks - - allowsAttachments - - allowsChecklists - - allowsComments - - allowsDescriptionTitle - - allowsDescriptionText - - allowsDescriptionTextOnMinicard - - allowsCoverAttachmentOnMinicard - - allowsBadgeAttachmentOnMinicard - - allowsCardSortingByNumberOnMinicard - - allowsCardNumber - - allowsActivities - - allowsLabels - - allowsCreator - - allowsCreatorOnMinicard - - allowsAssignee - - allowsMembers - - allowsRequestedBy - - allowsCardSortingByNumber - - allowsShowLists - - allowsAssignedBy - - allowsReceivedDate - - allowsStartDate - - allowsEndDate - - allowsDueDate - - type - - sort - BoardsLabels: - type: object - properties: - _id: - description: | - Unique id of a label - type: string - name: - description: | - Name of a label - type: string - color: - description: | - color of a label. - - Can be amongst `green`, `yellow`, `orange`, `red`, `purple`, - `blue`, `sky`, `lime`, `pink`, `black`, - `silver`, `peachpuff`, `crimson`, `plum`, `darkgreen`, - `slateblue`, `magenta`, `gold`, `navy`, `gray`, - `saddlebrown`, `paleturquoise`, `mistyrose`, `indigo` - type: string - enum: - - white - - green - - yellow - - orange - - red - - purple - - blue - - sky - - lime - - pink - - black - - silver - - peachpuff - - crimson - - plum - - darkgreen - - slateblue - - magenta - - gold - - navy - - gray - - saddlebrown - - paleturquoise - - mistyrose - - indigo - required: - - _id - - color - BoardsMembers: - type: object - properties: - userId: - description: | - The uniq ID of the member - type: string - isAdmin: - description: | - Is the member an admin of the board? - type: boolean - isActive: - description: | - Is the member active? - type: boolean - isNoComments: - description: | - Is the member not allowed to make comments - type: boolean - isCommentOnly: - description: | - Is the member only allowed to comment on the board - type: boolean - isWorker: - description: | - Is the member only allowed to move card, assign himself to card and comment - type: boolean - required: - - userId - - isAdmin - - isActive - BoardsOrgs: - type: object - properties: - orgId: - description: | - The uniq ID of the organization - type: string - orgDisplayName: - description: | - The display name of the organization - type: string - isActive: - description: | - Is the organization active? - type: boolean - required: - - orgId - - orgDisplayName - - isActive - BoardsTeams: - type: object - properties: - teamId: - description: | - The uniq ID of the team - type: string - teamDisplayName: - description: | - The display name of the team - type: string - isActive: - description: | - Is the team active? - type: boolean - required: - - teamId - - teamDisplayName - - isActive CardComments: type: object description: A comment on a card @@ -3314,6 +2470,13 @@ definitions: to every newly created card type: number x-nullable: true + showActivities: + type: boolean + hideFinishedChecklistIfItemsAreHidden: + description: | + hide completed checklist? + type: boolean + x-nullable: true required: - archived - swimlaneId @@ -3322,6 +2485,7 @@ definitions: - dateLastActivity - userId - type + - showActivities CardsVote: type: object properties: @@ -3434,9 +2598,6 @@ definitions: description: | poker estimation value type: number - required: - - question - - allowNonBoardMembers CardsCustomfields: type: object ChecklistItems: @@ -3492,11 +2653,6 @@ definitions: When was the checklist finished type: string x-nullable: true - showAtMinicard: - description: | - Show at minicard. Default: false. - type: boolean - x-nullable: true createdAt: description: | Creation date of the checklist @@ -3507,6 +2663,16 @@ definitions: description: | sorting value of the checklist type: number + hideCheckedChecklistItems: + description: | + hide the checked checklist-items? + type: boolean + x-nullable: true + hideAllChecklistItems: + description: | + hide all checklist items ? + type: boolean + x-nullable: true required: - cardId - title @@ -3736,6 +2902,10 @@ definitions: description: | The type of list type: string + collapsed: + description: | + is the list collapsed + type: boolean required: - title - archived @@ -3744,6 +2914,7 @@ definitions: - createdAt - modifiedAt - type + - collapsed ListsWiplimit: type: object properties: @@ -3835,6 +3006,10 @@ definitions: description: | The type of swimlane type: string + collapsed: + description: | + is the swimlane collapsed + type: boolean required: - title - archived @@ -3842,3 +3017,4 @@ definitions: - createdAt - modifiedAt - type + - collapsed diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png index bcd461151..bc7dba216 100644 Binary files a/public/apple-touch-icon.png and b/public/apple-touch-icon.png differ diff --git a/public/card-colors.png b/public/card-colors.png index 91d3a5878..14062fd77 100644 Binary files a/public/card-colors.png and b/public/card-colors.png differ diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png index 0b9a3e223..f1c7d5d8c 100644 Binary files a/public/favicon-16x16.png and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png index 2de6ea1bd..faca1cd2f 100644 Binary files a/public/favicon-32x32.png and b/public/favicon-32x32.png differ diff --git a/public/ios/100.png b/public/ios/100.png index bf44f8d93..0522f6824 100644 Binary files a/public/ios/100.png and b/public/ios/100.png differ diff --git a/public/ios/1024.png b/public/ios/1024.png index d9926133f..56139b7f8 100644 Binary files a/public/ios/1024.png and b/public/ios/1024.png differ diff --git a/public/ios/114.png b/public/ios/114.png index e4a3c55a2..d9aec1a91 100644 Binary files a/public/ios/114.png and b/public/ios/114.png differ diff --git a/public/ios/120.png b/public/ios/120.png index 81b799a5f..cdc3b8f52 100644 Binary files a/public/ios/120.png and b/public/ios/120.png differ diff --git a/public/ios/128.png b/public/ios/128.png index 43d9e4740..694041bd7 100644 Binary files a/public/ios/128.png and b/public/ios/128.png differ diff --git a/public/ios/144.png b/public/ios/144.png index 4f7050c99..6a7a896b8 100644 Binary files a/public/ios/144.png and b/public/ios/144.png differ diff --git a/public/ios/152.png b/public/ios/152.png index e7436ab98..8f8ad2197 100644 Binary files a/public/ios/152.png and b/public/ios/152.png differ diff --git a/public/ios/16.png b/public/ios/16.png index 2a7672ed2..4e9e18fe2 100644 Binary files a/public/ios/16.png and b/public/ios/16.png differ diff --git a/public/ios/167.png b/public/ios/167.png index 5331cee3b..7162d305f 100644 Binary files a/public/ios/167.png and b/public/ios/167.png differ diff --git a/public/ios/180.png b/public/ios/180.png index 29e322a0d..b62abe93c 100644 Binary files a/public/ios/180.png and b/public/ios/180.png differ diff --git a/public/ios/192.png b/public/ios/192.png index b6246fb58..a4cdc8eee 100644 Binary files a/public/ios/192.png and b/public/ios/192.png differ diff --git a/public/ios/20.png b/public/ios/20.png index e1aac1eef..4e89454df 100644 Binary files a/public/ios/20.png and b/public/ios/20.png differ diff --git a/public/ios/256.png b/public/ios/256.png index d0c581731..2660986d9 100644 Binary files a/public/ios/256.png and b/public/ios/256.png differ diff --git a/public/ios/29.png b/public/ios/29.png index b46d117e1..fc034999f 100644 Binary files a/public/ios/29.png and b/public/ios/29.png differ diff --git a/public/ios/32.png b/public/ios/32.png index 7bd6588d6..b57157a1f 100644 Binary files a/public/ios/32.png and b/public/ios/32.png differ diff --git a/public/ios/40.png b/public/ios/40.png index 34b9b1c2f..b400821c2 100644 Binary files a/public/ios/40.png and b/public/ios/40.png differ diff --git a/public/ios/50.png b/public/ios/50.png index e04186a6b..9421da3a5 100644 Binary files a/public/ios/50.png and b/public/ios/50.png differ diff --git a/public/ios/512.png b/public/ios/512.png index 3d8977986..0f69b9976 100644 Binary files a/public/ios/512.png and b/public/ios/512.png differ diff --git a/public/ios/57.png b/public/ios/57.png index 37d1c5dcf..26bdaad01 100644 Binary files a/public/ios/57.png and b/public/ios/57.png differ diff --git a/public/ios/58.png b/public/ios/58.png index 9ecba7fc6..3671b042d 100644 Binary files a/public/ios/58.png and b/public/ios/58.png differ diff --git a/public/ios/60.png b/public/ios/60.png index 7d168a905..8986a56e6 100644 Binary files a/public/ios/60.png and b/public/ios/60.png differ diff --git a/public/ios/64.png b/public/ios/64.png index b73abc692..1398d20d5 100644 Binary files a/public/ios/64.png and b/public/ios/64.png differ diff --git a/public/ios/72.png b/public/ios/72.png index c8d197893..c62db8504 100644 Binary files a/public/ios/72.png and b/public/ios/72.png differ diff --git a/public/ios/76.png b/public/ios/76.png index ed0644110..fcc879aeb 100644 Binary files a/public/ios/76.png and b/public/ios/76.png differ diff --git a/public/ios/80.png b/public/ios/80.png index 497dd8b4c..79bb8f21c 100644 Binary files a/public/ios/80.png and b/public/ios/80.png differ diff --git a/public/ios/87.png b/public/ios/87.png index be2ec222b..8e25016b6 100644 Binary files a/public/ios/87.png and b/public/ios/87.png differ diff --git a/public/logo-header.png b/public/logo-header.png index 16ffa102a..f6248bca4 100644 Binary files a/public/logo-header.png and b/public/logo-header.png differ diff --git a/public/maskable_icon.png b/public/maskable_icon.png index cc8818a43..6a5ca67ae 100644 Binary files a/public/maskable_icon.png and b/public/maskable_icon.png differ diff --git a/public/monochrome-icon-512x512.png b/public/monochrome-icon-512x512.png index feba2ac7d..20d30f291 100644 Binary files a/public/monochrome-icon-512x512.png and b/public/monochrome-icon-512x512.png differ diff --git a/public/mstile-310x150.png b/public/mstile-310x150.png index f80bea7af..2cee8d14f 100644 Binary files a/public/mstile-310x150.png and b/public/mstile-310x150.png differ diff --git a/public/mstile-310x310.png b/public/mstile-310x310.png index 4d7ac6517..3ab34d8cc 100644 Binary files a/public/mstile-310x310.png and b/public/mstile-310x310.png differ diff --git a/public/mstile-70x70.png b/public/mstile-70x70.png index 8b306ba5c..e55fdf479 100644 Binary files a/public/mstile-70x70.png and b/public/mstile-70x70.png differ diff --git a/public/old-icons/favicon-16x16.png b/public/old-icons/favicon-16x16.png index 57eee7644..f3bd4f2f0 100644 Binary files a/public/old-icons/favicon-16x16.png and b/public/old-icons/favicon-16x16.png differ diff --git a/public/old-icons/favicon-32x32.png b/public/old-icons/favicon-32x32.png index 8fb6ae020..e96014405 100644 Binary files a/public/old-icons/favicon-32x32.png and b/public/old-icons/favicon-32x32.png differ diff --git a/public/old-site.webmanifest b/public/old-site.webmanifest new file mode 100644 index 000000000..51e25650c --- /dev/null +++ b/public/old-site.webmanifest @@ -0,0 +1,524 @@ +{ + "name": "Wekan", + "short_name": "Wekan", + "icons": [ + { + "src": "svg-etc/wekan-logo-512.svg", + "sizes": "any", + "type": "image/svg" + }, + { + "src": "android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "Square150x150Logo.scale-100.png", + "sizes": "150x150", + "type": "image/png" + }, + { + "src": "Square44x44Logo.scale-100.png", + "sizes": "44x44", + "type": "image/png" + }, + { + "src": "StoreLogo.scale-100.png", + "sizes": "50x50", + "type": "image/png" + }, + { + "src": "maskable_icon.png", + "sizes": "474x474", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "monochrome-icon-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "monochrome" + }, + { + "src": "windows11/SmallTile.scale-100.png", + "sizes": "71x71" + }, + { + "src": "windows11/SmallTile.scale-125.png", + "sizes": "89x89" + }, + { + "src": "windows11/SmallTile.scale-150.png", + "sizes": "107x107" + }, + { + "src": "windows11/SmallTile.scale-200.png", + "sizes": "142x142" + }, + { + "src": "windows11/SmallTile.scale-400.png", + "sizes": "284x284" + }, + { + "src": "windows11/Square150x150Logo.scale-100.png", + "sizes": "150x150" + }, + { + "src": "windows11/Square150x150Logo.scale-125.png", + "sizes": "188x188" + }, + { + "src": "windows11/Square150x150Logo.scale-150.png", + "sizes": "225x225" + }, + { + "src": "windows11/Square150x150Logo.scale-200.png", + "sizes": "300x300" + }, + { + "src": "windows11/Square150x150Logo.scale-400.png", + "sizes": "600x600" + }, + { + "src": "windows11/Wide310x150Logo.scale-100.png", + "sizes": "310x150" + }, + { + "src": "windows11/Wide310x150Logo.scale-125.png", + "sizes": "388x188" + }, + { + "src": "windows11/Wide310x150Logo.scale-150.png", + "sizes": "465x225" + }, + { + "src": "windows11/Wide310x150Logo.scale-200.png", + "sizes": "620x300" + }, + { + "src": "windows11/Wide310x150Logo.scale-400.png", + "sizes": "1240x600" + }, + { + "src": "windows11/LargeTile.scale-100.png", + "sizes": "310x310" + }, + { + "src": "windows11/LargeTile.scale-125.png", + "sizes": "388x388" + }, + { + "src": "windows11/LargeTile.scale-150.png", + "sizes": "465x465" + }, + { + "src": "windows11/LargeTile.scale-200.png", + "sizes": "620x620" + }, + { + "src": "windows11/LargeTile.scale-400.png", + "sizes": "1240x1240" + }, + { + "src": "windows11/Square44x44Logo.scale-100.png", + "sizes": "44x44" + }, + { + "src": "windows11/Square44x44Logo.scale-125.png", + "sizes": "55x55" + }, + { + "src": "windows11/Square44x44Logo.scale-150.png", + "sizes": "66x66" + }, + { + "src": "windows11/Square44x44Logo.scale-200.png", + "sizes": "88x88" + }, + { + "src": "windows11/Square44x44Logo.scale-400.png", + "sizes": "176x176" + }, + { + "src": "windows11/StoreLogo.scale-100.png", + "sizes": "50x50" + }, + { + "src": "windows11/StoreLogo.scale-125.png", + "sizes": "63x63" + }, + { + "src": "windows11/StoreLogo.scale-150.png", + "sizes": "75x75" + }, + { + "src": "windows11/StoreLogo.scale-200.png", + "sizes": "100x100" + }, + { + "src": "windows11/StoreLogo.scale-400.png", + "sizes": "200x200" + }, + { + "src": "windows11/SplashScreen.scale-100.png", + "sizes": "620x300" + }, + { + "src": "windows11/SplashScreen.scale-125.png", + "sizes": "775x375" + }, + { + "src": "windows11/SplashScreen.scale-150.png", + "sizes": "930x450" + }, + { + "src": "windows11/SplashScreen.scale-200.png", + "sizes": "1240x600" + }, + { + "src": "windows11/SplashScreen.scale-400.png", + "sizes": "2480x1200" + }, + { + "src": "windows11/Square44x44Logo.targetsize-16.png", + "sizes": "16x16" + }, + { + "src": "windows11/Square44x44Logo.targetsize-20.png", + "sizes": "20x20" + }, + { + "src": "windows11/Square44x44Logo.targetsize-24.png", + "sizes": "24x24" + }, + { + "src": "windows11/Square44x44Logo.targetsize-30.png", + "sizes": "30x30" + }, + { + "src": "windows11/Square44x44Logo.targetsize-32.png", + "sizes": "32x32" + }, + { + "src": "windows11/Square44x44Logo.targetsize-36.png", + "sizes": "36x36" + }, + { + "src": "windows11/Square44x44Logo.targetsize-40.png", + "sizes": "40x40" + }, + { + "src": "windows11/Square44x44Logo.targetsize-44.png", + "sizes": "44x44" + }, + { + "src": "windows11/Square44x44Logo.targetsize-48.png", + "sizes": "48x48" + }, + { + "src": "windows11/Square44x44Logo.targetsize-60.png", + "sizes": "60x60" + }, + { + "src": "windows11/Square44x44Logo.targetsize-64.png", + "sizes": "64x64" + }, + { + "src": "windows11/Square44x44Logo.targetsize-72.png", + "sizes": "72x72" + }, + { + "src": "windows11/Square44x44Logo.targetsize-80.png", + "sizes": "80x80" + }, + { + "src": "windows11/Square44x44Logo.targetsize-96.png", + "sizes": "96x96" + }, + { + "src": "windows11/Square44x44Logo.targetsize-256.png", + "sizes": "256x256" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-16.png", + "sizes": "16x16" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-20.png", + "sizes": "20x20" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-24.png", + "sizes": "24x24" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-30.png", + "sizes": "30x30" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-32.png", + "sizes": "32x32" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-36.png", + "sizes": "36x36" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-40.png", + "sizes": "40x40" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-44.png", + "sizes": "44x44" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-48.png", + "sizes": "48x48" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-60.png", + "sizes": "60x60" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-64.png", + "sizes": "64x64" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-72.png", + "sizes": "72x72" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-80.png", + "sizes": "80x80" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-96.png", + "sizes": "96x96" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-256.png", + "sizes": "256x256" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-16.png", + "sizes": "16x16" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-20.png", + "sizes": "20x20" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-24.png", + "sizes": "24x24" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-30.png", + "sizes": "30x30" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-32.png", + "sizes": "32x32" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-36.png", + "sizes": "36x36" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-40.png", + "sizes": "40x40" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-44.png", + "sizes": "44x44" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-48.png", + "sizes": "48x48" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-60.png", + "sizes": "60x60" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-64.png", + "sizes": "64x64" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-72.png", + "sizes": "72x72" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-80.png", + "sizes": "80x80" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-96.png", + "sizes": "96x96" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-256.png", + "sizes": "256x256" + }, + { + "src": "android/android-launchericon-512-512.png", + "sizes": "512x512" + }, + { + "src": "android/android-launchericon-192-192.png", + "sizes": "192x192" + }, + { + "src": "android/android-launchericon-144-144.png", + "sizes": "144x144" + }, + { + "src": "android/android-launchericon-96-96.png", + "sizes": "96x96" + }, + { + "src": "android/android-launchericon-72-72.png", + "sizes": "72x72" + }, + { + "src": "android/android-launchericon-48-48.png", + "sizes": "48x48" + }, + { + "src": "ios/16.png", + "sizes": "16x16" + }, + { + "src": "ios/20.png", + "sizes": "20x20" + }, + { + "src": "ios/29.png", + "sizes": "29x29" + }, + { + "src": "ios/32.png", + "sizes": "32x32" + }, + { + "src": "ios/40.png", + "sizes": "40x40" + }, + { + "src": "ios/50.png", + "sizes": "50x50" + }, + { + "src": "ios/57.png", + "sizes": "57x57" + }, + { + "src": "ios/58.png", + "sizes": "58x58" + }, + { + "src": "ios/60.png", + "sizes": "60x60" + }, + { + "src": "ios/64.png", + "sizes": "64x64" + }, + { + "src": "ios/72.png", + "sizes": "72x72" + }, + { + "src": "ios/76.png", + "sizes": "76x76" + }, + { + "src": "ios/80.png", + "sizes": "80x80" + }, + { + "src": "ios/87.png", + "sizes": "87x87" + }, + { + "src": "ios/100.png", + "sizes": "100x100" + }, + { + "src": "ios/114.png", + "sizes": "114x114" + }, + { + "src": "ios/120.png", + "sizes": "120x120" + }, + { + "src": "ios/128.png", + "sizes": "128x128" + }, + { + "src": "ios/144.png", + "sizes": "144x144" + }, + { + "src": "ios/152.png", + "sizes": "152x152" + }, + { + "src": "ios/167.png", + "sizes": "167x167" + }, + { + "src": "ios/180.png", + "sizes": "180x180" + }, + { + "src": "ios/192.png", + "sizes": "192x192" + }, + { + "src": "ios/256.png", + "sizes": "256x256" + }, + { + "src": "ios/512.png", + "sizes": "512x512" + }, + { + "src": "ios/1024.png", + "sizes": "1024x1024" + } + ], + "screenshots": [ + { + "src": "screenshot1.webp", + "sizes": "1280x720", + "type": "image/webp" + }, + { + "src": "screenshot2.webp", + "sizes": "1280x720", + "type": "image/webp" + } + ], + "theme_color": "#000000", + "background_color": "#000000", + "start_url": "sign-in", + "display": "standalone", + "orientation": "any", + "categories": [ + "productivity" + ], + "iarc_rating_id": "70d7c4a4-3e5a-4714-a7dc-fa006613ba96", + "description": "Open Source kanban with MIT license", + "dir": "auto", + "scope": "https://boards.wekan.team", + "prefer_related_applications": false, + "display_override": [ + "standalone" + ] +} diff --git a/public/safari-pinned-tab.svg b/public/safari-pinned-tab.svg index 4320882c9..59974cc64 100644 --- a/public/safari-pinned-tab.svg +++ b/public/safari-pinned-tab.svg @@ -1,51 +1 @@ - - - - -Created by potrace 1.11, written by Peter Selinger 2001-2013 - - - - - + \ No newline at end of file diff --git a/public/site.webmanifest b/public/site.webmanifest index 5265a9f72..beaf2ffbd 100644 --- a/public/site.webmanifest +++ b/public/site.webmanifest @@ -2,6 +2,11 @@ "name": "Wekan", "short_name": "Wekan", "icons": [ + { + "src": "svg-etc/wekan-logo-512.svg", + "sizes": "any", + "type": "image/svg" + }, { "src": "android-chrome-192x192.png", "sizes": "192x192", @@ -503,17 +508,15 @@ "theme_color": "#000000", "background_color": "#000000", "start_url": "sign-in", - "display": "fullscreen", + "display": "standalone", "orientation": "any", "categories": [ "productivity" ], - "iarc_rating_id": "70d7c4a4-3e5a-4714-a7dc-fa006613ba96", "description": "Open Source kanban with MIT license", "dir": "auto", - "scope": "https://boards.wekan.team", "prefer_related_applications": false, "display_override": [ - "fullscreen" + "standalone" ] } diff --git a/public/svg-etc/wekan-logo-150.svg b/public/svg-etc/wekan-logo-150.svg index 51d4eedec..634d62f36 100644 --- a/public/svg-etc/wekan-logo-150.svg +++ b/public/svg-etc/wekan-logo-150.svg @@ -1,68 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/public/svg-etc/wekan-logo-256.png b/public/svg-etc/wekan-logo-256.png index 3f29a8974..f322521f4 100644 Binary files a/public/svg-etc/wekan-logo-256.png and b/public/svg-etc/wekan-logo-256.png differ diff --git a/public/svg-etc/wekan-logo-256.svg b/public/svg-etc/wekan-logo-256.svg index 2a9c5e881..2311e97f9 100644 --- a/public/svg-etc/wekan-logo-256.svg +++ b/public/svg-etc/wekan-logo-256.svg @@ -1,203 +1 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/public/svg-etc/wekan-logo-32.png b/public/svg-etc/wekan-logo-32.png index c5bdffdac..cdb69c41e 100644 Binary files a/public/svg-etc/wekan-logo-32.png and b/public/svg-etc/wekan-logo-32.png differ diff --git a/public/svg-etc/wekan-logo-512.png b/public/svg-etc/wekan-logo-512.png index 0bb904979..5a684c59b 100644 Binary files a/public/svg-etc/wekan-logo-512.png and b/public/svg-etc/wekan-logo-512.png differ diff --git a/public/svg-etc/wekan-logo-512.svg b/public/svg-etc/wekan-logo-512.svg index e945a40de..2e14a43a2 100644 --- a/public/svg-etc/wekan-logo-512.svg +++ b/public/svg-etc/wekan-logo-512.svg @@ -1,200 +1 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/public/wekan-logo.svg b/public/wekan-logo.svg index da34a07ac..c010e1edb 100644 --- a/public/wekan-logo.svg +++ b/public/wekan-logo.svg @@ -1 +1 @@ -wekan-1_2 \ No newline at end of file + \ No newline at end of file diff --git a/public/windows11/LargeTile.scale-100.png b/public/windows11/LargeTile.scale-100.png index e7263f010..9988c74a2 100644 Binary files a/public/windows11/LargeTile.scale-100.png and b/public/windows11/LargeTile.scale-100.png differ diff --git a/public/windows11/LargeTile.scale-125.png b/public/windows11/LargeTile.scale-125.png index bd14928b2..9292539b5 100644 Binary files a/public/windows11/LargeTile.scale-125.png and b/public/windows11/LargeTile.scale-125.png differ diff --git a/public/windows11/LargeTile.scale-150.png b/public/windows11/LargeTile.scale-150.png index 40cc3c18b..ee63ef064 100644 Binary files a/public/windows11/LargeTile.scale-150.png and b/public/windows11/LargeTile.scale-150.png differ diff --git a/public/windows11/LargeTile.scale-200.png b/public/windows11/LargeTile.scale-200.png index 429d16493..cf7a94c87 100644 Binary files a/public/windows11/LargeTile.scale-200.png and b/public/windows11/LargeTile.scale-200.png differ diff --git a/public/windows11/LargeTile.scale-400.png b/public/windows11/LargeTile.scale-400.png index 4f96ba570..83ee2593d 100644 Binary files a/public/windows11/LargeTile.scale-400.png and b/public/windows11/LargeTile.scale-400.png differ diff --git a/public/windows11/SmallTile.scale-100.png b/public/windows11/SmallTile.scale-100.png index c3b037452..1902a162a 100644 Binary files a/public/windows11/SmallTile.scale-100.png and b/public/windows11/SmallTile.scale-100.png differ diff --git a/public/windows11/SmallTile.scale-125.png b/public/windows11/SmallTile.scale-125.png index bc83fb8a3..4f8490199 100644 Binary files a/public/windows11/SmallTile.scale-125.png and b/public/windows11/SmallTile.scale-125.png differ diff --git a/public/windows11/SmallTile.scale-150.png b/public/windows11/SmallTile.scale-150.png index ea24f0a23..bc9f10e84 100644 Binary files a/public/windows11/SmallTile.scale-150.png and b/public/windows11/SmallTile.scale-150.png differ diff --git a/public/windows11/SmallTile.scale-200.png b/public/windows11/SmallTile.scale-200.png index e3eeab1a1..8c66f2ed3 100644 Binary files a/public/windows11/SmallTile.scale-200.png and b/public/windows11/SmallTile.scale-200.png differ diff --git a/public/windows11/SmallTile.scale-400.png b/public/windows11/SmallTile.scale-400.png index 040305ba6..027569e69 100644 Binary files a/public/windows11/SmallTile.scale-400.png and b/public/windows11/SmallTile.scale-400.png differ diff --git a/public/windows11/SplashScreen.scale-100.png b/public/windows11/SplashScreen.scale-100.png index 226cd44c2..316ad80a9 100644 Binary files a/public/windows11/SplashScreen.scale-100.png and b/public/windows11/SplashScreen.scale-100.png differ diff --git a/public/windows11/SplashScreen.scale-125.png b/public/windows11/SplashScreen.scale-125.png index 8fbdb6b82..7993a99e4 100644 Binary files a/public/windows11/SplashScreen.scale-125.png and b/public/windows11/SplashScreen.scale-125.png differ diff --git a/public/windows11/SplashScreen.scale-150.png b/public/windows11/SplashScreen.scale-150.png index 02fd67182..274dcff8c 100644 Binary files a/public/windows11/SplashScreen.scale-150.png and b/public/windows11/SplashScreen.scale-150.png differ diff --git a/public/windows11/SplashScreen.scale-200.png b/public/windows11/SplashScreen.scale-200.png index 004830904..e07724ba2 100644 Binary files a/public/windows11/SplashScreen.scale-200.png and b/public/windows11/SplashScreen.scale-200.png differ diff --git a/public/windows11/SplashScreen.scale-400.png b/public/windows11/SplashScreen.scale-400.png index 0a6283af7..cf504ab45 100644 Binary files a/public/windows11/SplashScreen.scale-400.png and b/public/windows11/SplashScreen.scale-400.png differ diff --git a/public/windows11/Square150x150Logo.scale-100.png b/public/windows11/Square150x150Logo.scale-100.png index 35c571141..d3f78127a 100644 Binary files a/public/windows11/Square150x150Logo.scale-100.png and b/public/windows11/Square150x150Logo.scale-100.png differ diff --git a/public/windows11/Square150x150Logo.scale-125.png b/public/windows11/Square150x150Logo.scale-125.png index 411f2bbc0..1f8406506 100644 Binary files a/public/windows11/Square150x150Logo.scale-125.png and b/public/windows11/Square150x150Logo.scale-125.png differ diff --git a/public/windows11/Square150x150Logo.scale-150.png b/public/windows11/Square150x150Logo.scale-150.png index c7da7c361..a0cb293b6 100644 Binary files a/public/windows11/Square150x150Logo.scale-150.png and b/public/windows11/Square150x150Logo.scale-150.png differ diff --git a/public/windows11/Square150x150Logo.scale-200.png b/public/windows11/Square150x150Logo.scale-200.png index 43b296f36..089d0c1bf 100644 Binary files a/public/windows11/Square150x150Logo.scale-200.png and b/public/windows11/Square150x150Logo.scale-200.png differ diff --git a/public/windows11/Square150x150Logo.scale-400.png b/public/windows11/Square150x150Logo.scale-400.png index d090b2793..79d7131b2 100644 Binary files a/public/windows11/Square150x150Logo.scale-400.png and b/public/windows11/Square150x150Logo.scale-400.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-16.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-16.png index c371648f7..6c8b5ca79 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-16.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-16.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-20.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-20.png index c7fb9d520..ad1a18567 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-20.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-20.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-24.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-24.png index 2d45c6a9d..3f3e70d24 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-24.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-24.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-256.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-256.png index 2958333d7..e47923145 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-256.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-256.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-30.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-30.png index 2e5c907a3..8239d1db7 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-30.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-30.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-32.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-32.png index a0cc04741..0df3f299c 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-32.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-32.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-36.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-36.png index 1a7922ad5..980c662bc 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-36.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-36.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-40.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-40.png index 14fb99913..2ff936100 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-40.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-40.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-44.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-44.png index ba093a44e..d292ca0f4 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-44.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-44.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-48.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-48.png index a733cd0e7..f3b94148e 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-48.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-48.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-60.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-60.png index d5e0de9f0..788cbeb45 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-60.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-60.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-64.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-64.png index 5bf33ab22..37f606814 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-64.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-64.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-72.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-72.png index ccf4bfafb..805107237 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-72.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-72.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-80.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-80.png index f20dcacaa..c6487cbd5 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-80.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-80.png differ diff --git a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-96.png b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-96.png index 2575259cb..27c7c364e 100644 Binary files a/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-96.png and b/public/windows11/Square44x44Logo.altform-lightunplated_targetsize-96.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-16.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-16.png index c371648f7..6c8b5ca79 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-16.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-16.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-20.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-20.png index c7fb9d520..ad1a18567 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-20.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-20.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-24.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-24.png index 2d45c6a9d..3f3e70d24 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-24.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-24.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-256.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-256.png index 2958333d7..e47923145 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-256.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-256.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-30.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-30.png index 2e5c907a3..8239d1db7 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-30.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-30.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-32.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-32.png index a0cc04741..0df3f299c 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-32.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-32.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-36.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-36.png index 1a7922ad5..980c662bc 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-36.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-36.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-40.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-40.png index 14fb99913..2ff936100 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-40.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-40.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-44.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-44.png index ba093a44e..d292ca0f4 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-44.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-44.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-48.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-48.png index a733cd0e7..f3b94148e 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-48.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-48.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-60.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-60.png index d5e0de9f0..788cbeb45 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-60.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-60.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-64.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-64.png index 5bf33ab22..37f606814 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-64.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-64.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-72.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-72.png index ccf4bfafb..805107237 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-72.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-72.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-80.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-80.png index f20dcacaa..c6487cbd5 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-80.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-80.png differ diff --git a/public/windows11/Square44x44Logo.altform-unplated_targetsize-96.png b/public/windows11/Square44x44Logo.altform-unplated_targetsize-96.png index 2575259cb..27c7c364e 100644 Binary files a/public/windows11/Square44x44Logo.altform-unplated_targetsize-96.png and b/public/windows11/Square44x44Logo.altform-unplated_targetsize-96.png differ diff --git a/public/windows11/Square44x44Logo.scale-100.png b/public/windows11/Square44x44Logo.scale-100.png index ba093a44e..d292ca0f4 100644 Binary files a/public/windows11/Square44x44Logo.scale-100.png and b/public/windows11/Square44x44Logo.scale-100.png differ diff --git a/public/windows11/Square44x44Logo.scale-125.png b/public/windows11/Square44x44Logo.scale-125.png index d6bc1855d..a0966850a 100644 Binary files a/public/windows11/Square44x44Logo.scale-125.png and b/public/windows11/Square44x44Logo.scale-125.png differ diff --git a/public/windows11/Square44x44Logo.scale-150.png b/public/windows11/Square44x44Logo.scale-150.png index aa91722d8..c60b8e13b 100644 Binary files a/public/windows11/Square44x44Logo.scale-150.png and b/public/windows11/Square44x44Logo.scale-150.png differ diff --git a/public/windows11/Square44x44Logo.scale-200.png b/public/windows11/Square44x44Logo.scale-200.png index 3cadabfdf..224aec79a 100644 Binary files a/public/windows11/Square44x44Logo.scale-200.png and b/public/windows11/Square44x44Logo.scale-200.png differ diff --git a/public/windows11/Square44x44Logo.scale-400.png b/public/windows11/Square44x44Logo.scale-400.png index 36f662363..d507e3d1b 100644 Binary files a/public/windows11/Square44x44Logo.scale-400.png and b/public/windows11/Square44x44Logo.scale-400.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-16.png b/public/windows11/Square44x44Logo.targetsize-16.png index c371648f7..6c8b5ca79 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-16.png and b/public/windows11/Square44x44Logo.targetsize-16.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-20.png b/public/windows11/Square44x44Logo.targetsize-20.png index c7fb9d520..ad1a18567 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-20.png and b/public/windows11/Square44x44Logo.targetsize-20.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-24.png b/public/windows11/Square44x44Logo.targetsize-24.png index 2d45c6a9d..3f3e70d24 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-24.png and b/public/windows11/Square44x44Logo.targetsize-24.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-256.png b/public/windows11/Square44x44Logo.targetsize-256.png index 2958333d7..e47923145 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-256.png and b/public/windows11/Square44x44Logo.targetsize-256.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-30.png b/public/windows11/Square44x44Logo.targetsize-30.png index 2e5c907a3..8239d1db7 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-30.png and b/public/windows11/Square44x44Logo.targetsize-30.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-32.png b/public/windows11/Square44x44Logo.targetsize-32.png index a0cc04741..0df3f299c 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-32.png and b/public/windows11/Square44x44Logo.targetsize-32.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-36.png b/public/windows11/Square44x44Logo.targetsize-36.png index 1a7922ad5..980c662bc 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-36.png and b/public/windows11/Square44x44Logo.targetsize-36.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-40.png b/public/windows11/Square44x44Logo.targetsize-40.png index 14fb99913..2ff936100 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-40.png and b/public/windows11/Square44x44Logo.targetsize-40.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-44.png b/public/windows11/Square44x44Logo.targetsize-44.png index ba093a44e..d292ca0f4 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-44.png and b/public/windows11/Square44x44Logo.targetsize-44.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-48.png b/public/windows11/Square44x44Logo.targetsize-48.png index a733cd0e7..f3b94148e 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-48.png and b/public/windows11/Square44x44Logo.targetsize-48.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-60.png b/public/windows11/Square44x44Logo.targetsize-60.png index d5e0de9f0..788cbeb45 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-60.png and b/public/windows11/Square44x44Logo.targetsize-60.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-64.png b/public/windows11/Square44x44Logo.targetsize-64.png index 5bf33ab22..37f606814 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-64.png and b/public/windows11/Square44x44Logo.targetsize-64.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-72.png b/public/windows11/Square44x44Logo.targetsize-72.png index ccf4bfafb..805107237 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-72.png and b/public/windows11/Square44x44Logo.targetsize-72.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-80.png b/public/windows11/Square44x44Logo.targetsize-80.png index f20dcacaa..c6487cbd5 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-80.png and b/public/windows11/Square44x44Logo.targetsize-80.png differ diff --git a/public/windows11/Square44x44Logo.targetsize-96.png b/public/windows11/Square44x44Logo.targetsize-96.png index 2575259cb..27c7c364e 100644 Binary files a/public/windows11/Square44x44Logo.targetsize-96.png and b/public/windows11/Square44x44Logo.targetsize-96.png differ diff --git a/public/windows11/StoreLogo.scale-100.png b/public/windows11/StoreLogo.scale-100.png index e04186a6b..9421da3a5 100644 Binary files a/public/windows11/StoreLogo.scale-100.png and b/public/windows11/StoreLogo.scale-100.png differ diff --git a/public/windows11/StoreLogo.scale-125.png b/public/windows11/StoreLogo.scale-125.png index fb7edbdfb..1e8c02797 100644 Binary files a/public/windows11/StoreLogo.scale-125.png and b/public/windows11/StoreLogo.scale-125.png differ diff --git a/public/windows11/StoreLogo.scale-150.png b/public/windows11/StoreLogo.scale-150.png index 1478d6f76..e5fdd4a06 100644 Binary files a/public/windows11/StoreLogo.scale-150.png and b/public/windows11/StoreLogo.scale-150.png differ diff --git a/public/windows11/StoreLogo.scale-200.png b/public/windows11/StoreLogo.scale-200.png index bf44f8d93..0522f6824 100644 Binary files a/public/windows11/StoreLogo.scale-200.png and b/public/windows11/StoreLogo.scale-200.png differ diff --git a/public/windows11/StoreLogo.scale-400.png b/public/windows11/StoreLogo.scale-400.png index ef905ecfd..5ed01f986 100644 Binary files a/public/windows11/StoreLogo.scale-400.png and b/public/windows11/StoreLogo.scale-400.png differ diff --git a/public/windows11/Wide310x150Logo.scale-100.png b/public/windows11/Wide310x150Logo.scale-100.png index 9d5cccace..7166dfe0d 100644 Binary files a/public/windows11/Wide310x150Logo.scale-100.png and b/public/windows11/Wide310x150Logo.scale-100.png differ diff --git a/public/windows11/Wide310x150Logo.scale-125.png b/public/windows11/Wide310x150Logo.scale-125.png index 109868a11..dec566ac5 100644 Binary files a/public/windows11/Wide310x150Logo.scale-125.png and b/public/windows11/Wide310x150Logo.scale-125.png differ diff --git a/public/windows11/Wide310x150Logo.scale-150.png b/public/windows11/Wide310x150Logo.scale-150.png index 94e9a81ee..236dca6b1 100644 Binary files a/public/windows11/Wide310x150Logo.scale-150.png and b/public/windows11/Wide310x150Logo.scale-150.png differ diff --git a/public/windows11/Wide310x150Logo.scale-200.png b/public/windows11/Wide310x150Logo.scale-200.png index 226cd44c2..316ad80a9 100644 Binary files a/public/windows11/Wide310x150Logo.scale-200.png and b/public/windows11/Wide310x150Logo.scale-200.png differ diff --git a/public/windows11/Wide310x150Logo.scale-400.png b/public/windows11/Wide310x150Logo.scale-400.png index 004830904..e07724ba2 100644 Binary files a/public/windows11/Wide310x150Logo.scale-400.png and b/public/windows11/Wide310x150Logo.scale-400.png differ diff --git a/rebuild-wekan.sh b/rebuild-wekan.sh index 5b3e85ce7..1c9bbddd1 100755 --- a/rebuild-wekan.sh +++ b/rebuild-wekan.sh @@ -1,14 +1,12 @@ #!/bin/bash -echo "Recommended for development: Newest Ubuntu or Debian amd64, directly to SSD disk or dual boot, not VM. Works fast." +echo "Recommended for development: Debian 12 amd64, directly to SSD disk or dual boot, not VM. Works fast." echo "Note1: If you use other locale than en_US.UTF-8 , you need to additionally install en_US.UTF-8" echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correctly." echo " You can still use any other locale as your main locale." echo "Note2: Console output is also logged to ../wekan-log.txt" -#Below script installs newest node 8.x for Debian/Ubuntu/Mint. - function pause(){ read -p "$*" } @@ -97,12 +95,12 @@ do #cd .. #sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor rm -rf .build/bundle node_modules .meteor/local .build - meteor npm install + meteor npm install --production meteor build .build --directory --platforms=web.browser rm -rf .build/bundle/programs/web.browser.legacy - (cd .build/bundle/programs/server && rm -rf node_modules && chmod u+w *.json && meteor npm install) + (cd .build/bundle/programs/server && rm -rf node_modules && chmod u+w *.json && meteor npm install --production) (cd .build/bundle/programs/server/node_modules/fibers && node build.js) - (cd .build/bundle/programs/server/npm/node_modules/meteor/accounts-password && meteor npm remove bcrypt && meteor npm install bcrypt) + (cd .build/bundle/programs/server/npm/node_modules/meteor/accounts-password && meteor npm remove bcrypt && meteor npm install bcrypt --production) # Cleanup cd .build/bundle find . -type d -name '*-garbage*' | xargs rm -rf diff --git a/releases/build-bundle-win64.bat b/releases/build-bundle-win64.bat index f1ec9540d..f7e0b1f93 100755 --- a/releases/build-bundle-win64.bat +++ b/releases/build-bundle-win64.bat @@ -12,7 +12,7 @@ CALL DEL /F /S /Q bundle ECHO 2) Downloading new WeKan.zip DEL wekan-%1-amd64.zip -wget https://releases.wekan.team/wekan-%1-amd64.zip --no-check-certificate +wget https://github.com/wekan/wekan/releases/download/v%1/wekan-%1-amd64.zip ECHO 3) Unarchiving new WeKan CALL 7z x wekan-%1-amd64.zip diff --git a/releases/docker-push-wekan.sh b/releases/docker-push-wekan.sh index f861c64a9..8efb3dfa8 100755 --- a/releases/docker-push-wekan.sh +++ b/releases/docker-push-wekan.sh @@ -12,7 +12,8 @@ if [ $# -ne 2 ] exit 1 fi -sudo apt -y install skopeo +#sudo apt -y install skopeo +#~/repos/wekan/releases/docker-registry-sync.sh # Quay docker tag $1 quay.io/wekan/wekan:v$2 @@ -20,7 +21,6 @@ docker push quay.io/wekan/wekan:v$2 docker tag $1 quay.io/wekan/wekan:latest docker push quay.io/wekan/wekan:latest -~/repos/wekan/releases/docker-registry-sync.sh # Docker Hub docker tag $1 wekanteam/wekan:v$2 diff --git a/releases/docker-registry-sync.sh b/releases/docker-registry-sync.sh index 293c8a262..e57344add 100755 --- a/releases/docker-registry-sync.sh +++ b/releases/docker-registry-sync.sh @@ -1,35 +1,46 @@ #!/bin/bash -sudo apt -y install skopeo +#sudo apt -y install skopeo # WeKan -skopeo copy docker://ghcr.io/wekan/wekan docker://quay.io/wekan/wekan -skopeo copy docker://ghcr.io/wekan/wekan docker://wekanteam/wekan - -# Wekan Gantt GPL -skopeo copy docker://ghcr.io/wekan/wekan-gantt-gpl docker://quay.io/wekan/wekan-gantt-gpl -skopeo copy docker://ghcr.io/wekan/wekan-gantt-gpl docker://wekanteam/wekan-gantt-gpl +#skopeo copy docker://ghcr.io/wekan/wekan docker://quay.io/wekan/wekan +#skopeo copy docker://ghcr.io/wekan/wekan docker://wekanteam/wekan # MongoDB -skopeo copy docker://mongo docker://ghcr.io/wekan/mongo -skopeo copy docker://mongo docker://quay.io/wekan/mongo +#skopeo copy docker://mongo docker://ghcr.io/wekan/mongo +#skopeo copy docker://mongo docker://quay.io/wekan/mongo # PostgreSQL -skopeo copy docker://postgres docker://ghcr.io/wekan/postgres -skopeo copy docker://postgres docker://quay.io/wekan/postgres +#skopeo copy docker://postgres docker://ghcr.io/wekan/postgres +#skopeo copy docker://postgres docker://quay.io/wekan/postgres -# MariaDB -skopeo copy docker://mariadb docker://ghcr.io/wekan/mariadb -skopeo copy docker://mariadb docker://quay.io/wekan/mariadb # Ubuntu -skopeo copy docker://ubuntu docker://ghcr.io/wekan/ubuntu -skopeo copy docker://ubuntu docker://quay.io/wekan/ubuntu +#skopeo copy docker://ubuntu docker://ghcr.io/wekan/ubuntu +#skopeo copy docker://ubuntu docker://quay.io/wekan/ubuntu +#--------------------------------------------------------------- + +## OLD + +# Wekan Gantt GPL +#skopeo copy docker://ghcr.io/wekan/wekan-gantt-gpl docker://quay.io/wekan/wekan-gantt-gpl +#skopeo copy docker://ghcr.io/wekan/wekan-gantt-gpl docker://wekanteam/wekan-gantt-gpl + +#--------------------------------------------------------------- + +## Auth errors, no permission to copy from Docker Hub to other Docker registry +## to have a backup, in case some Docker registry not available. + +# MariaDB +#skopeo copy docker://mariadb docker://ghcr.io/wekan/mariadb +#skopeo copy docker://mariadb docker://quay.io/wekan/mariadb +# # Debian -skopeo copy docker://debian docker://ghcr.io/wekan/debian -skopeo copy docker://debian docker://quay.io/wekan/debian - +#skopeo copy docker://debian docker://ghcr.io/wekan/debian +#skopeo copy docker://debian docker://quay.io/wekan/debian +# # Alpine -skopeo copy docker://alpine docker://ghcr.io/wekan/alpine -skopeo copy docker://alpine docker://quay.io/wekan/alpine +#skopeo copy docker://alpine docker://ghcr.io/wekan/alpine +#skopeo copy docker://alpine docker://quay.io/wekan/alpine +# diff --git a/releases/rebuild-docs.sh b/releases/rebuild-docs.sh index 273422723..5121a66e1 100755 --- a/releases/rebuild-docs.sh +++ b/releases/rebuild-docs.sh @@ -15,7 +15,8 @@ fi if [ ! -d ~/python/esprima-python ]; then sudo apt-get -y install python3-pip python3-swagger-spec-validator python3-wheel python3-setuptools - sudo npm install -g api2html + # Install older version of api2html that works with Node.js 14 + sudo npm install -g api2html@0.3.0 || sudo npm install -g swagger-ui-watcher (mkdir -p ~/python && cd ~/python && git clone --depth 1 -b master https://github.com/Kronuz/esprima-python) (cd ~/python/esprima-python && git fetch origin pull/20/head:delete_fix && git checkout delete_fix && sudo python3 setup.py install --record files.txt) #(cd ~/python/esprima-python && git fetch origin pull/20/head:delete_fix && git checkout delete_fix && sudo pip3 install .) @@ -38,10 +39,11 @@ if [ ! -d public/api ]; then mkdir -p public/api fi -# 4) Generate docs. -#python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml +# 4) Generate docs with api2html or fallback to swagger-ui-watcher python3 ./openapi/generate_openapi.py --release v$1 > ./public/api/wekan.yml -api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml +if ! api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml; then + swagger-ui-watcher ./public/api/wekan.yml -p 8080 +fi # Copy docs to bundle #cp -pR ./public/api ~/repos/wekan/.build/bundle/programs/web.browser/app/ diff --git a/releases/release-bundle.sh b/releases/release-bundle.sh index 8625afc05..e33c1f2cd 100755 --- a/releases/release-bundle.sh +++ b/releases/release-bundle.sh @@ -1,22 +1,23 @@ cd ~/repos/wekan -sudo apt-get -y install parallel +#sudo apt-get -y install parallel ./releases/rebuild-release.sh #./releases/delete-phantomjs.sh cd ~/repos/wekan/.build zip -r wekan-$1-amd64.zip bundle -{ +#{ #scp ~/repos/wekan/releases/build-bundle-arm64.sh a:/home/wekan/ #scp ~/repos/wekan/releases/build-bundle-s390x.sh s:/home/linux1/ #scp ~/repos/wekan/releases/build-bundle-ppc64el.sh o:/home/ubuntu/ - scp ~/repos/wekan/releases/release-x2.sh x2:/data/websites/ - scp wekan-$1-amd64.zip x2:/data/websites/releases.wekan.team/ + #scp ~/repos/wekan/releases/release-x2.sh 20i:/data/websites/ + #scp wekan-$1-amd64.zip 20i:/data/websites/releases.wekan.team/ #scp wekan-$1-amd64.zip a:/home/wekan/ #scp wekan-$1-amd64.zip s:/home/linux1/ #scp wekan-$1.zip o:/home/ubuntu/ -} | parallel -k +#} | parallel -k cd .. #echo "x64 bundle and arm64/s390x build scripts uploaded to x2/a/s." -echo "x64 bundle and arm64/s390x build scripts uploaded to x2." +#echo "x64 bundle and build script uploaded to 20i." +echo "x64 bundle done." diff --git a/releases/release-website.sh b/releases/release-website.sh index f738c6489..ba4420a0b 100755 --- a/releases/release-website.sh +++ b/releases/release-website.sh @@ -20,7 +20,7 @@ cd ~/repos/w/wekan.github.io git pull # 4) Change version number in website -sed -i "s|>v$1<\/span>|>v$2<\/span>|g" index.html +sed -i "s|>v$1<\/span>|>v$2<\/span>|g" install/index.html # 5) Change version number in API docs index page cd api diff --git a/releases/virtualbox/start-wekan.sh b/releases/virtualbox/start-wekan.sh index 09ec12765..bc0acda19 100755 --- a/releases/virtualbox/start-wekan.sh +++ b/releases/virtualbox/start-wekan.sh @@ -411,6 +411,7 @@ #export WAIT_SPINNER=Bounce #--------------------------------------------------------------------- + # node --stack-size=65500 --max-old-space-size=8192 main.js & >> ~/repos/wekan.log node main.js & >> ~/repos/wekan.log cd ~/repos #done diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 40c767672..e94fe5d03 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 743, + appVersion = 784, # Increment this for every release. - appMarketingVersion = (defaultText = "7.43.0~2024-04-18"), + appMarketingVersion = (defaultText = "7.84.0~2025-03-23"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/server/authentication.js b/server/authentication.js index f74ffa60f..474de6e25 100644 --- a/server/authentication.js +++ b/server/authentication.js @@ -52,14 +52,11 @@ Meteor.startup(() => { } }; - // Helper function. Will throw an error if the user does not have read only access to the given board + // Helper function. Will throw an error if the user is not active BoardAdmin or active Normal user of the board. Authentication.checkBoardAccess = function(userId, boardId) { Authentication.checkLoggedIn(userId); - const board = ReactiveCache.getBoard(boardId); - const normalAccess = - board.permission === 'public' || - board.members.some(e => e.userId === userId && e.isActive); + const normalAccess = board.members.some(e => e.userId === userId && e.isActive && !e.isNoComments && !e.isCommentOnly && !e.isWorker); Authentication.checkAdminOrCondition(userId, normalAccess); }; diff --git a/server/migrations.js b/server/migrations.js index 6fcee54e5..2930d6fa7 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -169,6 +169,8 @@ Migrations.add('use-css-class-for-boards-colors', () => { '#2A80B8': 'modern', '#2a2a2a': 'moderndark', '#222222': 'exodark', + '#0A0A14': 'cleandark', + '#FFFFFF': 'cleanlight', }; Boards.find().forEach(board => { const oldBoardColor = board.background.color; @@ -1441,3 +1443,49 @@ Migrations.add('attachment-cardCopy-fix-boardId-etc', () => { }); }); */ + +Migrations.add('remove-unused-planning-poker', () => { + Cards.update( + { + "poker.question": false, + }, + { + $unset: { + "poker": 1, + }, + }, + noValidateMulti, + ); +}); + +Migrations.add('remove-user-profile-hiddenSystemMessages', () => { + Users.update( + { + "profile.hiddenSystemMessages": { + $exists: true, + }, + }, + { + $unset: { + "profile.hiddenSystemMessages": 1, + }, + }, + noValidateMulti, + ); +}); + +Migrations.add('remove-user-profile-hideCheckedItems', () => { + Users.update( + { + "profile.hideCheckedItems": { + $exists: true, + }, + }, + { + $unset: { + "profile.hideCheckedItems": 1, + }, + }, + noValidateMulti, + ); +}); diff --git a/server/publications/activities.js b/server/publications/activities.js index 8e1f90aec..fe1456e3a 100644 --- a/server/publications/activities.js +++ b/server/publications/activities.js @@ -5,7 +5,7 @@ import { ReactiveCache } from '/imports/reactiveCache'; // 2. The card activity tab // We use this publication to paginate for these two publications. -Meteor.publish('activities', (kind, id, limit, hideSystem) => { +Meteor.publish('activities', (kind, id, limit, showActivities) => { check( kind, Match.Where(x => { @@ -14,7 +14,7 @@ Meteor.publish('activities', (kind, id, limit, hideSystem) => { ); check(id, String); check(limit, Number); - check(hideSystem, Boolean); + check(showActivities, Boolean); // Get linkedBoard let linkedElmtId = [id]; @@ -27,12 +27,9 @@ Meteor.publish('activities', (kind, id, limit, hideSystem) => { }); } - //const selector = hideSystem - // ? { $and: [{ activityType: 'addComment' }, { [`${kind}Id`]: id }] } - // : { [`${kind}Id`]: id }; - const selector = hideSystem - ? { $and: [{ activityType: 'addComment' }, { [`${kind}Id`]: { $in: linkedElmtId } }] } - : { [`${kind}Id`]: { $in: linkedElmtId } }; + const selector = showActivities + ? { [`${kind}Id`]: { $in: linkedElmtId } } + : { $and: [{ activityType: 'addComment' }, { [`${kind}Id`]: { $in: linkedElmtId } }] }; const ret = ReactiveCache.getActivities(selector, { limit, diff --git a/server/publications/settings.js b/server/publications/settings.js index 28afeea09..e2365d523 100644 --- a/server/publications/settings.js +++ b/server/publications/settings.js @@ -38,6 +38,9 @@ Meteor.publish('setting', () => { oidcBtnText: 1, mailDomainName: 1, legalNotice: 1, + accessibilityPageEnabled: 1, + accessibilityTitle: 1, + accessibilityContent: 1, }, }, ); diff --git a/snap-src/bin/mongodb-control b/snap-src/bin/mongodb-control index a218c2af1..88c8258ba 100755 --- a/snap-src/bin/mongodb-control +++ b/snap-src/bin/mongodb-control @@ -10,13 +10,18 @@ if [ "true" == "${DISABLE_MONGODB}" ]; then fi # make sure we have set minimum env variables for locale -if [ -z "$LANG" ]; then +if [ -z "${LANG}" ]; then export LANG=en_US.UTF-8 fi export LC_ALL=C -export PATH=/snap/${SNAP_NAME}/current/usr/bin:/snap/${SNAP_NAME}/current/bin:$PATH -export LD_LIBRARY_PATH=/snap/${SNAP_NAME}/current/lib:/snap/${SNAP_NAME}/current/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH +export PATH=/snap/${SNAP_NAME}/current/usr/bin:/snap/${SNAP_NAME}/current/bin:${PATH} +export LD_LIBRARY_PATH=/snap/${SNAP_NAME}/current/lib:/snap/${SNAP_NAME}/current/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH} + +# If temporary settings log exists, delete it +if [ -f ${SNAP_COMMON}/settings.log ]; then + rm ${SNAP_COMMON}/settings.log +fi #if test -f "$SNAP_COMMON/01-migrate-mongo3-to-mongo5.txt"; then # touch "$SNAP_COMMON/01-migrate-mongo3-to-mongo5.txt" @@ -76,80 +81,87 @@ export LD_LIBRARY_PATH=/snap/${SNAP_NAME}/current/lib:/snap/${SNAP_NAME}/current # loglast1000lines="" #fi -if [ -z "$MONGO_URL" ]; then +if [ -z "${MONGO_URL}" ]; then # start mongo deamon BIND_OPTIONS="" - SH_BIND_OPTIONS="" - if [ "nill" != "$MONGODB_BIND_UNIX_SOCKET" ] && [ "x" != "x${MONGODB_BIND_UNIX_SOCKET}" ]; then - BIND_OPTIONS+=" --unixSocketPrefix $MONGODB_BIND_UNIX_SOCKET" + if [ "nill" != "${MONGODB_BIND_UNIX_SOCKET}" ] && [ "x" != "x${MONGODB_BIND_UNIX_SOCKET}" ]; then + BIND_OPTIONS+=" --unixSocketPrefix ${MONGODB_BIND_UNIX_SOCKET}" fi + # Newest MongoDB uses --host or --bind_ip if [ "x" != "x${MONGODB_BIND_IP}" ]; then BIND_OPTIONS+=" --bind_ip $MONGODB_BIND_IP" - SH_BIND_OPTIONS+=" --host $MONGODB_BIND_IP" fi if [ "x" != "x${MONGODB_PORT}" ]; then - BIND_OPTIONS+=" --port $MONGODB_PORT" - SH_BIND_OPTIONS+=" --port $MONGODB_PORT" + BIND_OPTIONS+=" --port ${MONGODB_PORT}" fi - echo "mongodb bind options: $BIND_OPTIONS" if [ "syslog" == "${MONGO_LOG_DESTINATION}" ]; then echo "Sending mongodb logs to syslog" - mongod --dbpath $SNAP_COMMON --syslog --journal $BIND_OPTIONS --quiet + mongod --dbpath ${SNAP_COMMON} --syslog --journal ${BIND_OPTIONS} --quiet exit 0 fi if [ "snapcommon" == "${MONGO_LOG_DESTINATION}" ]; then echo "Sending mongodb logs to $SNAP_COMMON" - mongod --dbpath $SNAP_COMMON --logpath $SNAP_COMMON/mongodb.log --logappend --journal $BIND_OPTIONS --quiet + mongod --dbpath ${SNAP_COMMON} --logpath ${SNAP_COMMON}/mongodb.log --logappend --journal ${BIND_OPTIONS} --quiet fi if [ "devnull" == "${MONGO_LOG_DESTINATION}" ]; then echo "Sending mongodb logs to /dev/null" - mongod --dbpath $SNAP_COMMON --logpath /dev/null --journal $BIND_OPTIONS --quiet + mongod --dbpath ${SNAP_COMMON} --logpath /dev/null --journal ${BIND_OPTIONS} --quiet fi - + #echo "mongodb log destination: ${MONGO_LOG_DESTINATION}" >> "${SNAP_COMMON}/settings.log" # Disable MongoDB telemetry and free monitoring - mongosh wekan --eval 'disableTelemetry();' $SH_BIND_OPTIONS - mongosh wekan --eval 'db.disableFreeMonitoring();' $SH_BIND_OPTIONS + /snap/${SNAP_NAME}/current/usr/bin/mongosh wekan --eval 'disableTelemetry();' --port ${MONGODB_PORT} + /snap/${SNAP_NAME}/current/usr/bin/mongosh wekan --eval 'db.disableFreeMonitoring();' --port ${MONGODB_PORT} + # Snap: Disable apparmor="DENIED" at syslog # https://github.com/wekan/wekan/issues/4855 - mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $SH_BIND_OPTIONS + /snap/${SNAP_NAME}/current/usr/bin/mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' --port ${MONGODB_PORT} + # Drop indexes on database upgrade, when starting MongoDB - #mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $SH_BIND_OPTIONS - mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' $SH_BIND_OPTIONS + #mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $BIND_OPTIONS + + # Set MongoDB feature compatibility version + #mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' ${BIND_OPTIONS} + # Delete incomplete uploads so that they would not prevent starting WeKan - mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $SH_BIND_OPTIONS + /snap/${SNAP_NAME}/current/usr/bin/mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' --port ${MONGODB_PORT} else if [ "syslog" == "${MONGO_LOG_DESTINATION}" ]; then echo "Sending mongodb logs to syslog" - mongod --dbpath $SNAP_COMMON --syslog --journal $MONGO_URL --quiet + mongod --dbpath ${SNAP_COMMON} --syslog --journal ${MONGO_URL} --quiet fi if [ "snapcommon" == "${MONGO_LOG_DESTINATION}" ]; then - echo "Sending mongodb logs to $SNAP_COMMON" - mongod --dbpath $SNAP_COMMON --logpath $SNAP_COMMON/mongodb.log --logappend --journal $MONGO_URL --quiet + echo "Sending mongodb logs to ${SNAP_COMMON}" + mongod --dbpath ${SNAP_COMMON} --logpath ${SNAP_COMMON}/mongodb.log --logappend --journal ${MONGO_URL} --quiet fi if [ "devnull" == "${MONGO_LOG_DESTINATION}" ]; then echo "Sending mongodb logs to /dev/null" - mongod --dbpath $SNAP_COMMON --logpath /dev/null --journal $MONGO_URL --quiet + mongod --dbpath ${SNAP_COMMON} --logpath /dev/null --journal ${MONGO_URL} --quiet fi # Disable MongoDB telemetry and free monitoring - mongosh wekan --eval 'disableTelemetry();' $SH_BIND_OPTIONS - mongosh wekan --eval 'db.disableFreeMonitoring();' $SH_BIND_OPTIONS + /snap/${SNAP_NAME}/current/usr/bin/mongosh ${MONGO_URL} --eval 'disableTelemetry();' + /snap/${SNAP_NAME}/current/usr/bin/mongosh ${MONGO_URL} --eval 'db.disableFreeMonitoring();' + # Snap: Disable apparmor="DENIED" at syslog # https://github.com/wekan/wekan/issues/4855 - mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $SH_BIND_OPTIONS + /snap/${SNAP_NAME}/current/usr/bin/mongosh ${MONGO_URL} --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' + # Drop indexes on database upgrade, when starting MongoDB - #mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $SH_BIND_OPTIONS - mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.2" });' $SH_BIND_OPTIONS - # Delete incomplete uploads so that they would not prevent starting WeKan - mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $SH_BIND_OPTIONS + #mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $BIND_OPTIONS + + # Set MongoDB feature compatibility version + #/snap/${SNAP_NAME}/current/usr/bin/mongosh ${MONGO_URL} --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' + + # Delete incomplete uploads so that they would not prevent starting WeKan + /snap/${SNAP_NAME}/current/usr/bin/mongosh ${MONGO_URL} --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' fi diff --git a/snap-src/bin/wekan-control b/snap-src/bin/wekan-control index e4260851d..0962fc4e3 100755 --- a/snap-src/bin/wekan-control +++ b/snap-src/bin/wekan-control @@ -36,4 +36,5 @@ cd $APPLICATION_DIRECTORY # bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js" #--------------------------------------------------------------------- #bash -c "ulimit -s 65500; exec $NODE_PATH/node --stack-size=65500 $APPLICATION_START" +#bash -c "ulimit -s 65500; exec $NODE_PATH/node --stack-size=65500 --max-old-space-size=8192 $APPLICATION_START" bash -c "ulimit -s 65500; exec $NODE_PATH/node $APPLICATION_START" diff --git a/snap/gui/icon.png b/snap/gui/icon.png index 1382e2565..8e2e024b4 100644 Binary files a/snap/gui/icon.png and b/snap/gui/icon.png differ diff --git a/snapcraft.yaml b/snapcraft.yaml index 6344b07ce..d61c73bb0 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.43' +version: '7.84' base: core20 summary: Open Source kanban description: | @@ -65,7 +65,7 @@ apps: parts: mongodb: - source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.14.tgz + source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.20.tgz plugin: dump stage-packages: - libssl1.1 @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.43/wekan-7.43-amd64.zip - unzip wekan-7.43-amd64.zip - rm wekan-7.43-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.84/wekan-7.84-amd64.zip + unzip wekan-7.84-amd64.zip + rm wekan-7.84-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf diff --git a/stacksmith/user-scripts/run.sh b/stacksmith/user-scripts/run.sh index 1e9d3b460..fe40c48f8 100755 --- a/stacksmith/user-scripts/run.sh +++ b/stacksmith/user-scripts/run.sh @@ -20,9 +20,10 @@ echo "starting the wekan service..." #--------------------------------------------------------------------- # https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132 # Add more Node heap: -export NODE_OPTIONS="--max_old_space_size=4096" +#export NODE_OPTIONS="--max_old_space_size=4096" # Add more stack: #bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js" +#bash -c "ulimit -s 65500; exec --stack-size=65500 --max-old-space-size=8192 node main.js" bash -c "ulimit -s 65500; exec node main.js" #--------------------------------------------------------------------- #node main.js diff --git a/start-wekan.bat b/start-wekan.bat index 50940d2ee..81624601b 100644 --- a/start-wekan.bat +++ b/start-wekan.bat @@ -183,6 +183,121 @@ REM SET ORACLE_OIM_ENABLED=true REM ------------------------------------------------------------ +REM ## ==== OAUTH2 AZURE ==== +REM ## https://github.com/wekan/wekan/wiki/Azure +REM ## 1) Register the application with Azure. Make sure you capture +REM ## the application ID as well as generate a secret key. +REM ## 2) Configure the environment variables. This differs slightly +REM ## by installation type, but make sure you have the following: +REM SET OAUTH2_ENABLED=true +REM ## Optional OAuth2 CA Cert, see https://github.com/wekan/wekan/issues/3299 +REM # SET OAUTH2_CA_CERT=ABCD1234 +REM ## Use OAuth2 ADFS additional changes. Also needs OAUTH2_ENABLED=true setting. +REM # SET OAUTH2_ADFS_ENABLED=false +REM ## Azure AD B2C. https://github.com/wekan/wekan/issues/5242 +REM # SET OAUTH2_B2C_ENABLED=false +REM ## OAuth2 login style: popup or redirect. +REM SET OAUTH2_LOGIN_STYLE=popup +REM ## Application GUID captured during app registration: +REM SET OAUTH2_CLIENT_ID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx +REM ## Secret key generated during app registration: +REM SET OAUTH2_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +REM SET OAUTH2_SERVER_URL=https://login.microsoftonline.com/ +REM SET OAUTH2_AUTH_ENDPOINT=/oauth2/v2.0/authorize +REM SET OAUTH2_USERINFO_ENDPOINT=https://graph.microsoft.com/oidc/userinfo +REM SET OAUTH2_TOKEN_ENDPOINT=/oauth2/v2.0/token +REM ## The claim name you want to map to the unique ID field: +REM SET OAUTH2_ID_MAP=email +REM ## The claim name you want to map to the username field: +REM SET OAUTH2_USERNAME_MAP=email +REM ## The claim name you want to map to the full name field: +REM SET OAUTH2_FULLNAME_MAP=name +REM ## The claim name you want to map to the email field: +REM SET OAUTH2_EMAIL_MAP=email + +REM ------------------------------------------------------------ + +REM ## ==== OAUTH2 Nextcloud ==== +REM ## 1) Register the application with Nextcloud: https://your.nextcloud/index.php/settings/admin/security +REM ## Make sure you capture the application ID as well as generate a secret key. +REM ## Use https://your.wekan/_oauth/oidc for the redirect URI. +REM ## 2) Configure the environment variables. This differs slightly +REM ## by installation type, but make sure you have the following: +REM SET OAUTH2_ENABLED=true +REM ## OAuth2 login style: popup or redirect. +REM SET OAUTH2_LOGIN_STYLE=popup +REM ## Application GUID captured during app registration: +REM SET OAUTH2_CLIENT_ID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx +REM ## Secret key generated during app registration: +REM SET OAUTH2_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +REM SET OAUTH2_SERVER_URL=https://your-nextcloud.tld +REM SET OAUTH2_AUTH_ENDPOINT=/index.php/apps/oauth2/authorize +REM SET OAUTH2_USERINFO_ENDPOINT=/ocs/v2.php/cloud/user?format=json +REM SET OAUTH2_TOKEN_ENDPOINT=/index.php/apps/oauth2/api/v1/token +REM ## The claim name you want to map to the unique ID field: +REM SET OAUTH2_ID_MAP=id +REM ## The claim name you want to map to the username field: +REM SET OAUTH2_USERNAME_MAP=id +REM ## The claim name you want to map to the full name field: +REM SET OAUTH2_FULLNAME_MAP=display-name +REM ## The claim name you want to map to the email field: +REM SET OAUTH2_EMAIL_MAP=email + +REM ------------------------------------------------------------ + +REM ## ==== OAUTH2 KEYCLOAK ==== +REM ## https://github.com/wekan/wekan/wiki/Keycloak <== MAPPING INFO, REQUIRED +REM SET OAUTH2_ENABLED=true +REM ## OAuth2 login style: popup or redirect. +REM SET OAUTH2_LOGIN_STYLE=popup +REM SET OAUTH2_CLIENT_ID= +REM SET OAUTH2_SERVER_URL= +REM SET OAUTH2_AUTH_ENDPOINT=/realms//protocol/openid-connect/auth +REM SET OAUTH2_USERINFO_ENDPOINT=/realms//protocol/openid-connect/userinfo +REM SET OAUTH2_TOKEN_ENDPOINT=/realms//protocol/openid-connect/token +REM SET OAUTH2_SECRET= +REM SET OAUTH2_ID_MAP=sub +REM SET OAUTH2_USERNAME_MAP=preferred_username +REM SET OAUTH2_EMAIL_MAP=email +REM SET OAUTH2_FULLNAME_MAP=name + +REM ------------------------------------------------------------ + +REM ## ==== OAUTH2 DOORKEEPER ==== +REM ## https://github.com/wekan/wekan/issues/1874 +REM ## https://github.com/wekan/wekan/wiki/OAuth2 +REM ## Enable the OAuth2 connection +REM SET OAUTH2_ENABLED=true +REM ## OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2 +REM ## OAuth2 login style: popup or redirect. +REM SET OAUTH2_LOGIN_STYLE=popup +REM ## OAuth2 Client ID. +REM SET OAUTH2_CLIENT_ID=abcde12345 +REM ## OAuth2 Secret. +REM SET OAUTH2_SECRET=54321abcde +REM ## OAuth2 Server URL. +REM SET OAUTH2_SERVER_URL=https://chat.example.com +REM ## OAuth2 Authorization Endpoint. +REM SET OAUTH2_AUTH_ENDPOINT=/oauth/authorize +REM ## OAuth2 Userinfo Endpoint. +REM SET OAUTH2_USERINFO_ENDPOINT=/oauth/userinfo +REM ## OAuth2 Token Endpoint. +REM SET OAUTH2_TOKEN_ENDPOINT=/oauth/token +REM ## OAUTH2 ID Token Whitelist Fields. +REM SET OAUTH2_ID_TOKEN_WHITELIST_FIELDS="" +REM ## OAUTH2 Request Permissions. +REM SET OAUTH2_REQUEST_PERMISSIONS=openid profile email +REM ## OAuth2 ID Mapping +REM # SET OAUTH2_ID_MAP= +REM ## OAuth2 Username Mapping +REM # SET OAUTH2_USERNAME_MAP= +REM ## OAuth2 Fullname Mapping +REM # SET OAUTH2_FULLNAME_MAP= +REM ## OAuth2 Email Mapping +REM # SET OAUTH2_EMAIL_MAP= + +REM ------------------------------------------------------------ + REM # Enable the OAuth2 connection REM # OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2 REM # example: OAUTH2_ENABLED=true @@ -242,17 +357,22 @@ REM SET OAUTH2_EMAIL_MAP= REM ------------------------------------------------------------ +REM ## ==== LDAP: UNCOMMENT ALL TO ENABLE LDAP ==== +REM ## https://github.com/wekan/wekan/wiki/LDAP +REM ## Note: Do not add single quotes '' to variables. Having spaces still works without quotes where required. + +REM # The default authentication method used if a user does not exist to create and authenticate. Can be set as ldap. +REM # (this is set properly in the Admin Panel, changing this item does not remove Password login option) +REM SET DEFAULT_AUTHENTICATION_METHOD=ldap + REM # LDAP_ENABLE : Enable or not the connection by the LDAP -REM # example : LDAP_ENABLE=true -REM SET LDAP_ENABLE=false +REM SET LDAP_ENABLE=true REM # LDAP_PORT : The port of the LDAP server -REM # example : LDAP_PORT=389 REM SET LDAP_PORT=389 REM # LDAP_HOST : The host server for the LDAP server -REM # example : LDAP_HOST=localhost -REM SET LDAP_HOST= +REM SET LDAP_HOST=localhost REM #----------------------------------------------------------------- REM # ==== LDAP AD Simple Auth ==== @@ -339,6 +459,9 @@ REM # example : LDAP_BACKGROUND_SYNC=true REM SET LDAP_BACKGROUND_SYNC=false REM # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds +REM # The format must be as specified in: +REM # https://bunkat.github.io/later/parsers.html#text +REM SET LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours REM # At which interval does the background task sync in milliseconds. REM # Leave this unset, so it uses default, and does not crash. REM # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 @@ -493,11 +616,13 @@ REM # LOGOUT_ON_MINUTES : The number of minutes REM # example : LOGOUT_ON_MINUTES=55 REM SET LOGOUT_ON_MINUTES= +REM ## https://github.com/wekan/wekan/wiki/CAS REM SET CAS_ENABLED=true REM SET CAS_BASE_URL=https://cas.example.com/cas REM SET CAS_LOGIN_URL=https://cas.example.com/login REM SET CAS_VALIDATE_URL=https://cas.example.com/cas/p3/serviceValidate +REM ## https://github.com/wekan/wekan/wiki/SAML REM SET SAML_ENABLED=true REM SET SAML_PROVIDER= REM SET SAML_ENTRYPOINT= @@ -510,7 +635,7 @@ REM SET SAML_IDENTIFIER_FORMAT= REM SET SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE= REM SET SAML_ATTRIBUTES= -REM # Wait spinner to use +REM # Wait spinner to use https://github.com/wekan/wekan/wiki/Wait-Spinners REM SET WAIT_SPINNER=Bounce REM # https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132 diff --git a/start-wekan.sh b/start-wekan.sh index c51c8ff45..3bf00af06 100755 --- a/start-wekan.sh +++ b/start-wekan.sh @@ -230,11 +230,15 @@ # OAuth2 login style: popup or redirect. #export OAUTH2_LOGIN_STYLE=redirect #export OAUTH2_CLIENT_ID= - #export OAUTH2_SERVER_URL=/auth + #export OAUTH2_SERVER_URL= #export OAUTH2_AUTH_ENDPOINT=/realms//protocol/openid-connect/auth #export OAUTH2_USERINFO_ENDPOINT=/realms//protocol/openid-connect/userinfo #export OAUTH2_TOKEN_ENDPOINT=/realms//protocol/openid-connect/token #export OAUTH2_SECRET= + #export OAUTH2_ID_MAP=sub + #export OAUTH2_USERNAME_MAP=preferred_username + #export OAUTH2_EMAIL_MAP=email + #export OAUTH2_FULLNAME_MAP=name #----------------------------------------------------------------- # ==== OAUTH2 DOORKEEPER ==== # OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2 @@ -381,6 +385,9 @@ #export LDAP_BACKGROUND_SYNC=false # # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds + # The format must be as specified in: + # https://bunkat.github.io/later/parsers.html#text + #export LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours # At which interval does the background task sync in milliseconds. # Leave this unset, so it uses default, and does not crash. # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 @@ -555,6 +562,7 @@ #bash -c "ulimit -s 65500; exec node --stack-size=65500 --trace-deprecation main.js" #bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js" #-------------------- OPTIONAL SETTINGS END ---------------------- + #bash -c "ulimit -s 65500; exec node --stack-size=65500 --max-old-space-size=8192 main.js" bash -c "ulimit -s 65500; exec node main.js" #node main.js #--------------------------------------------------------------------- diff --git a/support-at-wekan.team_pgp-publickey.asc b/support-at-wekan.team_pgp-publickey.asc deleted file mode 100644 index e59ce9034..000000000 --- a/support-at-wekan.team_pgp-publickey.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: OpenPGP.js v4.10.8 -Comment: https://openpgpjs.org - -xjMEX3HbABYJKwYBBAHaRw8BAQdAQ2UBWCK1H3/z7gMgwVudRL+NlwJVCPw+ -Vsp9PGSLh9jNJ3N1cHBvcnRAd2VrYW4udGVhbSA8c3VwcG9ydEB3ZWthbi50 -ZWFtPsKPBBAWCgAgBQJfcdsABgsJBwgDAgQVCAoCBBYCAQACGQECGwMCHgEA -IQkQRkG8ZpPn6f4WIQRI5gPihwJLiXfveDBGQbxmk+fp/kCXAQD/JXsgVq4d -9sKmYDGHpCaIfsO//6cmiCGz3Mf5SDc0ygD/WpJO31Fyu6pfr3nWe4n50H93 -lXXz937+K1bB9rfqugDOOARfcdsAEgorBgEEAZdVAQUBAQdALydXPub/n7hx -8qYjZa2tzBvcz5KkdnIxOoB+vaQZFQwDAQgHwngEGBYIAAkFAl9x2wACGwwA -IQkQRkG8ZpPn6f4WIQRI5gPihwJLiXfveDBGQbxmk+fp/uyXAQCRLPksHCJ6 -RTl7HrtSS9lkeOmh32u+Rnjijn970PYIIQEAiGgXoJGBTzyVil9aPeqfWFK+ -0hvTsnNY3JT3K84OmQQ= -=SNk3 ------END PGP PUBLIC KEY BLOCK-----