From a6c8833f652ee84284da2195bf79fb8edaa818b7 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 4 Sep 2024 19:01:41 +0300 Subject: [PATCH 001/356] Try to fix apparrmor denied in syslog at Snap Candidate. Thanks to webenefits and xet7 ! Fixes #4855 --- snap-src/bin/mongodb-control | 90 +++++++++++++++++++++--------------- 1 file changed, 53 insertions(+), 37 deletions(-) diff --git a/snap-src/bin/mongodb-control b/snap-src/bin/mongodb-control index 0954c94c0..d650e8e26 100755 --- a/snap-src/bin/mongodb-control +++ b/snap-src/bin/mongodb-control @@ -10,13 +10,22 @@ 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} + + +echo "DISABLE_MONGODB=${DISABLE_MONGODB}" > "${SNAP_COMMON}/settings.log" +echo "LC_ALL=${LC_ALL}" >> "${SNAP_COMMON}/settings.log" +echo "LANG=${LANG}" >> "${SNAP_COMMON}/settings.log" +echo "PATH=${PATH}" >> "${SNAP_COMMON}/settings.log" +echo "SNAP_COMMON=${SNAP_COMMON}" >> "{$SNAP_COMMON}/settings.log" +echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" >> "${SNAP_COMMON}/settings.log" + #if test -f "$SNAP_COMMON/01-migrate-mongo3-to-mongo5.txt"; then # touch "$SNAP_COMMON/01-migrate-mongo3-to-mongo5.txt" @@ -76,77 +85,84 @@ export LD_LIBRARY_PATH=/snap/${SNAP_NAME}/current/lib:/snap/${SNAP_NAME}/current # loglast1000lines="" #fi -if [ -z "$MONGO_URL" ]; then +echo "MONGO_URL=${MONGO_URL}" >> "${SNAP_COMMON}/settings.log" + +if [ -z "${MONGO_URL}" ]; then # start mongo deamon 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}" + echo "BIND_OPTIONS+= --unixSocketPrefix ${MONGODB_BIND_UNIX_SOCKET}" >> "${SNAP_COMMON}/settings.log" fi if [ "x" != "x${MONGODB_BIND_IP}" ]; then BIND_OPTIONS+=" --bind_ip $MONGODB_BIND_IP" + echo "BIND_OPTIONS+= --bind_ip ${MONGODB_BIND_IP}" >> "${SNAP_COMMON}/settings.log" fi if [ "x" != "x${MONGODB_PORT}" ]; then - BIND_OPTIONS+=" --port $MONGODB_PORT" + BIND_OPTIONS+=" --port ${MONGODB_PORT}" + echo "BIND_OPTIONS+= --port ${MONGODB_PORT}" >> "${SNAP_COMMON}/settings.log" fi - echo "mongodb bind options: $BIND_OPTIONS" + echo "mongodb bind options: ${BIND_OPTIONS}" + echo "mongodb bind options: ${BIND_OPTIONS}" >> "${SNAP_COMMON}/settings.log" if [ "syslog" == "${MONGO_LOG_DESTINATION}" ]; then echo "Sending mongodb logs to syslog" mongod --dbpath $SNAP_COMMON --syslog --journal $BIND_OPTIONS --quiet exit 0 fi + echo mongodb log destination: ${MONGO_LOG_DESTINATION} >> "${SNAP_COMMON}/settings.log" 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 fi + echo mongodb log destination: ${MONGO_LOG_DESTINATION} >> "${SNAP_COMMON}/settings.log" if [ "devnull" == "${MONGO_LOG_DESTINATION}" ]; then echo "Sending mongodb logs to /dev/null" mongod --dbpath $SNAP_COMMON --logpath /dev/null --journal $BIND_OPTIONS --quiet fi - - - # Disable MongoDB telemetry and free monitoring - mongosh wekan --eval 'disableTelemetry();' $BIND_OPTIONS - mongosh wekan --eval 'db.disableFreeMonitoring();' $BIND_OPTIONS - # Snap: Disable apparmor="DENIED" at syslog - # https://github.com/wekan/wekan/issues/4855 - mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $BIND_OPTIONS - # 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(); });" $BIND_OPTIONS - 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}});' $BIND_OPTIONS + echo mongodb log destination: ${MONGO_LOG_DESTINATION} >> "${SNAP_COMMON}/settings.log" 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();' $BIND_OPTIONS - mongosh wekan --eval 'db.disableFreeMonitoring();' $BIND_OPTIONS - # Snap: Disable apparmor="DENIED" at syslog - # https://github.com/wekan/wekan/issues/4855 - mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $BIND_OPTIONS - # 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(); });" $BIND_OPTIONS - mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.2" });' $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}});' $BIND_OPTIONS - + BIND_OPTIONS=${MONGO_URL} fi + + + +# Disable MongoDB telemetry and free monitoring +mongosh wekan --eval 'disableTelemetry();' ${BIND_OPTIONS} +echo "mongosh wekan --eval 'disableTelemetry();' ${BIND_OPTIONS}" >> "${SNAP_COMMON}/settings.log" +mongosh wekan --eval 'db.disableFreeMonitoring();' ${BIND_OPTIONS} +echo mongosh wekan --eval 'db.disableFreeMonitoring();' ${BIND_OPTIONS} >> "${SNAP_COMMON}/settings.log" + +# Snap: Disable apparmor="DENIED" at syslog +# https://github.com/wekan/wekan/issues/4855 +mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' ${BIND_OPTIONS} +echo mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' ${BIND_OPTIONS} >> "${SNAP_COMMON}/settings.log" + +# 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(); });" $BIND_OPTIONS +mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' ${BIND_OPTIONS} +echo mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' ${BIND_OPTIONS} >> "${SNAP_COMMON}/settings.log" + +# 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}});' ${BIND_OPTIONS} +echo mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' ${BIND_OPTIONS} >> "${SNAP_COMMON}/settings.log" From cb653e03f2bf653b17987e2044326bbc7d5d242c Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 4 Sep 2024 19:04:18 +0300 Subject: [PATCH 002/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2926ad3a7..ffbee0f4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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: From 019d7c92c337d97b1ba3459a89c765e3fc3db6a6 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 4 Sep 2024 19:08:01 +0300 Subject: [PATCH 003/356] v7.58 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ffbee0f4f..efa3e9918 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.58 2024-09-04 WeKan ® release This release tries to fix the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 5ec073ddf..1a5a053db 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.57.0" +appVersion: "v7.58.0" files: userUploads: - README.md diff --git a/package-lock.json b/package-lock.json index 6502e51f1..32b2e6718 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.57.0", + "version": "v7.58.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 27e9dbd76..45f3252b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.57.0", + "version": "v7.58.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 1a5dc5826..5c30b6d1a 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.57 + Wekan REST API v7.58 @@ -1548,7 +1548,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
  • - Wekan REST API v7.57 + Wekan REST API v7.58
  • @@ -2067,7 +2067,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
    -

    Wekan REST API v7.57

    +

    Wekan REST API v7.58

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

    diff --git a/public/api/wekan.yml b/public/api/wekan.yml index b83269933..ba82ffa12 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.57 + version: v7.58 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 4a9ba5847..d96bdf1a8 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 = 757, + appVersion = 758, # Increment this for every release. - appMarketingVersion = (defaultText = "7.57.0~2024-09-04"), + appMarketingVersion = (defaultText = "7.58.0~2024-09-04"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index b41c004a3..6e3a4e849 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.57' +version: '7.58' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.57/wekan-7.57-amd64.zip - unzip wekan-7.57-amd64.zip - rm wekan-7.57-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.58/wekan-7.58-amd64.zip + unzip wekan-7.58-amd64.zip + rm wekan-7.58-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 0a1074ca6e95728b0da30bd701ba783f2a4bdd98 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 4 Sep 2024 20:56:32 +0300 Subject: [PATCH 004/356] Try 2 to fix apparmor denied in syslog at Snap Candidate. Newest MongoDB uses --host, not anymore --bind_ip. Thanks to webenefits and xet7 ! Fixes #4855 --- snap-src/bin/mongodb-control | 89 ++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 45 deletions(-) diff --git a/snap-src/bin/mongodb-control b/snap-src/bin/mongodb-control index d650e8e26..9b474a640 100755 --- a/snap-src/bin/mongodb-control +++ b/snap-src/bin/mongodb-control @@ -18,14 +18,10 @@ 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} - -echo "DISABLE_MONGODB=${DISABLE_MONGODB}" > "${SNAP_COMMON}/settings.log" -echo "LC_ALL=${LC_ALL}" >> "${SNAP_COMMON}/settings.log" -echo "LANG=${LANG}" >> "${SNAP_COMMON}/settings.log" -echo "PATH=${PATH}" >> "${SNAP_COMMON}/settings.log" -echo "SNAP_COMMON=${SNAP_COMMON}" >> "{$SNAP_COMMON}/settings.log" -echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" >> "${SNAP_COMMON}/settings.log" - +# 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" @@ -85,45 +81,54 @@ echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" >> "${SNAP_COMMON}/settings.log" # loglast1000lines="" #fi -echo "MONGO_URL=${MONGO_URL}" >> "${SNAP_COMMON}/settings.log" - if [ -z "${MONGO_URL}" ]; then # start mongo deamon BIND_OPTIONS="" if [ "nill" != "${MONGODB_BIND_UNIX_SOCKET}" ] && [ "x" != "x${MONGODB_BIND_UNIX_SOCKET}" ]; then BIND_OPTIONS+=" --unixSocketPrefix ${MONGODB_BIND_UNIX_SOCKET}" - echo "BIND_OPTIONS+= --unixSocketPrefix ${MONGODB_BIND_UNIX_SOCKET}" >> "${SNAP_COMMON}/settings.log" fi + # Newest MongoDB uses --host, not anymore --bind_ip if [ "x" != "x${MONGODB_BIND_IP}" ]; then - BIND_OPTIONS+=" --bind_ip $MONGODB_BIND_IP" - echo "BIND_OPTIONS+= --bind_ip ${MONGODB_BIND_IP}" >> "${SNAP_COMMON}/settings.log" + BIND_OPTIONS+=" --host $MONGODB_BIND_IP" fi if [ "x" != "x${MONGODB_PORT}" ]; then BIND_OPTIONS+=" --port ${MONGODB_PORT}" - echo "BIND_OPTIONS+= --port ${MONGODB_PORT}" >> "${SNAP_COMMON}/settings.log" fi - echo "mongodb bind options: ${BIND_OPTIONS}" - echo "mongodb bind options: ${BIND_OPTIONS}" >> "${SNAP_COMMON}/settings.log" 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 - echo mongodb log destination: ${MONGO_LOG_DESTINATION} >> "${SNAP_COMMON}/settings.log" 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 - echo mongodb log destination: ${MONGO_LOG_DESTINATION} >> "${SNAP_COMMON}/settings.log" 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" + #echo "mongodb log destination: ${MONGO_LOG_DESTINATION}" >> "${SNAP_COMMON}/settings.log" + + # Disable MongoDB telemetry and free monitoring + mongosh wekan --eval 'disableTelemetry();' ${BIND_OPTIONS} + mongosh wekan --eval 'db.disableFreeMonitoring();' ${BIND_OPTIONS} + + # Snap: Disable apparmor="DENIED" at syslog + # https://github.com/wekan/wekan/issues/4855 + mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' ${BIND_OPTIONS} + + # 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(); });" $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}});' ${BIND_OPTIONS} else @@ -142,27 +147,21 @@ else mongod --dbpath ${SNAP_COMMON} --logpath /dev/null --journal ${MONGO_URL} --quiet fi - BIND_OPTIONS=${MONGO_URL} + # Disable MongoDB telemetry and free monitoring + mongosh ${MONGO_URL} --eval 'disableTelemetry();' + mongosh ${MONGO_URL} --eval 'db.disableFreeMonitoring();' + + # Snap: Disable apparmor="DENIED" at syslog + # https://github.com/wekan/wekan/issues/4855 + 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(); });" $BIND_OPTIONS + + # Set MongoDB feature compatibility version + mongosh ${MONGO_URL} --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' + + # Delete incomplete uploads so that they would not prevent starting WeKan + mongosh ${MONGO_URL} --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' + fi - - - -# Disable MongoDB telemetry and free monitoring -mongosh wekan --eval 'disableTelemetry();' ${BIND_OPTIONS} -echo "mongosh wekan --eval 'disableTelemetry();' ${BIND_OPTIONS}" >> "${SNAP_COMMON}/settings.log" -mongosh wekan --eval 'db.disableFreeMonitoring();' ${BIND_OPTIONS} -echo mongosh wekan --eval 'db.disableFreeMonitoring();' ${BIND_OPTIONS} >> "${SNAP_COMMON}/settings.log" - -# Snap: Disable apparmor="DENIED" at syslog -# https://github.com/wekan/wekan/issues/4855 -mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' ${BIND_OPTIONS} -echo mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' ${BIND_OPTIONS} >> "${SNAP_COMMON}/settings.log" - -# 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(); });" $BIND_OPTIONS -mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' ${BIND_OPTIONS} -echo mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' ${BIND_OPTIONS} >> "${SNAP_COMMON}/settings.log" - -# 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}});' ${BIND_OPTIONS} -echo mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' ${BIND_OPTIONS} >> "${SNAP_COMMON}/settings.log" From a8b2d7a6bd092b32f03ad7f5af0cf08ae6521698 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 4 Sep 2024 21:00:19 +0300 Subject: [PATCH 005/356] Updated ChangeLog. --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index efa3e9918..83d9f3fed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,16 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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: From 8ef8d546c5a64a50d6a490c3d7b542da599ef294 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 4 Sep 2024 21:06:53 +0300 Subject: [PATCH 006/356] v7.59 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 8 ++++---- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83d9f3fed..5af0d4013 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.59 2024-09-04 WeKan ® release This release tries to fix the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 1a5a053db..7017fcb90 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.58.0" +appVersion: "v7.59.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 761a34c79..a584a6946 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -8,19 +8,19 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.55-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.55/wekan-7.55-amd64-windows.zip) +1. [wekan-7.59-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.59/wekan-7.59-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) -3. [mongodb-windows-x86_64-6.0.16-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.16-signed.msi) +3. [mongodb-windows-x86_64-6.0.17-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.17-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.16-signed.msi` . In installer, uncheck downloading MongoDB compass. +6. Double click `mongodb-windows-x86_64-6.0.17-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.55-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.59-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 32b2e6718..195cc8ba3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.58.0", + "version": "v7.59.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 45f3252b2..201a9c469 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.58.0", + "version": "v7.59.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 5c30b6d1a..f4442dce9 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.58 + Wekan REST API v7.59 @@ -1548,7 +1548,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
    • - Wekan REST API v7.58 + Wekan REST API v7.59
    • @@ -2067,7 +2067,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
      -

      Wekan REST API v7.58

      +

      Wekan REST API v7.59

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

      diff --git a/public/api/wekan.yml b/public/api/wekan.yml index ba82ffa12..10f3fde22 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.58 + version: v7.59 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index d96bdf1a8..691b278fe 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 = 758, + appVersion = 759, # Increment this for every release. - appMarketingVersion = (defaultText = "7.58.0~2024-09-04"), + appMarketingVersion = (defaultText = "7.59.0~2024-09-04"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 6e3a4e849..437a7e0fc 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.58' +version: '7.59' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.58/wekan-7.58-amd64.zip - unzip wekan-7.58-amd64.zip - rm wekan-7.58-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.59/wekan-7.59-amd64.zip + unzip wekan-7.59-amd64.zip + rm wekan-7.59-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From e72646a4d4a24cd510529574c61d89135c686443 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 8 Sep 2024 16:46:17 +0300 Subject: [PATCH 007/356] Add back old attachments models for attachment migrations. Thanks to xet7 ! --- models/attachments_old.js | 118 ++++++++++++++++++++++++++++++++++++++ models/avatars_old.js | 29 ++++++++++ 2 files changed, 147 insertions(+) create mode 100644 models/attachments_old.js create mode 100644 models/avatars_old.js diff --git a/models/attachments_old.js b/models/attachments_old.js new file mode 100644 index 000000000..fae4b844c --- /dev/null +++ b/models/attachments_old.js @@ -0,0 +1,118 @@ +import { ReactiveCache } from '/imports/reactiveCache'; + +const storeName = 'attachments'; +const defaultStoreOptions = { + beforeWrite: fileObj => { + if (!fileObj.isImage()) { + return { + type: 'application/octet-stream', + }; + } + return {}; + }, +}; +let store; +store = new FS.Store.GridFS(storeName, { + // XXX Add a new store for cover thumbnails so we don't load big images in + // the general board view + // If the uploaded document is not an image we need to enforce browser + // download instead of execution. This is particularly important for HTML + // files that the browser will just execute if we don't serve them with the + // appropriate `application/octet-stream` MIME header which can lead to user + // data leaks. I imagine other formats (like PDF) can also be attack vectors. + // See https://github.com/wekan/wekan/issues/99 + // XXX Should we use `beforeWrite` option of CollectionFS instead of + // collection-hooks? + // We should use `beforeWrite`. + ...defaultStoreOptions, +}); +AttachmentsOld = new FS.Collection('attachments', { + stores: [store], +}); + +if (Meteor.isServer) { + Meteor.startup(() => { + AttachmentsOld.files._ensureIndex({ cardId: 1 }); + }); + + AttachmentsOld.allow({ + insert(userId, doc) { + return allowIsBoardMember(userId, ReactiveCache.getBoard(doc.boardId)); + }, + update(userId, doc) { + return allowIsBoardMember(userId, ReactiveCache.getBoard(doc.boardId)); + }, + remove(userId, doc) { + return allowIsBoardMember(userId, ReactiveCache.getBoard(doc.boardId)); + }, + // We authorize the attachment download either: + // - if the board is public, everyone (even unconnected) can download it + // - if the board is private, only board members can download it + download(userId, doc) { + const board = ReactiveCache.getBoard(doc.boardId); + if (board.isPublic()) { + return true; + } else { + return board.hasMember(userId); + } + }, + + fetch: ['boardId'], + }); +} + +// XXX Enforce a schema for the AttachmentsOld CollectionFS + +if (Meteor.isServer) { + AttachmentsOld.files.after.insert((userId, doc) => { + // If the attachment doesn't have a source field + // or its source is different than import + if (!doc.source || doc.source !== 'import') { + // Add activity about adding the attachment + Activities.insert({ + userId, + type: 'card', + activityType: 'addAttachment', + attachmentId: doc._id, + // this preserves the name so that notifications can be meaningful after + // this file is removed + attachmentName: doc.original.name, + boardId: doc.boardId, + cardId: doc.cardId, + listId: doc.listId, + swimlaneId: doc.swimlaneId, + }); + } else { + // Don't add activity about adding the attachment as the activity + // be imported and delete source field + AttachmentsOld.update( + { + _id: doc._id, + }, + { + $unset: { + source: '', + }, + }, + ); + } + }); + + AttachmentsOld.files.before.remove((userId, doc) => { + Activities.insert({ + userId, + type: 'card', + activityType: 'deleteAttachment', + attachmentId: doc._id, + // this preserves the name so that notifications can be meaningful after + // this file is removed + attachmentName: doc.original.name, + boardId: doc.boardId, + cardId: doc.cardId, + listId: doc.listId, + swimlaneId: doc.swimlaneId, + }); + }); +} + +export default AttachmentsOld; diff --git a/models/avatars_old.js b/models/avatars_old.js new file mode 100644 index 000000000..deae4bbc6 --- /dev/null +++ b/models/avatars_old.js @@ -0,0 +1,29 @@ +AvatarsOld = new FS.Collection('avatars', { + stores: [new FS.Store.GridFS('avatars')], + filter: { + maxSize: 72000, + allow: { + contentTypes: ['image/*'], + }, + }, +}); + +function isOwner(userId, file) { + return userId && userId === file.userId; +} + +AvatarsOld.allow({ + insert: isOwner, + update: isOwner, + remove: isOwner, + download() { + return true; + }, + fetch: ['userId'], +}); + +AvatarsOld.files.before.insert((userId, doc) => { + doc.userId = userId; +}); + +export default AvatarsOld; From 2727651897ae082113e7d0b3c73a561135d4605b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 8 Sep 2024 17:42:04 +0300 Subject: [PATCH 008/356] Comment out not in use old attachments models code. --- models/attachments_old.js | 43 ++++++++++++--------------------------- models/avatars_old.js | 17 ++++++++++++++++ 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/models/attachments_old.js b/models/attachments_old.js index fae4b844c..7110b4a70 100644 --- a/models/attachments_old.js +++ b/models/attachments_old.js @@ -1,36 +1,16 @@ import { ReactiveCache } from '/imports/reactiveCache'; - -const storeName = 'attachments'; -const defaultStoreOptions = { - beforeWrite: fileObj => { - if (!fileObj.isImage()) { - return { - type: 'application/octet-stream', - }; - } - return {}; - }, -}; -let store; -store = new FS.Store.GridFS(storeName, { - // XXX Add a new store for cover thumbnails so we don't load big images in - // the general board view - // If the uploaded document is not an image we need to enforce browser - // download instead of execution. This is particularly important for HTML - // files that the browser will just execute if we don't serve them with the - // appropriate `application/octet-stream` MIME header which can lead to user - // data leaks. I imagine other formats (like PDF) can also be attack vectors. - // See https://github.com/wekan/wekan/issues/99 - // XXX Should we use `beforeWrite` option of CollectionFS instead of - // collection-hooks? - // We should use `beforeWrite`. - ...defaultStoreOptions, -}); -AttachmentsOld = new FS.Collection('attachments', { - stores: [store], -}); +import { Meteor } from 'meteor/meteor'; +import { FilesCollection } from 'meteor/ostrio:files'; +import { isFileValid } from './fileValidation'; +import { createBucket } from './lib/grid/createBucket'; +import fs from 'fs'; +import path from 'path'; if (Meteor.isServer) { + AttachmentsOld = createBucket('cfs_gridfs.attachments'); + +/* + Meteor.startup(() => { AttachmentsOld.files._ensureIndex({ cardId: 1 }); }); @@ -113,6 +93,9 @@ if (Meteor.isServer) { swimlaneId: doc.swimlaneId, }); }); + +*/ + } export default AttachmentsOld; diff --git a/models/avatars_old.js b/models/avatars_old.js index deae4bbc6..f7f561df7 100644 --- a/models/avatars_old.js +++ b/models/avatars_old.js @@ -1,3 +1,16 @@ +import { ReactiveCache } from '/imports/reactiveCache'; +import { Meteor } from 'meteor/meteor'; +import { FilesCollection } from 'meteor/ostrio:files'; +import { isFileValid } from './fileValidation'; +import { createBucket } from './lib/grid/createBucket'; +import fs from 'fs'; +import path from 'path'; + +if (Meteor.isServer) { + AvatarsOld = createBucket('cfs_gridfs.avatars'); + +/* + AvatarsOld = new FS.Collection('avatars', { stores: [new FS.Store.GridFS('avatars')], filter: { @@ -26,4 +39,8 @@ AvatarsOld.files.before.insert((userId, doc) => { doc.userId = userId; }); +*/ + +}; + export default AvatarsOld; From 50f3316088cdd833120650c78a003b0812144eae Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 15 Sep 2024 19:40:49 +0300 Subject: [PATCH 009/356] Removed old models files that caused problems with login. Thanks to xet7 ! --- models/attachments_old.js | 101 -------------------------------------- models/avatars_old.js | 46 ----------------- 2 files changed, 147 deletions(-) delete mode 100644 models/attachments_old.js delete mode 100644 models/avatars_old.js diff --git a/models/attachments_old.js b/models/attachments_old.js deleted file mode 100644 index 7110b4a70..000000000 --- a/models/attachments_old.js +++ /dev/null @@ -1,101 +0,0 @@ -import { ReactiveCache } from '/imports/reactiveCache'; -import { Meteor } from 'meteor/meteor'; -import { FilesCollection } from 'meteor/ostrio:files'; -import { isFileValid } from './fileValidation'; -import { createBucket } from './lib/grid/createBucket'; -import fs from 'fs'; -import path from 'path'; - -if (Meteor.isServer) { - AttachmentsOld = createBucket('cfs_gridfs.attachments'); - -/* - - Meteor.startup(() => { - AttachmentsOld.files._ensureIndex({ cardId: 1 }); - }); - - AttachmentsOld.allow({ - insert(userId, doc) { - return allowIsBoardMember(userId, ReactiveCache.getBoard(doc.boardId)); - }, - update(userId, doc) { - return allowIsBoardMember(userId, ReactiveCache.getBoard(doc.boardId)); - }, - remove(userId, doc) { - return allowIsBoardMember(userId, ReactiveCache.getBoard(doc.boardId)); - }, - // We authorize the attachment download either: - // - if the board is public, everyone (even unconnected) can download it - // - if the board is private, only board members can download it - download(userId, doc) { - const board = ReactiveCache.getBoard(doc.boardId); - if (board.isPublic()) { - return true; - } else { - return board.hasMember(userId); - } - }, - - fetch: ['boardId'], - }); -} - -// XXX Enforce a schema for the AttachmentsOld CollectionFS - -if (Meteor.isServer) { - AttachmentsOld.files.after.insert((userId, doc) => { - // If the attachment doesn't have a source field - // or its source is different than import - if (!doc.source || doc.source !== 'import') { - // Add activity about adding the attachment - Activities.insert({ - userId, - type: 'card', - activityType: 'addAttachment', - attachmentId: doc._id, - // this preserves the name so that notifications can be meaningful after - // this file is removed - attachmentName: doc.original.name, - boardId: doc.boardId, - cardId: doc.cardId, - listId: doc.listId, - swimlaneId: doc.swimlaneId, - }); - } else { - // Don't add activity about adding the attachment as the activity - // be imported and delete source field - AttachmentsOld.update( - { - _id: doc._id, - }, - { - $unset: { - source: '', - }, - }, - ); - } - }); - - AttachmentsOld.files.before.remove((userId, doc) => { - Activities.insert({ - userId, - type: 'card', - activityType: 'deleteAttachment', - attachmentId: doc._id, - // this preserves the name so that notifications can be meaningful after - // this file is removed - attachmentName: doc.original.name, - boardId: doc.boardId, - cardId: doc.cardId, - listId: doc.listId, - swimlaneId: doc.swimlaneId, - }); - }); - -*/ - -} - -export default AttachmentsOld; diff --git a/models/avatars_old.js b/models/avatars_old.js deleted file mode 100644 index f7f561df7..000000000 --- a/models/avatars_old.js +++ /dev/null @@ -1,46 +0,0 @@ -import { ReactiveCache } from '/imports/reactiveCache'; -import { Meteor } from 'meteor/meteor'; -import { FilesCollection } from 'meteor/ostrio:files'; -import { isFileValid } from './fileValidation'; -import { createBucket } from './lib/grid/createBucket'; -import fs from 'fs'; -import path from 'path'; - -if (Meteor.isServer) { - AvatarsOld = createBucket('cfs_gridfs.avatars'); - -/* - -AvatarsOld = new FS.Collection('avatars', { - stores: [new FS.Store.GridFS('avatars')], - filter: { - maxSize: 72000, - allow: { - contentTypes: ['image/*'], - }, - }, -}); - -function isOwner(userId, file) { - return userId && userId === file.userId; -} - -AvatarsOld.allow({ - insert: isOwner, - update: isOwner, - remove: isOwner, - download() { - return true; - }, - fetch: ['userId'], -}); - -AvatarsOld.files.before.insert((userId, doc) => { - doc.userId = userId; -}); - -*/ - -}; - -export default AvatarsOld; From 718c1a393d6d8db36ade190ae051d96eec7255eb Mon Sep 17 00:00:00 2001 From: Denis Perov Date: Mon, 23 Sep 2024 18:49:10 +0300 Subject: [PATCH 010/356] Switch from kadira:flow-router to ostrio:flow-router-extra --- .eslintrc.json | 2 - .meteor/packages | 6 +- .meteor/versions | 7 +- client/components/boards/boardArchive.js | 1 + client/components/boards/boardBody.js | 1 + client/components/boards/boardHeader.js | 1 + client/components/boards/boardsList.js | 1 + client/components/cards/cardDetails.js | 1 + client/components/cards/subtasks.js | 1 + client/components/import/import.js | 1 + client/components/lists/listBody.js | 1 + client/components/main/layouts.js | 3 +- client/components/settings/peopleBody.js | 1 + client/components/sidebar/sidebar.js | 1 + client/lib/keyboard.js | 1 + client/lib/modal.js | 2 + client/lib/utils.js | 1 + config/accounts.js | 1 + config/router.js | 41 +- docs/DeveloperDocs/Directory-Structure.md | 4 +- models/boards.js | 3 +- models/cards.js | 1 + models/exporter.js | 1 + models/server/ExporterCardPDF.js | 1 + models/server/ExporterExcel.js | 1 + models/settings.js | 1 + packages/kadira-flow-router/.gitignore | 3 - packages/kadira-flow-router/.travis.yml | 8 - packages/kadira-flow-router/CHANGELOG.md | 155 ---- packages/kadira-flow-router/CONTRIBUTING.md | 16 - packages/kadira-flow-router/LICENSE | 21 - packages/kadira-flow-router/README.md | 777 ------------------ packages/kadira-flow-router/client/_init.js | 11 - packages/kadira-flow-router/client/group.js | 57 -- packages/kadira-flow-router/client/modules.js | 2 - packages/kadira-flow-router/client/route.js | 125 --- packages/kadira-flow-router/client/router.js | 587 ------------- .../kadira-flow-router/client/triggers.js | 116 --- packages/kadira-flow-router/lib/router.js | 9 - packages/kadira-flow-router/package.js | 81 -- packages/kadira-flow-router/server/_init.js | 4 - packages/kadira-flow-router/server/group.js | 18 - .../server/plugins/fast_render.js | 40 - packages/kadira-flow-router/server/route.js | 28 - packages/kadira-flow-router/server/router.js | 146 ---- .../test/client/_helpers.js | 10 - .../test/client/group.spec.js | 113 --- .../test/client/loader.spec.js | 17 - .../test/client/route.reactivity.spec.js | 158 ---- .../test/client/router.core.spec.js | 632 -------------- .../test/client/router.reactivity.spec.js | 208 ----- .../test/client/router.subs_ready.spec.js | 225 ----- .../test/client/trigger.spec.js | 570 ------------- .../test/client/triggers.js | 297 ------- .../test/common/fast_render_route.js | 48 -- .../test/common/group.spec.js | 16 - .../test/common/route.spec.js | 15 - .../test/common/router.addons.spec.js | 30 - .../test/common/router.path.spec.js | 135 --- .../test/common/router.url.spec.js | 11 - .../test/server/_helpers.js | 38 - .../test/server/plugins/fast_render.js | 35 - sandstorm.js | 1 + 63 files changed, 52 insertions(+), 4797 deletions(-) delete mode 100644 packages/kadira-flow-router/.gitignore delete mode 100644 packages/kadira-flow-router/.travis.yml delete mode 100644 packages/kadira-flow-router/CHANGELOG.md delete mode 100644 packages/kadira-flow-router/CONTRIBUTING.md delete mode 100644 packages/kadira-flow-router/LICENSE delete mode 100644 packages/kadira-flow-router/README.md delete mode 100644 packages/kadira-flow-router/client/_init.js delete mode 100644 packages/kadira-flow-router/client/group.js delete mode 100644 packages/kadira-flow-router/client/modules.js delete mode 100644 packages/kadira-flow-router/client/route.js delete mode 100644 packages/kadira-flow-router/client/router.js delete mode 100644 packages/kadira-flow-router/client/triggers.js delete mode 100644 packages/kadira-flow-router/lib/router.js delete mode 100644 packages/kadira-flow-router/package.js delete mode 100644 packages/kadira-flow-router/server/_init.js delete mode 100644 packages/kadira-flow-router/server/group.js delete mode 100644 packages/kadira-flow-router/server/plugins/fast_render.js delete mode 100644 packages/kadira-flow-router/server/route.js delete mode 100644 packages/kadira-flow-router/server/router.js delete mode 100644 packages/kadira-flow-router/test/client/_helpers.js delete mode 100644 packages/kadira-flow-router/test/client/group.spec.js delete mode 100644 packages/kadira-flow-router/test/client/loader.spec.js delete mode 100644 packages/kadira-flow-router/test/client/route.reactivity.spec.js delete mode 100644 packages/kadira-flow-router/test/client/router.core.spec.js delete mode 100644 packages/kadira-flow-router/test/client/router.reactivity.spec.js delete mode 100644 packages/kadira-flow-router/test/client/router.subs_ready.spec.js delete mode 100644 packages/kadira-flow-router/test/client/trigger.spec.js delete mode 100644 packages/kadira-flow-router/test/client/triggers.js delete mode 100644 packages/kadira-flow-router/test/common/fast_render_route.js delete mode 100644 packages/kadira-flow-router/test/common/group.spec.js delete mode 100644 packages/kadira-flow-router/test/common/route.spec.js delete mode 100644 packages/kadira-flow-router/test/common/router.addons.spec.js delete mode 100644 packages/kadira-flow-router/test/common/router.path.spec.js delete mode 100644 packages/kadira-flow-router/test/common/router.url.spec.js delete mode 100644 packages/kadira-flow-router/test/server/_helpers.js delete mode 100644 packages/kadira-flow-router/test/server/plugins/fast_render.js diff --git a/.eslintrc.json b/.eslintrc.json index 4c862c827..65af0f342 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -97,12 +97,10 @@ "Avatar": true, "Avatars": true, "BlazeComponent": false, - "BlazeLayout": false, "CollectionHooks": false, "DocHead": false, "ESSearchResults": false, "FastRender": false, - "FlowRouter": false, "FS": false, "getSlug": false, "Migrations": false, diff --git a/.meteor/packages b/.meteor/packages index 95e40c00c..6a6081f30 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -26,7 +26,6 @@ mquandalle:collection-mutations # Account system accounts-password@2.4.0 useraccounts:core -useraccounts:flow-routing useraccounts:unstyled simple:rest-accounts-password wekan-ldap @@ -44,7 +43,6 @@ reactive-dict@1.3.1 session@1.2.1 tracker@1.3.3 underscore@1.0.13 -arillo:flow-router-helpers audit-argument-checks@1.0.7 kadira:dochead mquandalle:autofocus @@ -81,16 +79,16 @@ meteortesting:mocha@2.0.3 aldeed:simple-schema matb33:collection-hooks simple:json-routes -kadira:flow-router spacebars service-configuration@1.3.2 communitypackages:picker minifier-css@1.6.4 blaze -kadira:blaze-layout peerlibrary:blaze-components ejson@1.1.3 logging@1.3.3 wekan-fullcalendar momentjs:moment@2.29.3 wekan-fontawesome +ostrio:flow-router-extra +useraccounts:flow-routing-extra diff --git a/.meteor/versions b/.meteor/versions index fbf430721..d37555c1e 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -7,7 +7,6 @@ aldeed:schema-deny@1.1.0 aldeed:schema-index@1.1.1 aldeed:simple-schema@1.5.4 allow-deny@1.1.1 -arillo:flow-router-helpers@0.5.2 audit-argument-checks@1.0.7 autoupdate@1.8.0 babel-compiler@7.10.5 @@ -54,9 +53,7 @@ id-map@1.1.1 idmontie:migrations@1.0.3 inter-process-messaging@0.1.1 jquery@3.0.0 -kadira:blaze-layout@2.3.0 kadira:dochead@1.5.0 -kadira:flow-router@2.12.1 konecty:mongo-counter@0.0.5_3 lmieulet:meteor-coverage@1.1.4 localstorage@1.2.0 @@ -103,6 +100,7 @@ ordered-dict@1.1.0 ostrio:cookies@2.7.2 ostrio:cstorage@4.0.1 ostrio:files@2.3.3 +ostrio:flow-router-extra@3.9.0 ostrio:i18n@3.2.1 pascoual:pdfkit@1.0.7 peerlibrary:assert@0.3.0 @@ -147,7 +145,7 @@ ui@1.0.13 underscore@1.0.13 url@1.3.2 useraccounts:core@1.16.2 -useraccounts:flow-routing@1.15.0 +useraccounts:flow-routing-extra@1.1.0 useraccounts:unstyled@1.14.2 webapp@1.13.6 webapp-hashing@1.1.1 @@ -162,5 +160,4 @@ wekan-ldap@0.0.2 wekan-markdown@1.0.9 wekan-oidc@1.0.12 yasaricli:slugify@0.0.7 -zimme:active-route@2.3.2 zodern:types@1.0.10 diff --git a/client/components/boards/boardArchive.js b/client/components/boards/boardArchive.js index 87525c1f7..c761bb69e 100644 --- a/client/components/boards/boardArchive.js +++ b/client/components/boards/boardArchive.js @@ -1,4 +1,5 @@ import { ReactiveCache } from '/imports/reactiveCache'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; BlazeComponent.extendComponent({ onCreated() { diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index c0aac7301..d8169fb4b 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -1,6 +1,7 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; import dragscroll from '@wekanteam/dragscroll'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const subManager = new SubsManager(); const { calculateIndex } = Utils; diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index 22408b3c6..e71072157 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -1,5 +1,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; /* const DOWNCLS = 'fa-sort-down'; diff --git a/client/components/boards/boardsList.js b/client/components/boards/boardsList.js index 69a29b3c2..3542e3668 100644 --- a/client/components/boards/boardsList.js +++ b/client/components/boards/boardsList.js @@ -1,5 +1,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const subManager = new SubsManager(); diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index eec4af51d..725b467cd 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -12,6 +12,7 @@ import CardComments from '/models/cardComments'; import { ALLOWED_COLORS } from '/config/const'; import { UserAvatar } from '../users/userAvatar'; import { DialogWithBoardSwimlaneList } from '/client/lib/dialogWithBoardSwimlaneList'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const subManager = new SubsManager(); const { calculateIndexData } = Utils; diff --git a/client/components/cards/subtasks.js b/client/components/cards/subtasks.js index af5654802..6be9cb080 100644 --- a/client/components/cards/subtasks.js +++ b/client/components/cards/subtasks.js @@ -1,4 +1,5 @@ import { ReactiveCache } from '/imports/reactiveCache'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; BlazeComponent.extendComponent({ addSubtask(event) { diff --git a/client/components/import/import.js b/client/components/import/import.js index 4d4ba7fa7..5fbec5f2e 100644 --- a/client/components/import/import.js +++ b/client/components/import/import.js @@ -2,6 +2,7 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { trelloGetMembersToMap } from './trelloMembersMapper'; import { wekanGetMembersToMap } from './wekanMembersMapper'; import { csvGetMembersToMap } from './csvMembersMapper'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const Papa = require('papaparse'); diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index f68599c83..7847a70d7 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -1,6 +1,7 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; import { Spinner } from '/client/lib/spinner'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const subManager = new SubsManager(); const InfiniteScrollIter = 10; diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js index 6ebe6d22e..0b339c0e0 100644 --- a/client/components/main/layouts.js +++ b/client/components/main/layouts.js @@ -1,7 +1,8 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; -BlazeLayout.setRoot('body'); +FlowRouter.Renderer.rootElement = () => document.body; let alreadyCheck = 1; let isCheckDone = false; diff --git a/client/components/settings/peopleBody.js b/client/components/settings/peopleBody.js index b80890c58..f39b159e3 100644 --- a/client/components/settings/peopleBody.js +++ b/client/components/settings/peopleBody.js @@ -1,4 +1,5 @@ import { ReactiveCache } from '/imports/reactiveCache'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const orgsPerPage = 25; const teamsPerPage = 25; diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js index f03f2c738..a2f06c716 100644 --- a/client/components/sidebar/sidebar.js +++ b/client/components/sidebar/sidebar.js @@ -1,5 +1,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; Sidebar = null; diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 79f90456c..ed91509e1 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -1,4 +1,5 @@ import { ReactiveCache } from '/imports/reactiveCache'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; // 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). diff --git a/client/lib/modal.js b/client/lib/modal.js index 00b6fc4b7..0aced6cfa 100644 --- a/client/lib/modal.js +++ b/client/lib/modal.js @@ -1,3 +1,5 @@ +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; + const closedValue = null; window.Modal = new (class { diff --git a/client/lib/utils.js b/client/lib/utils.js index 15896e5c3..132880c7a 100644 --- a/client/lib/utils.js +++ b/client/lib/utils.js @@ -1,4 +1,5 @@ import { ReactiveCache } from '/imports/reactiveCache'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; Utils = { setBackgroundImage(url) { diff --git a/config/accounts.js b/config/accounts.js index cbfb9d4dd..59c0985a1 100644 --- a/config/accounts.js +++ b/config/accounts.js @@ -1,4 +1,5 @@ import { TAPi18n } from '/imports/i18n'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const passwordField = AccountsTemplates.removeField('password'); const emailField = AccountsTemplates.removeField('email'); diff --git a/config/router.js b/config/router.js index cdbf106c1..3450744b6 100644 --- a/config/router.js +++ b/config/router.js @@ -1,4 +1,5 @@ import { TAPi18n } from '/imports/i18n'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; let previousPath; FlowRouter.triggers.exit([ @@ -24,7 +25,7 @@ FlowRouter.route('/', { Utils.manageCustomUI(); Utils.manageMatomo(); - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'boardListHeaderBar', content: 'boardList', }); @@ -48,7 +49,7 @@ FlowRouter.route('/public', { Utils.manageCustomUI(); Utils.manageMatomo(); - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'boardListHeaderBar', content: 'boardList', }); @@ -78,7 +79,7 @@ FlowRouter.route('/b/:id/:slug', { Utils.manageCustomUI(); Utils.manageMatomo(); - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'boardHeaderBar', content: 'board', }); @@ -98,7 +99,7 @@ FlowRouter.route('/b/:boardId/:slug/:cardId', { Utils.manageCustomUI(); Utils.manageMatomo(); - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'boardHeaderBar', content: 'board', }); @@ -118,7 +119,7 @@ FlowRouter.route('/shortcuts', { onCloseGoTo: previousPath, }); } else { - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'shortcutsHeaderBar', content: shortcutsTemplate, }); @@ -143,7 +144,7 @@ FlowRouter.route('/b/templates', { Utils.manageCustomUI(); Utils.manageMatomo(); - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'boardListHeaderBar', content: 'boardList', }); @@ -162,7 +163,7 @@ FlowRouter.route('/my-cards', { Utils.manageCustomUI(); Utils.manageMatomo(); - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'myCardsHeaderBar', content: 'myCards', }); @@ -182,7 +183,7 @@ FlowRouter.route('/due-cards', { Utils.manageCustomUI(); Utils.manageMatomo(); - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'dueCardsHeaderBar', content: 'dueCards', }); @@ -209,7 +210,7 @@ FlowRouter.route('/global-search', { decodeURIComponent(FlowRouter.getQueryParam('q')), ); } - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'globalSearchHeaderBar', content: 'globalSearch', }); @@ -229,7 +230,7 @@ FlowRouter.route('/broken-cards', { Utils.manageCustomUI(); Utils.manageMatomo(); - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'brokenCardsHeaderBar', content: brokenCardsTemplate, }); @@ -253,7 +254,7 @@ FlowRouter.route('/import/:source', { Filter.reset(); Session.set('sortBy', ''); EscapeActions.executeAll(); - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'importHeaderBar', content: 'import', }); @@ -278,7 +279,7 @@ FlowRouter.route('/setting', { ], action() { Utils.manageCustomUI(); - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'settingHeaderBar', content: 'setting', }); @@ -302,7 +303,7 @@ FlowRouter.route('/information', { }, ], action() { - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'settingHeaderBar', content: 'information', }); @@ -326,7 +327,7 @@ FlowRouter.route('/people', { }, ], action() { - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'settingHeaderBar', content: 'people', }); @@ -350,7 +351,7 @@ FlowRouter.route('/admin-reports', { }, ], action() { - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'settingHeaderBar', content: 'adminReports', }); @@ -374,7 +375,7 @@ FlowRouter.route('/attachments', { }, ], action() { - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'settingHeaderBar', content: 'attachments', }); @@ -398,18 +399,18 @@ FlowRouter.route('/translation', { }, ], action() { - BlazeLayout.render('defaultLayout', { + this.render('defaultLayout', { headerBar: 'settingHeaderBar', content: 'translation', }); }, }); -FlowRouter.notFound = { +FlowRouter.route('*', { action() { - BlazeLayout.render('defaultLayout', { content: 'notFound' }); + this.render('defaultLayout', { content: 'notFound' }); }, -}; +}); // We maintain a list of redirections to ensure that we don't break old URLs // when we change our routing scheme. diff --git a/docs/DeveloperDocs/Directory-Structure.md b/docs/DeveloperDocs/Directory-Structure.md index 8e6749342..9b1bf0e2c 100644 --- a/docs/DeveloperDocs/Directory-Structure.md +++ b/docs/DeveloperDocs/Directory-Structure.md @@ -1,6 +1,6 @@ # Routing -We're using [FlowRouter](https://github.com/kadirahq/flow-router) client side router inside **[config/router.js](https://github.com/wekan/wekan/tree/main/config/router.js)**. +We're using [FlowRouter](https://github.com/veliovgroup/flow-router) client side router inside **[config/router.js](https://github.com/wekan/wekan/tree/main/config/router.js)**. For accounts there is [AccountsTemplates](https://github.com/meteor-useraccounts) configured in **[config/accounts.js](https://github.com/wekan/wekan/tree/main/config/accounts.js)**. # Client @@ -183,5 +183,5 @@ Other files: # Contributions to this page -This documentation was contributed by [TNick](https://github.com/TNick) and [xet7](https://github.com/xet7) while Wekan was at commit [e2f768c](https://github.com/wekan/wekan/tree/e2f768c6a0f913b7c5f07695dce8cec692037255). +This documentation was contributed by [TNick](https://github.com/TNick) and [xet7](https://github.com/xet7) while Wekan was at commit [e2f768c](https://github.com/wekan/wekan/tree/e2f768c6a0f913b7c5f07695dce8cec692037255). Please add new files, fixes, updates, etc directly to this page. diff --git a/models/boards.js b/models/boards.js index 721e24c98..87321c96a 100644 --- a/models/boards.js +++ b/models/boards.js @@ -9,6 +9,7 @@ import { TYPE_TEMPLATE_CONTAINER, } from '/config/const'; import Users from "./users"; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; // const escapeForRegex = require('escape-string-regexp'); @@ -2208,7 +2209,7 @@ if (Meteor.isServer) { }); } }); - + /** * @operation add_board_label * @summary Add a label to a board diff --git a/models/cards.js b/models/cards.js index ec0173d49..1ac65b7c5 100644 --- a/models/cards.js +++ b/models/cards.js @@ -8,6 +8,7 @@ import { } from '../config/const'; import Attachments, { fileStoreStrategyFactory } from "./attachments"; import { copyFile } from './lib/fileStoreStrategy.js'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; Cards = new Mongo.Collection('cards'); diff --git a/models/exporter.js b/models/exporter.js index b8fe68ba4..1537d23f3 100644 --- a/models/exporter.js +++ b/models/exporter.js @@ -2,6 +2,7 @@ import { ReactiveCache } from '/imports/reactiveCache'; import moment from 'moment/min/moment-with-locales'; const Papa = require('papaparse'); import { TAPi18n } from '/imports/i18n'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; //const stringify = require('csv-stringify'); diff --git a/models/server/ExporterCardPDF.js b/models/server/ExporterCardPDF.js index f3fde0f85..870b188cc 100644 --- a/models/server/ExporterCardPDF.js +++ b/models/server/ExporterCardPDF.js @@ -1,6 +1,7 @@ import { ReactiveCache } from '/imports/reactiveCache'; // exporter maybe is broken since Gridfs introduced, add fs and path import { createWorkbook } from './createWorkbook'; +// import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; class ExporterCardPDF { constructor(boardId) { diff --git a/models/server/ExporterExcel.js b/models/server/ExporterExcel.js index 72120dddb..d88b2e328 100644 --- a/models/server/ExporterExcel.js +++ b/models/server/ExporterExcel.js @@ -2,6 +2,7 @@ import { ReactiveCache } from '/imports/reactiveCache'; import moment from 'moment/min/moment-with-locales'; import { TAPi18n } from '/imports/i18n'; import { createWorkbook } from './createWorkbook'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; // exporter maybe is broken since Gridfs introduced, add fs and path diff --git a/models/settings.js b/models/settings.js index c3f6b00d6..9902d346d 100644 --- a/models/settings.js +++ b/models/settings.js @@ -1,5 +1,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; //var nodemailer = require('nodemailer'); // Sandstorm context is detected using the METEOR_SETTINGS environment variable diff --git a/packages/kadira-flow-router/.gitignore b/packages/kadira-flow-router/.gitignore deleted file mode 100644 index 22ee0ccee..000000000 --- a/packages/kadira-flow-router/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.build* -*.browserify.js.cached -*.browserify.js.map diff --git a/packages/kadira-flow-router/.travis.yml b/packages/kadira-flow-router/.travis.yml deleted file mode 100644 index 5125066a4..000000000 --- a/packages/kadira-flow-router/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -sudo: required -language: node_js -node_js: - - "0.10" -before_install: - - "curl -L http://git.io/ejPSng | /bin/sh" -env: - - TEST_COMMAND=meteor \ No newline at end of file diff --git a/packages/kadira-flow-router/CHANGELOG.md b/packages/kadira-flow-router/CHANGELOG.md deleted file mode 100644 index 80fd67080..000000000 --- a/packages/kadira-flow-router/CHANGELOG.md +++ /dev/null @@ -1,155 +0,0 @@ -# Changelog - -### v2.12.1 - -* Add NPM modules back. Fixes: [#602](https://github.com/kadirahq/flow-router/issues/602) - -### v2.12.0 - -* Update Fast Render to v2.14.0 - -### v2.11.0 - -* Add support for Meteor 1.3 RC-1. -* Removes browserify and get modules from Meteor 1.3. - -### v2.10.1 -* Fix the url generation for prefixed paths. See: [#508](https://github.com/kadirahq/flow-router/issues/508) - -### v2.10.0 -* Update few dependencies to the latest versions: pagejs, qs, cosmos:browserify - -### v2.9.0 -* Add FlowRouter.url() See: [#374](https://github.com/kadirahq/flow-router/pull/374) - -### v2.8.0 -* Allow to access options in groups as well. See: [#378](https://github.com/kadirahq/flow-router/pull/378) - -### v2.7.0 -* Add Path Prefix support. See: [#329](https://github.com/kadirahq/flow-router/pull/329) - -### v2.6.2 -* Now .current() sends a cloned version of the internal current object. Which prevent outside mutations to params and queryParams - -### v2.6.1 - -* Fix [#143](https://github.com/kadirahq/flow-router/issues/314). - This says that when we are doing a trigger redirect, - We won't get reactive changes like: `getRouteName()` - -### v2.6.0 -* Add hashbang support. See [#311](https://github.com/kadirahq/flow-router/pull/311) - -### v2.5.0 -* Add a stop callback on the triggers. See: [#306](https://github.com/kadirahq/flow-router/pull/306). - -### v2.4.0 - -* Add a name to the route groups. See: [#290](https://github.com/kadirahq/flow-router/pull/290) - -### v2.3.0 -* We've used `path` for both the current path and for the pathDef earlier. Now we differentiate it. See: [#272](https://github.com/kadirahq/flow-router/issues/272) and [#273](https://github.com/kadirahq/flow-router/pull/273) for more information. - -### v2.2.0 -* Add the first addOn api: FlowRouter.onRouteRegister(cb) - -### v2.1.1 -* There was an issue in IE9 support. We fix it with this version. - -### v2.1.0 -* Add IE9 Support. See this issue [#111](https://github.com/kadirahq/flow-router/issues/111) for more info. - -### v2.0.2 - -* Add missing queryParams object in the subscriptions method (with FR on the server) -* With that, [#237](https://github.com/kadirahq/flow-router/issues/237) is partially fixed. - -### v2.0.1 - -* Use pagejs.redirect() for our redirection process. -* Above fixes [#239](https://github.com/kadirahq/flow-router/issues/239) - -### v2.0.0 - -* Released 2.0 :) -* Now flow-router comes as `kadira:flow-router` -* Remove deprecated APIs - - `FlowRouter.reactiveCurrent()` - - Middlewares - - `FlowRouter.current().params.query` -* Follow the [migration guide](https://github.com/kadirahq/flow-router#migrating-into-20) for more information. - -### v1.18.0 - -* Implement idempotent routing on withReplaceState. See: [#197](https://github.com/meteorhacks/flow-router/issues/197) -* Add an [API](https://github.com/meteorhacks/flow-router#flowrouterwithtrailingslashfn) to set trailing slashes. - -### v1.17.2 -* Fix [#182](https://github.com/meteorhacks/flow-router/issues/182) - Now trigger's redirect function support `FlowRouter.go()` syntax. - -### v1.17.1 - -* Fix [#164](https://github.com/meteorhacks/flow-router/issues/164) - It's an issue when using `check` with flow router query params. -* Fix [#168](https://github.com/meteorhacks/flow-router/pull/168) - It's URL encoding issue. - -### v1.17.0 - -* Add an API called `FlowRouter.wait()` to wait the initialization and pass it back to the app. Fixes issue [180](https://github.com/meteorhacks/flow-router/issues/180). - -### v1.16.3 - -* Fix a crazy context switching issue. For more information see commit [6ca54cc](https://github.com/meteorhacks/flow-router/commit/6ca54cc7969b3a8aa71d63c98c99a20b175125a2) - -### v1.16.2 -* Fix issue [#167](https://github.com/meteorhacks/flow-router/issues/167) via [#175](https://github.com/meteorhacks/flow-router/pull/175) -* Fix [#176](https://github.com/meteorhacks/flow-router/issues/176) by the removal of `Tracker.flush` usage. - -### v1.16.1 -* Fix [issue](https://github.com/meteorhacks/flow-router/pull/173) of overwriting global triggers when written multiple times. - -### v1.16.0 - -* [Refactor](https://github.com/meteorhacks/flow-router/pull/172) triggers API for clean code -* Added [redirect](https://github.com/meteorhacks/flow-router#redirecting-with-triggers) functionality for triggers -* Now we are API complete for the 2.x release - -### v1.15.0 - -* Now all our routes are idempotent. -* If some one needs to re-run the route, he needs to use our `FlowRouter.reload()` API. - -### v1.14.1 - -* Fix regression came from v1.11.0. With that, `FlowRouter.go("/")` does not work. More information on [#147](https://github.com/meteorhacks/flow-router/issues/147). - -### v1.14.0 -* Bring browserify back with the updated version of `cosmos:browserify` which fixes some size issues. See [more info](https://github.com/meteorhacks/flow-router/issues/128#issuecomment-109799953). - -### v1.13.0 -* Remove browserified pagejs and qs dependency loading. With that we could reduce ~10kb of data size (without compression). We can look for a bower integration in the future. For now, here are the dependencies we have. - - page@1.6.3: https://github.com/visionmedia/page.js - - qs@3.1.0: https://github.com/hapijs/qs - -### v1.12.0 -* Add [`FlowRouter.withReplaceState`](https://github.com/meteorhacks/flow-router#flowrouterwithreplcaestatefn) api to use replaceState when changing routes via FlowRouter apis. - -### v1.11.0 -* Fix [#145](https://github.com/meteorhacks/flow-router/issues/145) by changing how safeToRun works. -* Add `FlowRouter.path()` to the server side -* Fix [#130](https://github.com/meteorhacks/flow-router/issues/130) - -### v1.10.0 -Add support for [triggers](https://github.com/meteorhacks/flow-router#triggers). This is something similar to middlewares but not as middlewares. Visit [here](https://github.com/meteorhacks/flow-router/pull/59) to learn about design decisions. - -_**Now, middlewares are deprecated.**_ - -### v1.9.0 -Fix [#120](https://github.com/meteorhacks/flow-router/issues/120) and added callback support for `FlowRouter.subsReady()`. - -### v1.8.0 - -This release comes with improvements to the reactive API. - -* Fixed [#77](https://github.com/meteorhacks/flow-router/issues/77), [#85](https://github.com/meteorhacks/flow-router/issues/85), [#95](https://github.com/meteorhacks/flow-router/issues/95), [#96](https://github.com/meteorhacks/flow-router/issues/96), [#103](https://github.com/meteorhacks/flow-router/issues/103) -* Add a new API called `FlowRouter.watchPathChange()` -* Deprecated `FlowRouter.reactiveCurrent()` in the favour of `FlowRouter.watchPathChange()` diff --git a/packages/kadira-flow-router/CONTRIBUTING.md b/packages/kadira-flow-router/CONTRIBUTING.md deleted file mode 100644 index adb08f1b7..000000000 --- a/packages/kadira-flow-router/CONTRIBUTING.md +++ /dev/null @@ -1,16 +0,0 @@ -## Whether to submit an issue or not? - -We've very limited time to answer all the issues and respond them in a proper manner. -So, this repo's issue list only used to report **bugs** and **new features.** - -For any other questions, issues or asking for best practices use [Meteor Forums](https://forums.meteor.com/). -Even before you ask a question on Meteor Forums, make sure you read the [Meteor Routing Guide](https://kadira.io/academy/meteor-routing-guide). - -## Implementing Feature and Bug Fixes - -We are welcome and greedy for PRs. So, - -* If you wanna fix a bug, simply submit it. -* If you wanna implement feature or support with contributions, just drop a message to arunoda [at] kadira.io. - - diff --git a/packages/kadira-flow-router/LICENSE b/packages/kadira-flow-router/LICENSE deleted file mode 100644 index 6519acbfd..000000000 --- a/packages/kadira-flow-router/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 MeteorHacks Pvt Ltd (Sri Lanka). - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/packages/kadira-flow-router/README.md b/packages/kadira-flow-router/README.md deleted file mode 100644 index 7e74eb100..000000000 --- a/packages/kadira-flow-router/README.md +++ /dev/null @@ -1,777 +0,0 @@ -# FlowRouter [![Build Status](https://travis-ci.org/kadirahq/flow-router.svg?branch=master)](https://travis-ci.org/kadirahq/flow-router) [![Stories in Ready](https://badge.waffle.io/kadirahq/flow-router.svg?label=doing&title=Activities)](http://waffle.io/kadirahq/flow-router) - -Forked for bug fixes - -Carefully Designed Client Side Router for Meteor. - -FlowRouter is a very simple router for Meteor. It does routing for client-side apps and does not handle rendering itself. - -It exposes a great API for changing the URL and reactively getting data from the URL. However, inside the router, it's not reactive. Most importantly, FlowRouter is designed with performance in mind and it focuses on what it does best: **routing**. - -> We've released 2.0 and follow this [migration guide](#migrating-into-20) if you are already using FlowRouter. - -## TOC - -* [Meteor Routing Guide](#meteor-routing-guide) -* [Getting Started](#getting-started) -* [Routes Definition](#routes-definition) -* [Group Routes](#group-routes) -* [Rendering and Layout Management](#rendering-and-layout-management) -* [Triggers](#triggers) -* [Not Found Routes](#not-found-routes) -* [API](#api) -* [Subscription Management](#subscription-management) -* [IE9 Support](#ie9-support) -* [Hashbang URLs](#hashbang-urls) -* [Prefixed paths](#prefixed-paths) -* [Add-ons](#add-ons) -* [Difference with Iron Router](#difference-with-iron-router) -* [Migrating into 2.0](#migrating-into-20) - -## Meteor Routing Guide - -[Meteor Routing Guide](https://kadira.io/academy/meteor-routing-guide) is a completed guide into **routing** and related topics in Meteor. It talks about how to use FlowRouter properly and use it with **Blaze and React**. It also shows how to manage **subscriptions** and implement **auth logic** in the view layer. - -[![Meteor Routing Guide](https://cldup.com/AxlPfoxXmR.png)](https://kadira.io/academy/meteor-routing-guide) - -## Getting Started - -Add FlowRouter to your app: - -~~~shell -meteor add kadira:flow-router -~~~ - -Let's write our first route (add this file to `lib/router.js`): - -~~~js -FlowRouter.route('/blog/:postId', { - action: function(params, queryParams) { - console.log("Yeah! We are on the post:", params.postId); - } -}); -~~~ - -Then visit `/blog/my-post-id` from the browser or invoke the following command from the browser console: - -~~~js -FlowRouter.go('/blog/my-post-id'); -~~~ - -Then you can see some messages printed in the console. - -## Routes Definition - -FlowRouter routes are very simple and based on the syntax of [path-to-regexp](https://github.com/pillarjs/path-to-regexp) which is used in both [Express](http://expressjs.com/) and `iron:router`. - -Here's the syntax for a simple route: - -~~~js -FlowRouter.route('/blog/:postId', { - // do some action for this route - action: function(params, queryParams) { - console.log("Params:", params); - console.log("Query Params:", queryParams); - }, - - name: "" // optional -}); -~~~ - -So, this route will be activated when you visit a url like below: - -~~~js -FlowRouter.go('/blog/my-post?comments=on&color=dark'); -~~~ - -After you've visit the route, this will be printed in the console: - -~~~ -Params: {postId: "my-post"} -Query Params: {comments: "on", color: "dark"} -~~~ - -For a single interaction, the router only runs once. That means, after you've visit a route, first it will call `triggers`, then `subscriptions` and finally `action`. After that happens, none of those methods will be called again for that route visit. - -You can define routes anywhere in the `client` directory. But, we recommend to add them in the `lib` directory. Then `fast-render` can detect subscriptions and send them for you (we'll talk about this is a moment). - -### Group Routes - -You can group routes for better route organization. Here's an example: - -~~~js -var adminRoutes = FlowRouter.group({ - prefix: '/admin', - name: 'admin', - triggersEnter: [function(context, redirect) { - console.log('running group triggers'); - }] -}); - -// handling /admin route -adminRoutes.route('/', { - action: function() { - BlazeLayout.render('componentLayout', {content: 'admin'}); - }, - triggersEnter: [function(context, redirect) { - console.log('running /admin trigger'); - }] -}); - -// handling /admin/posts -adminRoutes.route('/posts', { - action: function() { - BlazeLayout.render('componentLayout', {content: 'posts'}); - } -}); -~~~ - -**All of the options for the `FlowRouter.group()` are optional.** - -You can even have nested group routes as shown below: - -~~~js -var adminRoutes = FlowRouter.group({ - prefix: "/admin", - name: "admin" -}); - -var superAdminRoutes = adminRoutes.group({ - prefix: "/super", - name: "superadmin" -}); - -// handling /admin/super/post -superAdminRoutes.route('/post', { - action: function() { - - } -}); -~~~ - -You can determine which group the current route is in using: - -~~~js -FlowRouter.current().route.group.name -~~~ - -This can be useful for determining if the current route is in a specific group (e.g. *admin*, *public*, *loggedIn*) without needing to use prefixes if you don't want to. If it's a nested group, you can get the parent group's name with: - -~~~js -FlowRouter.current().route.group.parent.name -~~~ - -As with all current route properties, these are not reactive, but can be combined with `FlowRouter.watchPathChange()` to get group names reactively. - -## Rendering and Layout Management - -FlowRouter does not handle rendering or layout management. For that, you can use: - - * [Blaze Layout for Blaze](https://github.com/kadirahq/blaze-layout) - * [React Layout for React](https://github.com/kadirahq/meteor-react-layout) - -Then you can invoke the layout manager inside the `action` method in the router. - -~~~js -FlowRouter.route('/blog/:postId', { - action: function(params) { - BlazeLayout.render("mainLayout", {area: "blog"}); - } -}); -~~~ - -## Triggers - -Triggers are the way FlowRouter allows you to perform tasks before you **enter** into a route and after you **exit** from a route. - -#### Defining triggers for a route - -Here's how you can define triggers for a route: - -~~~js -FlowRouter.route('/home', { - // calls just before the action - triggersEnter: [trackRouteEntry], - action: function() { - // do something you like - }, - // calls when we decide to move to another route - // but calls before the next route started - triggersExit: [trackRouteClose] -}); - -function trackRouteEntry(context) { - // context is the output of `FlowRouter.current()` - Mixpanel.track("visit-to-home", context.queryParams); -} - -function trackRouteClose(context) { - Mixpanel.track("move-from-home", context.queryParams); -} -~~~ - -#### Defining triggers for a group route - -This is how you can define triggers on a group definition. - -~~~js -var adminRoutes = FlowRouter.group({ - prefix: '/admin', - triggersEnter: [trackRouteEntry], - triggersExit: [trackRouteEntry] -}); -~~~ - -> You can add triggers to individual routes in the group too. - -#### Defining Triggers Globally - -You can also define triggers globally. Here's how to do it: - -~~~js -FlowRouter.triggers.enter([cb1, cb2]); -FlowRouter.triggers.exit([cb1, cb2]); - -// filtering -FlowRouter.triggers.enter([trackRouteEntry], {only: ["home"]}); -FlowRouter.triggers.exit([trackRouteExit], {except: ["home"]}); -~~~ - -As you can see from the last two examples, you can filter routes using the `only` or `except` keywords. But, you can't use both `only` and `except` at once. - -> If you'd like to learn more about triggers and design decisions, visit [here](https://github.com/meteorhacks/flow-router/pull/59). - -#### Redirecting With Triggers - -You can redirect to a different route using triggers. You can do it from both enter and exit triggers. See how to do it: - -~~~js -FlowRouter.route('/', { - triggersEnter: [function(context, redirect) { - redirect('/some-other-path'); - }], - action: function(_params) { - throw new Error("this should not get called"); - } -}); -~~~ - -Every trigger callback comes with a second argument: a function you can use to redirect to a different route. Redirect also has few properties to make sure it's not blocking the router. - -* redirect must be called with an URL -* redirect must be called within the same event loop cycle (no async or called inside a Tracker) -* redirect cannot be called multiple times - -Check this [PR](https://github.com/meteorhacks/flow-router/pull/172) to learn more about our redirect API. - -#### Stopping the Callback With Triggers - -In some cases, you may need to stop the route callback from firing using triggers. You can do this in **before** triggers, using the third argument: the `stop` function. For example, you can check the prefix and if it fails, show the notFound layout and stop before the action fires. - -```js -var localeGroup = FlowRouter.group({ - prefix: '/:locale?', - triggersEnter: [localeCheck] -}); - -localeGroup.route('/login', { - action: function (params, queryParams) { - BlazeLayout.render('componentLayout', {content: 'login'}); - } -}); - -function localeCheck(context, redirect, stop) { - var locale = context.params.locale; - - if (locale !== undefined && locale !== 'fr') { - BlazeLayout.render('notFound'); - stop(); - } -} -``` - -> **Note**: When using the stop function, you should always pass the second **redirect** argument, even if you won't use it. - -## Not Found Routes - -You can configure Not Found routes like this: - -~~~js -FlowRouter.notFound = { - // Subscriptions registered here don't have Fast Render support. - subscriptions: function() { - - }, - action: function() { - - } -}; -~~~ - -## API - -FlowRouter has a rich API to help you to navigate the router and reactively get information from the router. - -#### FlowRouter.getParam(paramName); - -Reactive function which you can use to get a parameter from the URL. - -~~~js -// route def: /apps/:appId -// url: /apps/this-is-my-app - -var appId = FlowRouter.getParam("appId"); -console.log(appId); // prints "this-is-my-app" -~~~ - -#### FlowRouter.getQueryParam(queryStringKey); - -Reactive function which you can use to get a value from the queryString. - -~~~js -// route def: /apps/:appId -// url: /apps/this-is-my-app?show=yes&color=red - -var color = FlowRouter.getQueryParam("color"); -console.log(color); // prints "red" -~~~ - -#### FlowRouter.path(pathDef, params, queryParams) - -Generate a path from a path definition. Both `params` and `queryParams` are optional. - -Special characters in `params` and `queryParams` will be URL encoded. - -~~~js -var pathDef = "/blog/:cat/:id"; -var params = {cat: "met eor", id: "abc"}; -var queryParams = {show: "y+e=s", color: "black"}; - -var path = FlowRouter.path(pathDef, params, queryParams); -console.log(path); // prints "/blog/met%20eor/abc?show=y%2Be%3Ds&color=black" -~~~ - -If there are no params or queryParams, this will simply return the pathDef as it is. - -##### Using Route name instead of the pathDef - -You can also use the route's name instead of the pathDef. Then, FlowRouter will pick the pathDef from the given route. See the following example: - -~~~js -FlowRouter.route("/blog/:cat/:id", { - name: "blogPostRoute", - action: function(params) { - //... - } -}) - -var params = {cat: "meteor", id: "abc"}; -var queryParams = {show: "yes", color: "black"}; - -var path = FlowRouter.path("blogPostRoute", params, queryParams); -console.log(path); // prints "/blog/meteor/abc?show=yes&color=black" -~~~ - -#### FlowRouter.go(pathDef, params, queryParams); - -This will get the path via `FlowRouter.path` based on the arguments and re-route to that path. - -You can call `FlowRouter.go` like this as well: - -~~~js -FlowRouter.go("/blog"); -~~~ - - -#### FlowRouter.url(pathDef, params, queryParams) - -Just like `FlowRouter.path`, but gives the absolute url. (Uses `Meteor.absoluteUrl` behind the scenes.) - -#### FlowRouter.setParams(newParams) - -This will change the current params with the newParams and re-route to the new path. - -~~~js -// route def: /apps/:appId -// url: /apps/this-is-my-app?show=yes&color=red - -FlowRouter.setParams({appId: "new-id"}); -// Then the user will be redirected to the following path -// /apps/new-id?show=yes&color=red -~~~ - -#### FlowRouter.setQueryParams(newQueryParams) - -Just like `FlowRouter.setParams`, but for queryString params. - -To remove a query param set it to `null` like below: - -~~~js -FlowRouter.setQueryParams({paramToRemove: null}); -~~~ - -#### FlowRouter.getRouteName() - -To get the name of the route reactively. - -~~~js -Tracker.autorun(function() { - var routeName = FlowRouter.getRouteName(); - console.log("Current route name is: ", routeName); -}); -~~~ - -#### FlowRouter.current() - -Get the current state of the router. **This API is not reactive**. -If you need to watch the changes in the path simply use `FlowRouter.watchPathChange()`. - -This gives an object like this: - -~~~js -// route def: /apps/:appId -// url: /apps/this-is-my-app?show=yes&color=red - -var current = FlowRouter.current(); -console.log(current); - -// prints following object -// { -// path: "/apps/this-is-my-app?show=yes&color=red", -// params: {appId: "this-is-my-app"}, -// queryParams: {show: "yes", color: "red"} -// route: {pathDef: "/apps/:appId", name: "name-of-the-route"} -// } -~~~ - -#### FlowRouter.watchPathChange() - -Reactively watch the changes in the path. If you need to simply get the params or queryParams use dedicated APIs like `FlowRouter.getQueryParam()`. - -~~~js -Tracker.autorun(function() { - FlowRouter.watchPathChange(); - var currentContext = FlowRouter.current(); - // do anything with the current context - // or anything you wish -}); -~~~ - -#### FlowRouter.withReplaceState(fn) -Normally, all the route changes made via APIs like `FlowRouter.go` and `FlowRouter.setParams()` add a URL item to the browser history. For example, run the following code: - -~~~js -FlowRouter.setParams({id: "the-id-1"}); -FlowRouter.setParams({id: "the-id-2"}); -FlowRouter.setParams({id: "the-id-3"}); -~~~ - -Now you can hit the back button of your browser two times. This is normal behavior since users may click the back button and expect to see the previous state of the app. - -But sometimes, this is not something you want. You don't need to pollute the browser history. Then, you can use the following syntax. - -~~~js -FlowRouter.withReplaceState(function() { - FlowRouter.setParams({id: "the-id-1"}); - FlowRouter.setParams({id: "the-id-2"}); - FlowRouter.setParams({id: "the-id-3"}); -}); -~~~ - -Now, there is no item in the browser history. Just like `FlowRouter.setParams`, you can use any FlowRouter API inside `FlowRouter.withReplaceState`. - -> We named this function as `withReplaceState` because, replaceState is the underline API used for this functionality. Read more about [replace state & the history API](https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history). - -#### FlowRouter.reload() - -FlowRouter routes are idempotent. That means, even if you call `FlowRouter.go()` to the same URL multiple times, it only activates in the first run. This is also true for directly clicking on paths. - -So, if you really need to reload the route, this is the API you want. - -#### FlowRouter.wait() and FlowRouter.initialize() - -By default, FlowRouter initializes the routing process in a `Meteor.startup()` callback. This works for most of the apps. But, some apps have custom initializations and FlowRouter needs to initialize after that. - -So, that's where `FlowRouter.wait()` comes to save you. You need to call it directly inside your JavaScript file. After that, whenever your app is ready call `FlowRouter.initialize()`. - -eg:- - -~~~js -// file: app.js -FlowRouter.wait(); -WhenEverYourAppIsReady(function() { - FlowRouter.initialize(); -}); -~~~ - -For more information visit [issue #180](https://github.com/meteorhacks/flow-router/issues/180). - -#### FlowRouter.onRouteRegister(cb) - -This API is specially designed for add-on developers. They can listen for any registered route and add custom functionality to FlowRouter. This works on both server and client alike. - -~~~js -FlowRouter.onRouteRegister(function(route) { - // do anything with the route object - console.log(route); -}); -~~~ - -Let's say a user defined a route like this: - -~~~js -FlowRouter.route('/blog/:post', { - name: 'postList', - triggersEnter: [function() {}], - subscriptions: function() {}, - action: function() {}, - triggersExit: [function() {}], - customField: 'customName' -}); -~~~ - -Then the route object will be something like this: - -~~~js -{ - pathDef: '/blog/:post', - name: 'postList', - options: {customField: 'customName'} -} -~~~ - -So, it's not the internal route object we are using. - -## Subscription Management - -For Subscription Management, we highly suggest you to follow [Template/Component level subscriptions](https://kadira.io/academy/meteor-routing-guide/content/subscriptions-and-data-management). Visit this [guide](https://kadira.io/academy/meteor-routing-guide/content/subscriptions-and-data-management) for that. - -FlowRouter also has it's own subscription registration mechanism. We will remove this in version 3.0. We don't remove or deprecate it in version 2.x because this is the easiest way to implement FastRender support for your app. In 3.0 we've better support for FastRender with Server Side Rendering. - -FlowRouter only deals with registration of subscriptions. It does not wait until subscription becomes ready. This is how to register a subscription. - -~~~js -FlowRouter.route('/blog/:postId', { - subscriptions: function(params, queryParams) { - this.register('myPost', Meteor.subscribe('blogPost', params.postId)); - } -}); -~~~ - -We can also register global subscriptions like this: - -~~~js -FlowRouter.subscriptions = function() { - this.register('myCourses', Meteor.subscribe('courses')); -}; -~~~ - -All these global subscriptions run on every route. So, pay special attention to names when registering subscriptions. - -After you've registered your subscriptions, you can reactively check for the status of those subscriptions like this: - -~~~js -Tracker.autorun(function() { - console.log("Is myPost ready?:", FlowRouter.subsReady("myPost")); - console.log("Are all subscriptions ready?:", FlowRouter.subsReady()); -}); -~~~ - -So, you can use `FlowRouter.subsReady` inside template helpers to show the loading status and act accordingly. - -### FlowRouter.subsReady() with a callback - -Sometimes, we need to use `FlowRouter.subsReady()` in places where an autorun is not available. One such example is inside an event handler. For such places, we can use the callback API of `FlowRouter.subsReady()`. - -~~~js -Template.myTemplate.events({ - "click #id": function(){ - FlowRouter.subsReady("myPost", function() { - // do something - }); - } -}); -~~~ - -> Arunoda has discussed more about Subscription Management in FlowRouter in [this](https://meteorhacks.com/flow-router-and-subscription-management.html#subscription-management) blog post about [FlowRouter and Subscription Management](https://meteorhacks.com/flow-router-and-subscription-management.html). - -> He's showing how to build an app like this: - ->![FlowRouter's Subscription Management](https://cldup.com/esLzM8cjEL.gif) - -#### Fast Render -FlowRouter has built in support for [Fast Render](https://github.com/meteorhacks/fast-render). - -- `meteor add meteorhacks:fast-render` -- Put `router.js` in a shared location. We suggest `lib/router.js`. - -You can exclude Fast Render support by wrapping the subscription registration in an `isClient` block: - -~~~js -FlowRouter.route('/blog/:postId', { - subscriptions: function(params, queryParams) { - // using Fast Render - this.register('myPost', Meteor.subscribe('blogPost', params.postId)); - - // not using Fast Render - if(Meteor.isClient) { - this.register('data', Meteor.subscribe('bootstrap-data'); - } - } -}); -~~~ - -#### Subscription Caching - -You can also use [Subs Manager](https://github.com/meteorhacks/subs-manager) for caching subscriptions on the client. We haven't done anything special to make it work. It should work as it works with other routers. - -## IE9 Support - -FlowRouter has IE9 support. But it does not ship the **HTML5 history polyfill** out of the box. That's because most apps do not require it. - -If you need to support IE9, add the **HTML5 history polyfill** with the following package. - -~~~shell -meteor add tomwasd:history-polyfill -~~~ - -## Hashbang URLs - -To enable hashbang urls like `mydomain.com/#!/mypath` simple set the `hashbang` option to `true` in the initialize function: - -~~~js -// file: app.js -FlowRouter.wait(); -WhenEverYourAppIsReady(function() { - FlowRouter.initialize({hashbang: true}); -}); -~~~ - -## Prefixed paths - -In cases you wish to run multiple web application on the same domain name, you’ll probably want to serve your particular meteor application under a sub-path (eg `example.com/myapp`). In this case simply include the path prefix in the meteor `ROOT_URL` environment variable and FlowRouter will handle it transparently without any additional configuration. - -## Add-ons - -Router is a base package for an app. Other projects like [useraccounts](http://useraccounts.meteor.com/) should have support for FlowRouter. Otherwise, it's hard to use FlowRouter in a real project. Now a lot of packages have [started to support FlowRouter](https://kadira.io/blog/meteor/addon-packages-for-flowrouter). - -So, you can use your your favorite package with FlowRouter as well. If not, there is an [easy process](https://kadira.io/blog/meteor/addon-packages-for-flowrouter#what-if-project-xxx-still-doesn-t-support-flowrouter-) to convert them to FlowRouter. - -**Add-on API** - -We have also released a [new API](https://github.com/kadirahq/flow-router#flowrouteronrouteregistercb) to support add-on developers. With that add-on packages can get a notification, when the user created a route in their app. - -If you've more ideas for the add-on API, [let us know](https://github.com/kadirahq/flow-router/issues). - -## Difference with Iron Router - -FlowRouter and Iron Router are two different routers. Iron Router tries to be a full featured solution. It tries to do everything including routing, subscriptions, rendering and layout management. - -FlowRouter is a minimalistic solution focused on routing with UI performance in mind. It exposes APIs for related functionality. - -Let's learn more about the differences: - -### Rendering - -FlowRouter doesn't handle rendering. By decoupling rendering from the router it's possible to use any rendering framework, such as [Blaze Layout](https://github.com/kadirahq/blaze-layout) to render with Blaze's Dynamic Templates. Rendering calls are made in the the route's action. We have a layout manager for [React](https://github.com/kadirahq/meteor-react-layout) as well. - -### Subscriptions - -With FlowRouter, we highly suggest using template/component layer subscriptions. But, if you need to do routing in the router layer, FlowRouter has [subscription registration](#subscription-management) mechanism. Even with that, FlowRouter never waits for the subscriptions and view layer to do it. - -### Reactive Content - -In Iron Router you can use reactive content inside the router, but any hook or method can re-run in an unpredictable manner. FlowRouter limits reactive data sources to a single run; when it is first called. - -We think that's the way to go. Router is just a user action. We can work with reactive content in the rendering layer. - -### router.current() is evil - -`Router.current()` is evil. Why? Let's look at following example. Imagine we have a route like this in our app: - -~~~ -/apps/:appId/:section -~~~ - -Now let's say, we need to get `appId` from the URL. Then we will do, something like this in Iron Router. - -~~~js -Templates['foo'].helpers({ - "someData": function() { - var appId = Router.current().params.appId; - return doSomething(appId); - } -}); -~~~ - -Let's say we changed `:section` in the route. Then the above helper also gets rerun. If we add a query param to the URL, it gets rerun. That's because `Router.current()` looks for changes in the route(or URL). But in any of above cases, `appId` didn't get changed. - -Because of this, a lot parts of our app get re-run and re-rendered. This creates unpredictable rendering behavior in our app. - -FlowRouter fixes this issue by providing the `Router.getParam()` API. See how to use it: - -~~~js -Templates['foo'].helpers({ - "someData": function() { - var appId = FlowRouter.getParam('appId'); - return doSomething(appId); - } -}); -~~~ - -### No data context - -FlowRouter does not have a data context. Data context has the same problem as reactive `.current()`. We believe, it'll possible to get data directly in the template (component) layer. - -### Built in Fast Render Support - -FlowRouter has built in [Fast Render](https://github.com/meteorhacks/fast-render) support. Just add Fast Render to your app and it'll work. Nothing to change in the router. - -For more information check [docs](#fast-render). - -### Server Side Routing - -FlowRouter is a client side router and it **does not** support server side routing at all. But `subscriptions` run on the server to enable Fast Render support. - -#### Reason behind that - -Meteor is not a traditional framework where you can send HTML directly from the server. Meteor needs to send a special set of HTML to the client initially. So, you can't directly send something to the client yourself. - -Also, in the server we need look for different things compared with the client. For example: - -* In the server we have to deal with headers. -* In the server we have to deal with methods like `GET`, `POST`, etc. -* In the server we have Cookies. - -So, it's better to use a dedicated server-side router like [`meteorhacks:picker`](https://github.com/meteorhacks/picker). It supports connect and express middlewares and has a very easy to use route syntax. - -### Server Side Rendering - -FlowRouter 3.0 will have server side rendering support. We've already started the initial version and check our [`ssr`](https://github.com/meteorhacks/flow-router/tree/ssr) branch for that. - -It's currently very usable and Kadira already using it for - -### Better Initial Loading Support - -In Meteor, we have to wait until all the JS and other resources send before rendering anything. This is an issue. In 3.0, with the support from Server Side Rendering we are going to fix it. - -## Migrating into 2.0 - -Migrating into version 2.0 is easy and you don't need to change any application code since you are already using 2.0 features and the APIs. In 2.0, we've changed names and removed some deprecated APIs. - -Here are the steps to migrate your app into 2.0. - -#### Use the New FlowRouter Package -* Now FlowRouter comes as `kadira:flow-router` -* So, remove `meteorhacks:flow-router` with : `meteor remove meteorhacks:flow-router` -* Then, add `kadira:flow-router` with `meteor add kadira:flow-router` - -#### Change FlowLayout into BlazeLayout -* We've also renamed FlowLayout as [BlazeLayout](https://github.com/kadirahq/blaze-layout). -* So, remove `meteorhacks:flow-layout` and add `kadira:blaze-layout` instead. -* You need to use `BlazeLayout.render()` instead of `FlowLayout.render()` - -#### Stop using deprecated Apis -* There is no middleware support. Use triggers instead. -* There is no API called `.reactiveCurrent()`, use `.watchPathChange()` instead. -* Earlier, you can access query params with `FlowRouter.current().params.query`. But, now you can't do that. Use `FlowRouter.current().queryParams` instead. diff --git a/packages/kadira-flow-router/client/_init.js b/packages/kadira-flow-router/client/_init.js deleted file mode 100644 index a18fdc897..000000000 --- a/packages/kadira-flow-router/client/_init.js +++ /dev/null @@ -1,11 +0,0 @@ -// Export Router Instance -FlowRouter = new Router(); -FlowRouter.Router = Router; -FlowRouter.Route = Route; - -// Initialize FlowRouter -Meteor.startup(function () { - if(!FlowRouter._askedToWait) { - FlowRouter.initialize(); - } -}); diff --git a/packages/kadira-flow-router/client/group.js b/packages/kadira-flow-router/client/group.js deleted file mode 100644 index b93296bc2..000000000 --- a/packages/kadira-flow-router/client/group.js +++ /dev/null @@ -1,57 +0,0 @@ -Group = function(router, options, parent) { - options = options || {}; - - if (options.prefix && !/^\/.*/.test(options.prefix)) { - var message = "group's prefix must start with '/'"; - throw new Error(message); - } - - this._router = router; - this.prefix = options.prefix || ''; - this.name = options.name; - this.options = options; - - this._triggersEnter = options.triggersEnter || []; - this._triggersExit = options.triggersExit || []; - this._subscriptions = options.subscriptions || Function.prototype; - - this.parent = parent; - if (this.parent) { - this.prefix = parent.prefix + this.prefix; - - this._triggersEnter = parent._triggersEnter.concat(this._triggersEnter); - this._triggersExit = this._triggersExit.concat(parent._triggersExit); - } -}; - -Group.prototype.route = function(pathDef, options, group) { - options = options || {}; - - if (!/^\/.*/.test(pathDef)) { - var message = "route's path must start with '/'"; - throw new Error(message); - } - - group = group || this; - pathDef = this.prefix + pathDef; - - var triggersEnter = options.triggersEnter || []; - options.triggersEnter = this._triggersEnter.concat(triggersEnter); - - var triggersExit = options.triggersExit || []; - options.triggersExit = triggersExit.concat(this._triggersExit); - - return this._router.route(pathDef, options, group); -}; - -Group.prototype.group = function(options) { - return new Group(this._router, options, this); -}; - -Group.prototype.callSubscriptions = function(current) { - if (this.parent) { - this.parent.callSubscriptions(current); - } - - this._subscriptions.call(current.route, current.params, current.queryParams); -}; diff --git a/packages/kadira-flow-router/client/modules.js b/packages/kadira-flow-router/client/modules.js deleted file mode 100644 index 7b734f449..000000000 --- a/packages/kadira-flow-router/client/modules.js +++ /dev/null @@ -1,2 +0,0 @@ -page = require('page'); -qs = require('qs'); diff --git a/packages/kadira-flow-router/client/route.js b/packages/kadira-flow-router/client/route.js deleted file mode 100644 index b82e97213..000000000 --- a/packages/kadira-flow-router/client/route.js +++ /dev/null @@ -1,125 +0,0 @@ -Route = function(router, pathDef, options, group) { - options = options || {}; - - this.options = options; - this.pathDef = pathDef - - // Route.path is deprecated and will be removed in 3.0 - this.path = pathDef; - - if (options.name) { - this.name = options.name; - } - - this._action = options.action || Function.prototype; - this._subscriptions = options.subscriptions || Function.prototype; - this._triggersEnter = options.triggersEnter || []; - this._triggersExit = options.triggersExit || []; - this._subsMap = {}; - this._router = router; - - this._params = new ReactiveDict(); - this._queryParams = new ReactiveDict(); - this._routeCloseDep = new Tracker.Dependency(); - - // tracks the changes in the URL - this._pathChangeDep = new Tracker.Dependency(); - - this.group = group; -}; - -Route.prototype.clearSubscriptions = function() { - this._subsMap = {}; -}; - -Route.prototype.register = function(name, sub, options) { - this._subsMap[name] = sub; -}; - - -Route.prototype.getSubscription = function(name) { - return this._subsMap[name]; -}; - - -Route.prototype.getAllSubscriptions = function() { - return this._subsMap; -}; - -Route.prototype.callAction = function(current) { - var self = this; - self._action(current.params, current.queryParams); -}; - -Route.prototype.callSubscriptions = function(current) { - this.clearSubscriptions(); - if (this.group) { - this.group.callSubscriptions(current); - } - - this._subscriptions(current.params, current.queryParams); -}; - -Route.prototype.getRouteName = function() { - this._routeCloseDep.depend(); - return this.name; -}; - -Route.prototype.getParam = function(key) { - this._routeCloseDep.depend(); - return this._params.get(key); -}; - -Route.prototype.getQueryParam = function(key) { - this._routeCloseDep.depend(); - return this._queryParams.get(key); -}; - -Route.prototype.watchPathChange = function() { - this._pathChangeDep.depend(); -}; - -Route.prototype.registerRouteClose = function() { - this._params = new ReactiveDict(); - this._queryParams = new ReactiveDict(); - this._routeCloseDep.changed(); - this._pathChangeDep.changed(); -}; - -Route.prototype.registerRouteChange = function(currentContext, routeChanging) { - // register params - var params = currentContext.params; - this._updateReactiveDict(this._params, params); - - // register query params - var queryParams = currentContext.queryParams; - this._updateReactiveDict(this._queryParams, queryParams); - - // if the route is changing, we need to defer triggering path changing - // if we did this, old route's path watchers will detect this - // Real issue is, above watcher will get removed with the new route - // So, we don't need to trigger it now - // We are doing it on the route close event. So, if they exists they'll - // get notify that - if(!routeChanging) { - this._pathChangeDep.changed(); - } -}; - -Route.prototype._updateReactiveDict = function(dict, newValues) { - var currentKeys = _.keys(newValues); - var oldKeys = _.keys(dict.keyDeps); - - // set new values - // params is an array. So, _.each(params) does not works - // to iterate params - _.each(currentKeys, function(key) { - dict.set(key, newValues[key]); - }); - - // remove keys which does not exisits here - var removedKeys = _.difference(oldKeys, currentKeys); - _.each(removedKeys, function(key) { - dict.set(key, undefined); - }); -}; diff --git a/packages/kadira-flow-router/client/router.js b/packages/kadira-flow-router/client/router.js deleted file mode 100644 index ae91751f2..000000000 --- a/packages/kadira-flow-router/client/router.js +++ /dev/null @@ -1,587 +0,0 @@ -Router = function () { - var self = this; - this.globals = []; - this.subscriptions = Function.prototype; - - this._tracker = this._buildTracker(); - this._current = {}; - - // tracks the current path change - this._onEveryPath = new Tracker.Dependency(); - - this._globalRoute = new Route(this); - - // holds onRoute callbacks - this._onRouteCallbacks = []; - - // if _askedToWait is true. We don't automatically start the router - // in Meteor.startup callback. (see client/_init.js) - // Instead user need to call `.initialize() - this._askedToWait = false; - this._initialized = false; - this._triggersEnter = []; - this._triggersExit = []; - this._routes = []; - this._routesMap = {}; - this._updateCallbacks(); - this.notFound = this.notfound = null; - // indicate it's okay (or not okay) to run the tracker - // when doing subscriptions - // using a number and increment it help us to support FlowRouter.go() - // and legitimate reruns inside tracker on the same event loop. - // this is a solution for #145 - this.safeToRun = 0; - - // Meteor exposes to the client the path prefix that was defined using the - // ROOT_URL environement variable on the server using the global runtime - // configuration. See #315. - this._basePath = __meteor_runtime_config__.ROOT_URL_PATH_PREFIX || ''; - - // this is a chain contains a list of old routes - // most of the time, there is only one old route - // but when it's the time for a trigger redirect we've a chain - this._oldRouteChain = []; - - this.env = { - replaceState: new Meteor.EnvironmentVariable(), - reload: new Meteor.EnvironmentVariable(), - trailingSlash: new Meteor.EnvironmentVariable() - }; - - // redirect function used inside triggers - this._redirectFn = function(pathDef, fields, queryParams) { - if (/^http(s)?:\/\//.test(pathDef)) { - var message = "Redirects to URLs outside of the app are not supported in this version of Flow Router. Use 'window.location = yourUrl' instead"; - throw new Error(message); - } - self.withReplaceState(function() { - var path = FlowRouter.path(pathDef, fields, queryParams); - self._page.redirect(path); - }); - }; - this._initTriggersAPI(); -}; - -Router.prototype.route = function(pathDef, options, group) { - if (!/^\/.*/.test(pathDef)) { - var message = "route's path must start with '/'"; - throw new Error(message); - } - - options = options || {}; - var self = this; - var route = new Route(this, pathDef, options, group); - - // calls when the page route being activates - route._actionHandle = function (context, next) { - var oldRoute = self._current.route; - self._oldRouteChain.push(oldRoute); - - var queryParams = self._qs.parse(context.querystring); - // _qs.parse() gives us a object without prototypes, - // created with Object.create(null) - // Meteor's check doesn't play nice with it. - // So, we need to fix it by cloning it. - // see more: https://github.com/meteorhacks/flow-router/issues/164 - queryParams = JSON.parse(JSON.stringify(queryParams)); - - self._current = { - path: context.path, - context: context, - params: context.params, - queryParams: queryParams, - route: route, - oldRoute: oldRoute - }; - - // we need to invalidate if all the triggers have been completed - // if not that means, we've been redirected to another path - // then we don't need to invalidate - var afterAllTriggersRan = function() { - self._invalidateTracker(); - }; - - var triggers = self._triggersEnter.concat(route._triggersEnter); - Triggers.runTriggers( - triggers, - self._current, - self._redirectFn, - afterAllTriggersRan - ); - }; - - // calls when you exit from the page js route - route._exitHandle = function(context, next) { - var triggers = self._triggersExit.concat(route._triggersExit); - Triggers.runTriggers( - triggers, - self._current, - self._redirectFn, - next - ); - }; - - this._routes.push(route); - if (options.name) { - this._routesMap[options.name] = route; - } - - this._updateCallbacks(); - this._triggerRouteRegister(route); - - return route; -}; - -Router.prototype.group = function(options) { - return new Group(this, options); -}; - -Router.prototype.path = function(pathDef, fields, queryParams) { - if (this._routesMap[pathDef]) { - pathDef = this._routesMap[pathDef].pathDef; - } - - var path = ""; - - // Prefix the path with the router global prefix - if (this._basePath) { - path += "/" + this._basePath + "/"; - } - - fields = fields || {}; - var regExp = /(:[\w\(\)\\\+\*\.\?]+)+/g; - path += pathDef.replace(regExp, function(key) { - var firstRegexpChar = key.indexOf("("); - // get the content behind : and (\\d+/) - key = key.substring(1, (firstRegexpChar > 0)? firstRegexpChar: undefined); - // remove +?* - key = key.replace(/[\+\*\?]+/g, ""); - - // this is to allow page js to keep the custom characters as it is - // we need to encode 2 times otherwise "/" char does not work properly - // So, in that case, when I includes "/" it will think it's a part of the - // route. encoding 2times fixes it - return encodeURIComponent(encodeURIComponent(fields[key] || "")); - }); - - // Replace multiple slashes with single slash - path = path.replace(/\/\/+/g, "/"); - - // remove trailing slash - // but keep the root slash if it's the only one - path = path.match(/^\/{1}$/) ? path: path.replace(/\/$/, ""); - - // explictly asked to add a trailing slash - if(this.env.trailingSlash.get() && _.last(path) !== "/") { - path += "/"; - } - - var strQueryParams = this._qs.stringify(queryParams || {}); - if(strQueryParams) { - path += "?" + strQueryParams; - } - - return path; -}; - -Router.prototype.go = function(pathDef, fields, queryParams) { - var path = this.path(pathDef, fields, queryParams); - - var useReplaceState = this.env.replaceState.get(); - if(useReplaceState) { - this._page.replace(path); - } else { - this._page(path); - } -}; - -Router.prototype.reload = function() { - var self = this; - - self.env.reload.withValue(true, function() { - self._page.replace(self._current.path); - }); -}; - -Router.prototype.redirect = function(path) { - this._page.redirect(path); -}; - -Router.prototype.setParams = function(newParams) { - if(!this._current.route) {return false;} - - var pathDef = this._current.route.pathDef; - var existingParams = this._current.params; - var params = {}; - _.each(_.keys(existingParams), function(key) { - params[key] = existingParams[key]; - }); - - params = _.extend(params, newParams); - var queryParams = this._current.queryParams; - - this.go(pathDef, params, queryParams); - return true; -}; - -Router.prototype.setQueryParams = function(newParams) { - if(!this._current.route) {return false;} - - var queryParams = _.clone(this._current.queryParams); - _.extend(queryParams, newParams); - - for (var k in queryParams) { - if (queryParams[k] === null || queryParams[k] === undefined) { - delete queryParams[k]; - } - } - - var pathDef = this._current.route.pathDef; - var params = this._current.params; - this.go(pathDef, params, queryParams); - return true; -}; - -// .current is not reactive -// This is by design. use .getParam() instead -// If you really need to watch the path change, use .watchPathChange() -Router.prototype.current = function() { - // We can't trust outside, that's why we clone this - // Anyway, we can't clone the whole object since it has non-jsonable values - // That's why we clone what's really needed. - var current = _.clone(this._current); - current.queryParams = EJSON.clone(current.queryParams); - current.params = EJSON.clone(current.params); - return current; -}; - -// Implementing Reactive APIs -var reactiveApis = [ - 'getParam', 'getQueryParam', - 'getRouteName', 'watchPathChange' -]; -reactiveApis.forEach(function(api) { - Router.prototype[api] = function(arg1) { - // when this is calling, there may not be any route initiated - // so we need to handle it - var currentRoute = this._current.route; - if(!currentRoute) { - this._onEveryPath.depend(); - return; - } - - // currently, there is only one argument. If we've more let's add more args - // this is not clean code, but better in performance - return currentRoute[api].call(currentRoute, arg1); - }; -}); - -Router.prototype.subsReady = function() { - var callback = null; - var args = _.toArray(arguments); - - if (typeof _.last(args) === "function") { - callback = args.pop(); - } - - var currentRoute = this.current().route; - var globalRoute = this._globalRoute; - - // we need to depend for every route change and - // rerun subscriptions to check the ready state - this._onEveryPath.depend(); - - if(!currentRoute) { - return false; - } - - var subscriptions; - if(args.length === 0) { - subscriptions = _.values(globalRoute.getAllSubscriptions()); - subscriptions = subscriptions.concat(_.values(currentRoute.getAllSubscriptions())); - } else { - subscriptions = _.map(args, function(subName) { - return globalRoute.getSubscription(subName) || currentRoute.getSubscription(subName); - }); - } - - var isReady = function() { - var ready = _.every(subscriptions, function(sub) { - return sub && sub.ready(); - }); - - return ready; - }; - - if (callback) { - Tracker.autorun(function(c) { - if (isReady()) { - callback(); - c.stop(); - } - }); - } else { - return isReady(); - } -}; - -Router.prototype.withReplaceState = function(fn) { - return this.env.replaceState.withValue(true, fn); -}; - -Router.prototype.withTrailingSlash = function(fn) { - return this.env.trailingSlash.withValue(true, fn); -}; - -Router.prototype._notfoundRoute = function(context) { - this._current = { - path: context.path, - context: context, - params: [], - queryParams: {}, - }; - - // XXX this.notfound kept for backwards compatibility - this.notFound = this.notFound || this.notfound; - if(!this.notFound) { - console.error("There is no route for the path:", context.path); - return; - } - - this._current.route = new Route(this, "*", this.notFound); - this._invalidateTracker(); -}; - -Router.prototype.initialize = function(options) { - options = options || {}; - - if(this._initialized) { - throw new Error("FlowRouter is already initialized"); - } - - var self = this; - this._updateCallbacks(); - - // Implementing idempotent routing - // by overriding page.js`s "show" method. - // Why? - // It is impossible to bypass exit triggers, - // because they execute before the handler and - // can not know what the next path is, inside exit trigger. - // - // we need override both show, replace to make this work - // since we use redirect when we are talking about withReplaceState - _.each(['show', 'replace'], function(fnName) { - var original = self._page[fnName]; - self._page[fnName] = function(path, state, dispatch, push) { - var reload = self.env.reload.get(); - if (!reload && self._current.path === path) { - return; - } - - original.call(this, path, state, dispatch, push); - }; - }); - - // this is very ugly part of pagejs and it does decoding few times - // in unpredicatable manner. See #168 - // this is the default behaviour and we need keep it like that - // we are doing a hack. see .path() - this._page.base(this._basePath); - this._page({ - decodeURLComponents: true, - hashbang: !!options.hashbang - }); - - this._initialized = true; -}; - -Router.prototype._buildTracker = function() { - var self = this; - - // main autorun function - var tracker = Tracker.autorun(function () { - if(!self._current || !self._current.route) { - return; - } - - // see the definition of `this._processingContexts` - var currentContext = self._current; - var route = currentContext.route; - var path = currentContext.path; - - if(self.safeToRun === 0) { - var message = - "You can't use reactive data sources like Session" + - " inside the `.subscriptions` method!"; - throw new Error(message); - } - - // We need to run subscriptions inside a Tracker - // to stop subs when switching between routes - // But we don't need to run this tracker with - // other reactive changes inside the .subscription method - // We tackle this with the `safeToRun` variable - self._globalRoute.clearSubscriptions(); - self.subscriptions.call(self._globalRoute, path); - route.callSubscriptions(currentContext); - - // otherwise, computations inside action will trigger to re-run - // this computation. which we do not need. - Tracker.nonreactive(function() { - var isRouteChange = currentContext.oldRoute !== currentContext.route; - var isFirstRoute = !currentContext.oldRoute; - // first route is not a route change - if(isFirstRoute) { - isRouteChange = false; - } - - // Clear oldRouteChain just before calling the action - // We still need to get a copy of the oldestRoute first - // It's very important to get the oldest route and registerRouteClose() it - // See: https://github.com/kadirahq/flow-router/issues/314 - var oldestRoute = self._oldRouteChain[0]; - self._oldRouteChain = []; - - currentContext.route.registerRouteChange(currentContext, isRouteChange); - route.callAction(currentContext); - - Tracker.afterFlush(function() { - self._onEveryPath.changed(); - if(isRouteChange) { - // We need to trigger that route (definition itself) has changed. - // So, we need to re-run all the register callbacks to current route - // This is pretty important, otherwise tracker - // can't identify new route's items - - // We also need to afterFlush, otherwise this will re-run - // helpers on templates which are marked for destroying - if(oldestRoute) { - oldestRoute.registerRouteClose(); - } - } - }); - }); - - self.safeToRun--; - }); - - return tracker; -}; - -Router.prototype._invalidateTracker = function() { - var self = this; - this.safeToRun++; - this._tracker.invalidate(); - // After the invalidation we need to flush to make changes imediately - // otherwise, we have face some issues context mix-maches and so on. - // But there are some cases we can't flush. So we need to ready for that. - - // we clearly know, we can't flush inside an autorun - // this may leads some issues on flow-routing - // we may need to do some warning - if(!Tracker.currentComputation) { - // Still there are some cases where we can't flush - // eg:- when there is a flush currently - // But we've no public API or hacks to get that state - // So, this is the only solution - try { - Tracker.flush(); - } catch(ex) { - // only handling "while flushing" errors - if(!/Tracker\.flush while flushing/.test(ex.message)) { - return; - } - - // XXX: fix this with a proper solution by removing subscription mgt. - // from the router. Then we don't need to run invalidate using a tracker - - // this happens when we are trying to invoke a route change - // with inside a route chnage. (eg:- Template.onCreated) - // Since we use page.js and tracker, we don't have much control - // over this process. - // only solution is to defer route execution. - - // It's possible to have more than one path want to defer - // But, we only need to pick the last one. - // self._nextPath = self._current.path; - Meteor.defer(function() { - var path = self._nextPath; - if(!path) { - return; - } - - delete self._nextPath; - self.env.reload.withValue(true, function() { - self.go(path); - }); - }); - } - } -}; - -Router.prototype._updateCallbacks = function () { - var self = this; - - self._page.callbacks = []; - self._page.exits = []; - - _.each(self._routes, function(route) { - self._page(route.pathDef, route._actionHandle); - self._page.exit(route.pathDef, route._exitHandle); - }); - - self._page("*", function(context) { - self._notfoundRoute(context); - }); -}; - -Router.prototype._initTriggersAPI = function() { - var self = this; - this.triggers = { - enter: function(triggers, filter) { - triggers = Triggers.applyFilters(triggers, filter); - if(triggers.length) { - self._triggersEnter = self._triggersEnter.concat(triggers); - } - }, - - exit: function(triggers, filter) { - triggers = Triggers.applyFilters(triggers, filter); - if(triggers.length) { - self._triggersExit = self._triggersExit.concat(triggers); - } - } - }; -}; - -Router.prototype.wait = function() { - if(this._initialized) { - throw new Error("can't wait after FlowRouter has been initialized"); - } - - this._askedToWait = true; -}; - -Router.prototype.onRouteRegister = function(cb) { - this._onRouteCallbacks.push(cb); -}; - -Router.prototype._triggerRouteRegister = function(currentRoute) { - // We should only need to send a safe set of fields on the route - // object. - // This is not to hide what's inside the route object, but to show - // these are the public APIs - var routePublicApi = _.pick(currentRoute, 'name', 'pathDef', 'path'); - var omittingOptionFields = [ - 'triggersEnter', 'triggersExit', 'action', 'subscriptions', 'name' - ]; - routePublicApi.options = _.omit(currentRoute.options, omittingOptionFields); - - _.each(this._onRouteCallbacks, function(cb) { - cb(routePublicApi); - }); -}; - -Router.prototype._page = page; -Router.prototype._qs = qs; diff --git a/packages/kadira-flow-router/client/triggers.js b/packages/kadira-flow-router/client/triggers.js deleted file mode 100644 index b1ae7197e..000000000 --- a/packages/kadira-flow-router/client/triggers.js +++ /dev/null @@ -1,116 +0,0 @@ -// a set of utility functions for triggers - -Triggers = {}; - -// Apply filters for a set of triggers -// @triggers - a set of triggers -// @filter - filter with array fileds with `only` and `except` -// support only either `only` or `except`, but not both -Triggers.applyFilters = function(triggers, filter) { - if(!(triggers instanceof Array)) { - triggers = [triggers]; - } - - if(!filter) { - return triggers; - } - - if(filter.only && filter.except) { - throw new Error("Triggers don't support only and except filters at once"); - } - - if(filter.only && !(filter.only instanceof Array)) { - throw new Error("only filters needs to be an array"); - } - - if(filter.except && !(filter.except instanceof Array)) { - throw new Error("except filters needs to be an array"); - } - - if(filter.only) { - return Triggers.createRouteBoundTriggers(triggers, filter.only); - } - - if(filter.except) { - return Triggers.createRouteBoundTriggers(triggers, filter.except, true); - } - - throw new Error("Provided a filter but not supported"); -}; - -// create triggers by bounding them to a set of route names -// @triggers - a set of triggers -// @names - list of route names to be bound (trigger runs only for these names) -// @negate - negate the result (triggers won't run for above names) -Triggers.createRouteBoundTriggers = function(triggers, names, negate) { - var namesMap = {}; - _.each(names, function(name) { - namesMap[name] = true; - }); - - var filteredTriggers = _.map(triggers, function(originalTrigger) { - var modifiedTrigger = function(context, next) { - var routeName = context.route.name; - var matched = (namesMap[routeName])? 1: -1; - matched = (negate)? matched * -1 : matched; - - if(matched === 1) { - originalTrigger(context, next); - } - }; - return modifiedTrigger; - }); - - return filteredTriggers; -}; - -// run triggers and abort if redirected or callback stopped -// @triggers - a set of triggers -// @context - context we need to pass (it must have the route) -// @redirectFn - function which used to redirect -// @after - called after if only all the triggers runs -Triggers.runTriggers = function(triggers, context, redirectFn, after) { - var abort = false; - var inCurrentLoop = true; - var alreadyRedirected = false; - - for(var lc=0; lc 0)? firstRegexpChar: undefined); - // remove +?* - key = key.replace(/[\+\*\?]+/g, ""); - - return fields[key] || ""; - }); - - path = path.replace(/\/\/+/g, "/"); // Replace multiple slashes with single slash - - // remove trailing slash - // but keep the root slash if it's the only one - path = path.match(/^\/{1}$/) ? path: path.replace(/\/$/, ""); - - var strQueryParams = Qs.stringify(queryParams || {}); - if(strQueryParams) { - path += "?" + strQueryParams; - } - - return path; -}; - -Router.prototype.onRouteRegister = function(cb) { - this._onRouteCallbacks.push(cb); -}; - -Router.prototype._triggerRouteRegister = function(currentRoute) { - // We should only need to send a safe set of fields on the route - // object. - // This is not to hide what's inside the route object, but to show - // these are the public APIs - var routePublicApi = _.pick(currentRoute, 'name', 'pathDef', 'path'); - var omittingOptionFields = [ - 'triggersEnter', 'triggersExit', 'action', 'subscriptions', 'name' - ]; - routePublicApi.options = _.omit(currentRoute.options, omittingOptionFields); - - _.each(this._onRouteCallbacks, function(cb) { - cb(routePublicApi); - }); -}; - - -Router.prototype.go = function() { - // client only -}; - - -Router.prototype.current = function() { - // client only -}; - - -Router.prototype.triggers = { - enter: function() { - // client only - }, - exit: function() { - // client only - } -}; - -Router.prototype.middleware = function() { - // client only -}; - - -Router.prototype.getState = function() { - // client only -}; - - -Router.prototype.getAllStates = function() { - // client only -}; - - -Router.prototype.setState = function() { - // client only -}; - - -Router.prototype.removeState = function() { - // client only -}; - - -Router.prototype.clearStates = function() { - // client only -}; - - -Router.prototype.ready = function() { - // client only -}; - - -Router.prototype.initialize = function() { - // client only -}; - -Router.prototype.wait = function() { - // client only -}; diff --git a/packages/kadira-flow-router/test/client/_helpers.js b/packages/kadira-flow-router/test/client/_helpers.js deleted file mode 100644 index 94376f001..000000000 --- a/packages/kadira-flow-router/test/client/_helpers.js +++ /dev/null @@ -1,10 +0,0 @@ -GetSub = function (name) { - for(var id in Meteor.connection._subscriptions) { - var sub = Meteor.connection._subscriptions[id]; - if(name === sub.name) { - return sub; - } - } -}; - -FlowRouter.route('/'); diff --git a/packages/kadira-flow-router/test/client/group.spec.js b/packages/kadira-flow-router/test/client/group.spec.js deleted file mode 100644 index 06e793ba9..000000000 --- a/packages/kadira-flow-router/test/client/group.spec.js +++ /dev/null @@ -1,113 +0,0 @@ -Tinytest.add('Client - Group - validate path definition', function (test, next) { - // path & prefix must start with '/' - test.throws(function() { - new Group(null, {prefix: Random.id()}); - }); - - var group = FlowRouter.group({prefix: '/' + Random.id()}); - - test.throws(function() { - group.route(Random.id()); - }); -}); - -Tinytest.addAsync('Client - Group - define and go to route with prefix', function (test, next) { - var prefix = Random.id(); - var rand = Random.id(); - var rendered = 0; - - var group = FlowRouter.group({prefix: '/' + prefix}); - - group.route('/' + rand, { - action: function(_params) { - rendered++; - } - }); - - FlowRouter.go('/' + prefix + '/' + rand); - - setTimeout(function() { - test.equal(rendered, 1); - setTimeout(next, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Group - define and go to route without prefix', function (test, next) { - var rand = Random.id(); - var rendered = 0; - - var group = FlowRouter.group(); - - group.route('/' + rand, { - action: function(_params) { - rendered++; - } - }); - - FlowRouter.go('/' + rand); - - setTimeout(function() { - test.equal(rendered, 1); - setTimeout(next, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Group - subscribe', function (test, next) { - var rand = Random.id(); - - var group = FlowRouter.group({ - subscriptions: function (params) { - this.register('baz', Meteor.subscribe('baz')); - } - }); - - group.route('/' + rand); - - FlowRouter.go('/' + rand); - setTimeout(function() { - test.isTrue(!!GetSub('baz')); - next(); - }, 100); -}); - - -Tinytest.addAsync('Client - Group - set and retrieve group name', function (test, next) { - var rand = Random.id(); - var name = Random.id(); - - var group = FlowRouter.group({ - name: name - }); - - group.route('/' + rand); - - FlowRouter.go('/' + rand); - setTimeout(function() { - test.isTrue(FlowRouter.current().route.group.name === name); - next(); - }, 100); -}); - -Tinytest.add('Client - Group - expose group options on a route', function (test) { - var pathDef = "/" + Random.id(); - var name = Random.id(); - var groupName = Random.id(); - var data = {aa: 10}; - var layout = 'blah'; - - var group = FlowRouter.group({ - name: groupName, - prefix: '/admin', - layout: layout, - someData: data - }); - - group.route(pathDef, { - name: name - }); - - var route = FlowRouter._routesMap[name]; - - test.equal(route.group.options.someData, data); - test.equal(route.group.options.layout, layout); -}); diff --git a/packages/kadira-flow-router/test/client/loader.spec.js b/packages/kadira-flow-router/test/client/loader.spec.js deleted file mode 100644 index 091c2e021..000000000 --- a/packages/kadira-flow-router/test/client/loader.spec.js +++ /dev/null @@ -1,17 +0,0 @@ -Router = FlowRouter.Router; - - -Tinytest.add('Client - import page.js', function (test) { - test.isTrue(!!Router.prototype._page); - test.isFalse(!!window.page); -}); - - -Tinytest.add('Client - import query.js', function (test) { - test.isTrue(!!Router.prototype._qs); -}); - - -Tinytest.add('Client - create FlowRouter', function (test) { - test.isTrue(!!FlowRouter); -}); diff --git a/packages/kadira-flow-router/test/client/route.reactivity.spec.js b/packages/kadira-flow-router/test/client/route.reactivity.spec.js deleted file mode 100644 index c6c441839..000000000 --- a/packages/kadira-flow-router/test/client/route.reactivity.spec.js +++ /dev/null @@ -1,158 +0,0 @@ -Route = FlowRouter.Route; - - -Tinytest.addAsync('Client - Route - Reactivity - getParam', function (test, done) { - var r = new Route(); - Tracker.autorun(function(c) { - var param = r.getParam("id"); - if(param) { - test.equal(param, "hello"); - c.stop(); - Meteor.defer(done); - } - }); - - setTimeout(function() { - var context = { - params: {id: "hello"}, - queryParams: {} - }; - r.registerRouteChange(context); - }, 10); -}); - -Tinytest.addAsync('Client - Route - Reactivity - getParam on route close', function (test, done) { - var r = new Route(); - var closeTriggered = false; - Tracker.autorun(function(c) { - var param = r.getParam("id"); - if(closeTriggered) { - test.equal(param, undefined); - c.stop(); - Meteor.defer(done); - } - }); - - setTimeout(function() { - closeTriggered = true; - r.registerRouteClose(); - }, 10); -}); - -Tinytest.addAsync('Client - Route - Reactivity - getQueryParam', function (test, done) { - var r = new Route(); - Tracker.autorun(function(c) { - var param = r.getQueryParam("id"); - if(param) { - test.equal(param, "hello"); - c.stop(); - Meteor.defer(done); - } - }); - - setTimeout(function() { - var context = { - params: {}, - queryParams: {id: "hello"} - }; - r.registerRouteChange(context); - }, 10); -}); - -Tinytest.addAsync('Client - Route - Reactivity - getQueryParam on route close', function (test, done) { - var r = new Route(); - var closeTriggered = false; - Tracker.autorun(function(c) { - var param = r.getQueryParam("id"); - if(closeTriggered) { - test.equal(param, undefined); - c.stop(); - Meteor.defer(done); - } - }); - - setTimeout(function() { - closeTriggered = true; - r.registerRouteClose(); - }, 10); -}); - -Tinytest.addAsync('Client - Route - Reactivity - getRouteName rerun when route closed', function (test, done) { - var r = new Route(); - r.name = "my-route"; - var closeTriggered = false; - - Tracker.autorun(function(c) { - var name = r.getRouteName(); - test.equal(name, r.name); - - if(closeTriggered) { - c.stop(); - Meteor.defer(done); - } - }); - - setTimeout(function() { - closeTriggered = true; - r.registerRouteClose(); - }, 10); -}); - -Tinytest.addAsync('Client - Route - Reactivity - watchPathChange when routeChange', function (test, done) { - var r = new Route(); - var pathChangeCounts = 0; - - var c = Tracker.autorun(function() { - r.watchPathChange(); - pathChangeCounts++; - }); - - var context = { - params: {}, - queryParams: {} - }; - - setTimeout(function() { - r.registerRouteChange(context); - setTimeout(checkAfterNormalRouteChange, 50); - }, 10); - - function checkAfterNormalRouteChange() { - test.equal(pathChangeCounts, 2); - var lastRouteChange = true; - r.registerRouteChange(context, lastRouteChange); - setTimeout(checkAfterLastRouteChange, 10); - } - - function checkAfterLastRouteChange() { - test.equal(pathChangeCounts, 2); - c.stop(); - Meteor.defer(done); - } -}); - -Tinytest.addAsync('Client - Route - Reactivity - watchPathChange when routeClose', function (test, done) { - var r = new Route(); - var pathChangeCounts = 0; - - var c = Tracker.autorun(function() { - r.watchPathChange(); - pathChangeCounts++; - }); - - var context = { - params: {}, - queryParams: {} - }; - - setTimeout(function() { - r.registerRouteClose(); - setTimeout(checkAfterRouteClose, 10); - }, 10); - - function checkAfterRouteClose() { - test.equal(pathChangeCounts, 2); - c.stop(); - Meteor.defer(done); - } -}); \ No newline at end of file diff --git a/packages/kadira-flow-router/test/client/router.core.spec.js b/packages/kadira-flow-router/test/client/router.core.spec.js deleted file mode 100644 index 160c9112e..000000000 --- a/packages/kadira-flow-router/test/client/router.core.spec.js +++ /dev/null @@ -1,632 +0,0 @@ -Router = FlowRouter.Router; - -Tinytest.addAsync('Client - Router - define and go to route', function (test, next) { - var rand = Random.id(); - var rendered = 0; - - FlowRouter.route('/' + rand, { - action: function(_params) { - rendered++; - } - }); - - FlowRouter.go('/' + rand); - - setTimeout(function() { - test.equal(rendered, 1); - setTimeout(next, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Router - define and go to route with fields', -function (test, next) { - var rand = Random.id(); - var pathDef = "/" + rand + "/:key"; - var rendered = 0; - - FlowRouter.route(pathDef, { - action: function(params) { - test.equal(params.key, "abc +@%"); - rendered++; - } - }); - - FlowRouter.go(pathDef, {key: "abc +@%"}); - - setTimeout(function() { - test.equal(rendered, 1); - setTimeout(next, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Router - parse params and query', function (test, next) { - var rand = Random.id(); - var rendered = 0; - var params = null; - - FlowRouter.route('/' + rand + '/:foo', { - action: function(_params) { - rendered++; - params = _params; - } - }); - - FlowRouter.go('/' + rand + '/bar'); - - setTimeout(function() { - test.equal(rendered, 1); - test.equal(params.foo, 'bar'); - setTimeout(next, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Router - redirect using FlowRouter.go', function (test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - var paths = ['/' + rand2, '/' + rand]; - var done = false; - - FlowRouter.route(paths[0], { - action: function(_params) { - log.push(1); - FlowRouter.go(paths[1]); - } - }); - - FlowRouter.route(paths[1], { - action: function(_params) { - log.push(2); - } - }); - - FlowRouter.go(paths[0]); - - setTimeout(function() { - test.equal(log, [1, 2]); - done = true; - next(); - }, 100); -}); - -Tinytest.addAsync('Client - Router - get current route path', function (test, next) { - var value = Random.id(); - var randomValue = Random.id(); - var pathDef = "/" + randomValue + '/:_id'; - var path = "/" + randomValue + "/" + value; - - var detectedValue = null; - - FlowRouter.route(pathDef, { - action: function(params) { - detectedValue = params._id; - } - }); - - FlowRouter.go(path); - - Meteor.setTimeout(function() { - test.equal(detectedValue, value); - test.equal(FlowRouter.current().path, path); - next(); - }, 50); -}); - -Tinytest.addAsync('Client - Router - subscribe to global subs', function (test, next) { - var rand = Random.id(); - FlowRouter.route('/' + rand); - - FlowRouter.subscriptions = function (path) { - test.equal(path, '/' + rand); - this.register('baz', Meteor.subscribe('baz')); - }; - - FlowRouter.go('/' + rand); - setTimeout(function() { - test.isTrue(!!GetSub('baz')); - FlowRouter.subscriptions = Function.prototype; - next(); - }, 100); -}); - -Tinytest.addAsync('Client - Router - setParams - generic', function (test, done) { - var randomKey = Random.id(); - var pathDef = "/" + randomKey + "/:cat/:id"; - var paramsList = []; - FlowRouter.route(pathDef, { - action: function(params) { - paramsList.push(params); - } - }); - - FlowRouter.go(pathDef, {cat: "meteor", id: "200"}); - setTimeout(function() { - // return done(); - var success = FlowRouter.setParams({id: "700"}); - test.isTrue(success); - setTimeout(validate, 50); - }, 50); - - function validate() { - test.equal(paramsList.length, 2); - test.equal(_.pick(paramsList[0], "id", "cat"), {cat: "meteor", id: "200"}); - test.equal(_.pick(paramsList[1], "id", "cat"), {cat: "meteor", id: "700"}); - done(); - } -}); - -Tinytest.addAsync('Client - Router - setParams - preserve query strings', function (test, done) { - var randomKey = Random.id(); - var pathDef = "/" + randomKey + "/:cat/:id"; - var paramsList = []; - var queryParamsList = []; - - FlowRouter.route(pathDef, { - action: function(params, queryParams) { - paramsList.push(params); - queryParamsList.push(queryParams); - } - }); - - FlowRouter.go(pathDef, {cat: "meteor", id: "200 +% / ad"}, {aa: "20 +%"}); - setTimeout(function() { - // return done(); - var success = FlowRouter.setParams({id: "700 +% / ad"}); - test.isTrue(success); - setTimeout(validate, 50); - }, 50); - - function validate() { - test.equal(paramsList.length, 2); - test.equal(queryParamsList.length, 2); - - test.equal(_.pick(paramsList[0], "id", "cat"), {cat: "meteor", id: "200 +% / ad"}); - test.equal(_.pick(paramsList[1], "id", "cat"), {cat: "meteor", id: "700 +% / ad"}); - test.equal(queryParamsList, [{aa: "20 +%"}, {aa: "20 +%"}]); - done(); - } -}); - -Tinytest.add('Client - Router - setParams - no route selected', function (test) { - var originalRoute = FlowRouter._current.route; - FlowRouter._current.route = undefined; - var success = FlowRouter.setParams({id: "800"}); - test.isFalse(success); - FlowRouter._current.route = originalRoute; -}); - -Tinytest.addAsync('Client - Router - setQueryParams - using check', function (test, done) { - var randomKey = Random.id(); - var pathDef = "/" + randomKey + ""; - var queryParamsList = []; - FlowRouter.route(pathDef, { - action: function(params, queryParams) { - queryParamsList.push(queryParams); - } - }); - - FlowRouter.go(pathDef, {}, {cat: "meteor", id: "200"}); - setTimeout(function() { - check(FlowRouter.current().queryParams, {cat: String, id: String}); - done(); - }, 50); -}); - -Tinytest.addAsync('Client - Router - setQueryParams - generic', function (test, done) { - var randomKey = Random.id(); - var pathDef = "/" + randomKey + ""; - var queryParamsList = []; - FlowRouter.route(pathDef, { - action: function(params, queryParams) { - queryParamsList.push(queryParams); - } - }); - - FlowRouter.go(pathDef, {}, {cat: "meteor", id: "200"}); - setTimeout(function() { - // return done(); - var success = FlowRouter.setQueryParams({id: "700"}); - test.isTrue(success); - setTimeout(validate, 50); - }, 50); - - function validate() { - test.equal(queryParamsList.length, 2); - test.equal(_.pick(queryParamsList[0], "id", "cat"), {cat: "meteor", id: "200"}); - test.equal(_.pick(queryParamsList[1], "id", "cat"), {cat: "meteor", id: "700"}); - done(); - } -}); - -Tinytest.addAsync('Client - Router - setQueryParams - remove query param null', function (test, done) { - var randomKey = Random.id(); - var pathDef = "/" + randomKey + ""; - var queryParamsList = []; - FlowRouter.route(pathDef, { - action: function(params, queryParams) { - queryParamsList.push(queryParams); - } - }); - - FlowRouter.go(pathDef, {}, {cat: "meteor", id: "200"}); - setTimeout(function() { - var success = FlowRouter.setQueryParams({id: "700", cat: null}); - test.isTrue(success); - setTimeout(validate, 50); - }, 50); - - function validate() { - test.equal(queryParamsList.length, 2); - test.equal(_.pick(queryParamsList[0], "id", "cat"), {cat: "meteor", id: "200"}); - test.equal(queryParamsList[1], {id: "700"}); - done(); - } -}); - -Tinytest.addAsync('Client - Router - setQueryParams - remove query param undefined', function (test, done) { - var randomKey = Random.id(); - var pathDef = "/" + randomKey + ""; - var queryParamsList = []; - FlowRouter.route(pathDef, { - action: function(params, queryParams) { - queryParamsList.push(queryParams); - } - }); - - FlowRouter.go(pathDef, {}, {cat: "meteor", id: "200"}); - setTimeout(function() { - var success = FlowRouter.setQueryParams({id: "700", cat: undefined}); - test.isTrue(success); - setTimeout(validate, 50); - }, 50); - - function validate() { - test.equal(queryParamsList.length, 2); - test.equal(_.pick(queryParamsList[0], "id", "cat"), {cat: "meteor", id: "200"}); - test.equal(queryParamsList[1], {id: "700"}); - done(); - } -}); - -Tinytest.addAsync('Client - Router - setQueryParams - preserve params', function (test, done) { - var randomKey = Random.id(); - var pathDef = "/" + randomKey + "/:abc"; - var queryParamsList = []; - var paramsList = []; - FlowRouter.route(pathDef, { - action: function(params, queryParams) { - paramsList.push(params); - queryParamsList.push(queryParams); - } - }); - - FlowRouter.go(pathDef, {abc: "20"}, {cat: "meteor", id: "200"}); - setTimeout(function() { - // return done(); - var success = FlowRouter.setQueryParams({id: "700"}); - test.isTrue(success); - setTimeout(validate, 50); - }, 50); - - function validate() { - test.equal(queryParamsList.length, 2); - test.equal(queryParamsList, [ - {cat: "meteor", id: "200"}, {cat: "meteor", id: "700"} - ]); - - test.equal(paramsList.length, 2); - test.equal(_.pick(paramsList[0], "abc"), {abc: "20"}); - test.equal(_.pick(paramsList[1], "abc"), {abc: "20"}); - done(); - } -}); - -Tinytest.add('Client - Router - setQueryParams - no route selected', function (test) { - var originalRoute = FlowRouter._current.route; - FlowRouter._current.route = undefined; - var success = FlowRouter.setQueryParams({id: "800"}); - test.isFalse(success); - FlowRouter._current.route = originalRoute; -}); - -Tinytest.addAsync('Client - Router - notFound', function (test, done) { - var data = []; - FlowRouter.notFound = { - subscriptions: function() { - data.push("subscriptions"); - }, - action: function() { - data.push("action"); - } - }; - - FlowRouter.go("/" + Random.id()); - setTimeout(function() { - test.equal(data, ["subscriptions", "action"]); - done(); - }, 50); -}); - -Tinytest.addAsync('Client - Router - withReplaceState - enabled', -function (test, done) { - var pathDef = "/" + Random.id() + "/:id"; - var originalRedirect = FlowRouter._page.replace; - var callCount = 0; - FlowRouter._page.replace = function(path) { - callCount++; - originalRedirect.call(FlowRouter._page, path); - }; - - FlowRouter.route(pathDef, { - name: name, - action: function(params) { - test.equal(params.id, "awesome"); - test.equal(callCount, 1); - FlowRouter._page.replace = originalRedirect; - // We don't use Meteor.defer here since it carries - // Meteor.Environment vars too - // Which breaks our test below - setTimeout(done, 0); - } - }); - - FlowRouter.withReplaceState(function() { - FlowRouter.go(pathDef, {id: "awesome"}); - }); -}); - -Tinytest.addAsync('Client - Router - withReplaceState - disabled', -function (test, done) { - var pathDef = "/" + Random.id() + "/:id"; - var originalRedirect = FlowRouter._page.replace; - var callCount = 0; - FlowRouter._page.replace = function(path) { - callCount++; - originalRedirect.call(FlowRouter._page, path); - }; - - FlowRouter.route(pathDef, { - name: name, - action: function(params) { - test.equal(params.id, "awesome"); - test.equal(callCount, 0); - FlowRouter._page.replace = originalRedirect; - Meteor.defer(done); - } - }); - - FlowRouter.go(pathDef, {id: "awesome"}); -}); - -Tinytest.addAsync('Client - Router - withTrailingSlash - enabled', function (test, next) { - var rand = Random.id(); - var rendered = 0; - - FlowRouter.route('/' + rand, { - action: function(_params) { - rendered++; - } - }); - - FlowRouter.withTrailingSlash(function() { - FlowRouter.go('/' + rand); - }); - - setTimeout(function() { - test.equal(rendered, 1); - test.equal(_.last(location.href), '/'); - setTimeout(next, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Router - idempotent routing - action', -function (test, done) { - var rand = Random.id(); - var pathDef = "/" + rand; - var rendered = 0; - - FlowRouter.route(pathDef, { - action: function(params) { - rendered++; - } - }); - - FlowRouter.go(pathDef); - - Meteor.defer(function() { - FlowRouter.go(pathDef); - - Meteor.defer(function() { - test.equal(rendered, 1); - done(); - }); - }); -}); - -Tinytest.addAsync('Client - Router - idempotent routing - triggers', -function (test, next) { - var rand = Random.id(); - var pathDef = "/" + rand; - var runnedTriggers = 0; - var done = false; - - var triggerFns = [function(params) { - if (done) return; - - runnedTriggers++; - }]; - - FlowRouter.triggers.enter(triggerFns); - - FlowRouter.route(pathDef, { - triggersEnter: triggerFns, - triggersExit: triggerFns - }); - - FlowRouter.go(pathDef); - - FlowRouter.triggers.exit(triggerFns); - - Meteor.defer(function() { - FlowRouter.go(pathDef); - - Meteor.defer(function() { - test.equal(runnedTriggers, 2); - done = true; - next(); - }); - }); -}); - -Tinytest.addAsync('Client - Router - reload - action', -function (test, done) { - var rand = Random.id(); - var pathDef = "/" + rand; - var rendered = 0; - - FlowRouter.route(pathDef, { - action: function(params) { - rendered++; - } - }); - - FlowRouter.go(pathDef); - - Meteor.defer(function() { - FlowRouter.reload(); - - Meteor.defer(function() { - test.equal(rendered, 2); - done(); - }); - }); -}); - -Tinytest.addAsync('Client - Router - reload - triggers', -function (test, next) { - var rand = Random.id(); - var pathDef = "/" + rand; - var runnedTriggers = 0; - var done = false; - - var triggerFns = [function(params) { - if (done) return; - - runnedTriggers++; - }]; - - FlowRouter.triggers.enter(triggerFns); - - FlowRouter.route(pathDef, { - triggersEnter: triggerFns, - triggersExit: triggerFns - }); - - FlowRouter.go(pathDef); - - FlowRouter.triggers.exit(triggerFns); - - Meteor.defer(function() { - FlowRouter.reload(); - - Meteor.defer(function() { - test.equal(runnedTriggers, 6); - done = true; - next(); - }); - }); -}); - -Tinytest.addAsync( -'Client - Router - wait - before initialize', -function(test, done) { - FlowRouter._initialized = false; - FlowRouter.wait(); - test.equal(FlowRouter._askedToWait, true); - - FlowRouter._initialized = true; - FlowRouter._askedToWait = false; - done(); -}); - -Tinytest.addAsync( -'Client - Router - wait - after initialized', -function(test, done) { - try { - FlowRouter.wait(); - } catch(ex) { - test.isTrue(/can't wait/.test(ex.message)); - done(); - } -}); - -Tinytest.addAsync( -'Client - Router - initialize - after initialized', -function(test, done) { - try { - FlowRouter.initialize(); - } catch(ex) { - test.isTrue(/already initialized/.test(ex.message)); - done(); - } -}); - -Tinytest.addAsync( -'Client - Router - base path - url updated', -function(test, done) { - var simulatedBasePath = '/flow'; - var rand = Random.id(); - FlowRouter.route('/' + rand, { action: function() {} }); - - setBasePath(simulatedBasePath); - FlowRouter.go('/' + rand); - setTimeout(function() { - test.equal(location.pathname, simulatedBasePath + '/' + rand); - resetBasePath(); - done(); - }, 100); -}); - -Tinytest.addAsync( -'Client - Router - base path - route action called', -function(test, done) { - var simulatedBasePath = '/flow'; - var rand = Random.id(); - FlowRouter.route('/' + rand, { - action: function() { - resetBasePath(); - done(); - } - }); - - setBasePath(simulatedBasePath); - FlowRouter.go('/' + rand); -}); - -Tinytest.add( -'Client - Router - base path - path generation', -function(test, done) { - _.each(['/flow', '/flow/', 'flow/', 'flow'], function(simulatedBasePath) { - var rand = Random.id(); - setBasePath(simulatedBasePath); - test.equal(FlowRouter.path('/' + rand), '/flow/' + rand); - }); - resetBasePath(); -}); - - -function setBasePath(path) { - FlowRouter._initialized = false; - FlowRouter._basePath = path; - FlowRouter.initialize(); -} - -var defaultBasePath = FlowRouter._basePath; -function resetBasePath() { - setBasePath(defaultBasePath); -} - -function bind(obj, method) { - return function() { - obj[method].apply(obj, arguments); - }; -} diff --git a/packages/kadira-flow-router/test/client/router.reactivity.spec.js b/packages/kadira-flow-router/test/client/router.reactivity.spec.js deleted file mode 100644 index b06deedae..000000000 --- a/packages/kadira-flow-router/test/client/router.reactivity.spec.js +++ /dev/null @@ -1,208 +0,0 @@ -Tinytest.addAsync( -'Client - Router - Reactivity - detectChange only once', -function (test, done) { - var route = "/" + Random.id(); - var name = Random.id(); - FlowRouter.route(route, {name: name}); - - var ranCount = 0; - var pickedId = null; - var c = Tracker.autorun(function() { - ranCount++; - pickedId = FlowRouter.getQueryParam("id"); - if(pickedId) { - test.equal(pickedId, "hello"); - test.equal(ranCount, 2); - c.stop(); - Meteor.defer(done); - } - }); - - setTimeout(function() { - FlowRouter.go(name, {}, {id: "hello"}); - }, 2); -}); - -Tinytest.addAsync( -'Client - Router - Reactivity - detectChange in the action', -function (test, done) { - var route = "/" + Random.id(); - var name = Random.id(); - FlowRouter.route(route, { - name: name, - action: function() { - var id = FlowRouter.getQueryParam("id"); - test.equal(id, "hello"); - Meteor.defer(done); - } - }); - - setTimeout(function() { - FlowRouter.go(name, {}, {id: "hello"}); - }, 2); -}); - -Tinytest.addAsync( -'Client - Router - Reactivity - detect prev routeChange after new action', -function (test, done) { - var route1 = "/" + Random.id(); - var name1 = Random.id(); - var pickedName1 = null; - - var route2 = "/" + Random.id(); - var name2 = Random.id(); - var pickedName2 = Random.id(); - - FlowRouter.route(route1, { - name: name1, - action: function() { - Tracker.autorun(function(c) { - pickedName1 = FlowRouter.getRouteName(); - if(pickedName1 == name2) { - test.equal(pickedName1, pickedName2); - c.stop(); - Meteor.defer(done); - } - }); - } - }); - - FlowRouter.route(route2, { - name: name2, - action: function() { - pickedName2 = FlowRouter.getRouteName(); - test.equal(pickedName1, name1); - test.equal(pickedName2, name2); - } - }); - - FlowRouter.go(name1); - Meteor.setTimeout(function() { - FlowRouter.go(name2); - }, 10); -}); - -Tinytest.addAsync( -'Client - Router - Reactivity - defer watchPathChange until new route rendered', -function(test, done) { - var route1 = "/" + Random.id(); - var name1 = Random.id(); - var pickedName1 = null; - - var route2 = "/" + Random.id(); - var name2 = Random.id(); - var pickedName2 = Random.id(); - - FlowRouter.route(route1, { - name: name1, - action: function() { - Tracker.autorun(function(c) { - FlowRouter.watchPathChange(); - pickedName1 = FlowRouter.current().route.name; - if(pickedName1 == name2) { - test.equal(pickedName1, pickedName2); - c.stop(); - Meteor.defer(done); - } - }); - } - }); - - FlowRouter.route(route2, { - name: name2, - action: function() { - pickedName2 = FlowRouter.current().route.name; - test.equal(pickedName1, name1); - test.equal(pickedName2, name2); - } - }); - - FlowRouter.go(name1); - Meteor.setTimeout(function() { - FlowRouter.go(name2); - }, 10); -}); - -Tinytest.addAsync( -'Client - Router - Reactivity - reactive changes and trigger redirects', -function(test, done) { - var name1 = Random.id(); - var route1 = "/" + name1; - FlowRouter.route(route1, { - name: name1 - }); - - var name2 = Random.id(); - var route2 = "/" + name2; - FlowRouter.route(route2, { - name: name2, - triggersEnter: [function(context, redirect) { - redirect(name3); - }] - }); - - - var name3 = Random.id(); - var route3 = "/" + name3; - FlowRouter.route(route3, { - name: name3 - }); - - var routeNamesFired = []; - FlowRouter.go(name1); - - var c = null; - setTimeout(function() { - c = Tracker.autorun(function(c) { - routeNamesFired.push(FlowRouter.getRouteName()); - }); - FlowRouter.go(name2); - }, 50); - - setTimeout(function() { - c.stop(); - test.equal(routeNamesFired, [name1, name3]); - Meteor.defer(done); - }, 250); -}); - -Tinytest.addAsync( -'Client - Router - Reactivity - watchPathChange for every route change', -function(test, done) { - var route1 = "/" + Random.id(); - var name1 = Random.id(); - var pickedName1 = null; - - var route2 = "/" + Random.id(); - var name2 = Random.id(); - var pickedName2 = Random.id(); - - FlowRouter.route(route1, { - name: name1 - }); - - FlowRouter.route(route2, { - name: name2 - }); - - var ids = []; - var c = Tracker.autorun(function() { - FlowRouter.watchPathChange(); - ids.push(FlowRouter.current().queryParams['id']); - }); - - FlowRouter.go(name1, {}, {id: "one"}); - Meteor.setTimeout(function() { - FlowRouter.go(name1, {}, {id: "two"}); - }, 10); - - Meteor.setTimeout(function() { - FlowRouter.go(name2, {}, {id: "three"}); - }, 20); - - Meteor.setTimeout(function() { - test.equal(ids, [undefined, "one", "two", "three"]); - c.stop(); - done(); - }, 40); -}); \ No newline at end of file diff --git a/packages/kadira-flow-router/test/client/router.subs_ready.spec.js b/packages/kadira-flow-router/test/client/router.subs_ready.spec.js deleted file mode 100644 index 8a20077a1..000000000 --- a/packages/kadira-flow-router/test/client/router.subs_ready.spec.js +++ /dev/null @@ -1,225 +0,0 @@ -Tinytest.addAsync('Client - Router - subsReady - with no args - all subscriptions ready', function (test, next) { - var rand = Random.id(); - FlowRouter.route('/' + rand, { - subscriptions: function(params) { - this.register('bar', Meteor.subscribe('bar')); - this.register('foo', Meteor.subscribe('foo')); - } - }); - - FlowRouter.subscriptions = function () { - this.register('baz', Meteor.subscribe('baz')); - }; - - FlowRouter.go('/' + rand); - - Tracker.autorun(function(c) { - if(FlowRouter.subsReady()) { - FlowRouter.subscriptions = Function.prototype; - next(); - c.stop(); - } - }); -}); - -Tinytest.addAsync('Client - Router - subsReady - with no args - all subscriptions does not ready', function (test, next) { - var rand = Random.id(); - FlowRouter.route('/' + rand, { - subscriptions: function(params) { - this.register('fooNotReady', Meteor.subscribe('fooNotReady')); - } - }); - - FlowRouter.subscriptions = function () { - this.register('bazNotReady', Meteor.subscribe('bazNotReady')); - }; - - FlowRouter.go('/' + rand); - setTimeout(function() { - test.isTrue(!FlowRouter.subsReady()); - FlowRouter.subscriptions = Function.prototype; - next(); - }, 100); -}); - -Tinytest.addAsync('Client - Router - subsReady - with no args - global subscriptions does not ready', function (test, next) { - var rand = Random.id(); - FlowRouter.route('/' + rand, { - subscriptions: function(params) { - this.register('bar', Meteor.subscribe('bar')); - this.register('foo', Meteor.subscribe('foo')); - } - }); - - FlowRouter.subscriptions = function () { - this.register('bazNotReady', Meteor.subscribe('bazNotReady')); - }; - - FlowRouter.go('/' + rand); - setTimeout(function() { - test.isTrue(!FlowRouter.subsReady()); - FlowRouter.subscriptions = Function.prototype; - next(); - }, 100); -}); - -Tinytest.addAsync('Client - Router - subsReady - with no args - current subscriptions does not ready', function (test, next) { - var rand = Random.id(); - FlowRouter.route('/' + rand, { - subscriptions: function(params) { - this.register('bar', Meteor.subscribe('bar')); - this.register('fooNotReady', Meteor.subscribe('fooNotReady')); - } - }); - - FlowRouter.subscriptions = function () { - this.register('baz', Meteor.subscribe('baz')); - }; - - FlowRouter.go('/' + rand); - setTimeout(function() { - test.isTrue(!FlowRouter.subsReady()); - FlowRouter.subscriptions = Function.prototype; - next(); - }, 100); -}); - -Tinytest.addAsync('Client - Router - subsReady - with args - all subscriptions ready', function (test, next) { - var rand = Random.id(); - FlowRouter.route('/' + rand, { - subscriptions: function(params) { - this.register('bar', Meteor.subscribe('bar')); - this.register('foo', Meteor.subscribe('foo')); - } - }); - - FlowRouter.subscriptions = function () { - this.register('baz', Meteor.subscribe('baz')); - }; - - FlowRouter.go('/' + rand); - Tracker.autorun(function(c) { - if(FlowRouter.subsReady('foo', 'baz')) { - FlowRouter.subscriptions = Function.prototype; - next(); - c.stop(); - } - }); -}); - -Tinytest.addAsync('Client - Router - subsReady - with args - all subscriptions does not ready', function (test, next) { - var rand = Random.id(); - FlowRouter.route('/' + rand, { - subscriptions: function(params) { - this.register('fooNotReady', Meteor.subscribe('fooNotReady')); - } - }); - - FlowRouter.subscriptions = function () { - this.register('bazNotReady', Meteor.subscribe('bazNotReady')); - }; - - FlowRouter.go('/' + rand); - setTimeout(function() { - test.isTrue(!FlowRouter.subsReady('fooNotReady', 'bazNotReady')); - FlowRouter.subscriptions = Function.prototype; - next(); - }, 100); -}); - -Tinytest.addAsync('Client - Router - subsReady - with args - global subscriptions does not ready', function (test, next) { - var rand = Random.id(); - FlowRouter.route('/' + rand, { - subscriptions: function(params) { - this.register('bar', Meteor.subscribe('bar')); - this.register('foo', Meteor.subscribe('foo')); - } - }); - - FlowRouter.subscriptions = function () { - this.register('bazNotReady', Meteor.subscribe('bazNotReady')); - }; - - FlowRouter.go('/' + rand); - setTimeout(function() { - test.isTrue(!FlowRouter.subsReady('foo', 'bazNotReady')); - FlowRouter.subscriptions = Function.prototype; - next(); - }, 100); -}); - -Tinytest.addAsync('Client - Router - subsReady - with args - current subscriptions does not ready', function (test, next) { - var rand = Random.id(); - FlowRouter.route('/' + rand, { - subscriptions: function(params) { - this.register('bar', Meteor.subscribe('bar')); - this.register('fooNotReady', Meteor.subscribe('fooNotReady')); - } - }); - - FlowRouter.subscriptions = function () { - this.register('baz', Meteor.subscribe('baz')); - }; - - FlowRouter.go('/' + rand); - setTimeout(function() { - test.isTrue(!FlowRouter.subsReady('fooNotReady', 'baz')); - FlowRouter.subscriptions = Function.prototype; - next(); - }, 100); -}); - -Tinytest.addAsync('Client - Router - subsReady - with args - subscribe with wrong name', function (test, next) { - var rand = Random.id(); - FlowRouter.route('/' + rand, { - subscriptions: function(params) { - this.register('bar', Meteor.subscribe('bar')); - } - }); - - FlowRouter.subscriptions = function () { - this.register('baz', Meteor.subscribe('baz')); - }; - - FlowRouter.go('/' + rand); - setTimeout(function() { - test.isTrue(!FlowRouter.subsReady('baz', 'xxx', 'baz')); - FlowRouter.subscriptions = Function.prototype; - next(); - }, 100); -}); - -Tinytest.addAsync('Client - Router - subsReady - with args - same route two different subs', function (test, next) { - var rand = Random.id(); - var count = 0; - FlowRouter.route('/' + rand, { - subscriptions: function(params) { - if(++count == 1) { - this.register('not-exisitng', Meteor.subscribe('not-exisitng')); - } - } - }); - - FlowRouter.subscriptions = Function.prototype; - FlowRouter.go('/' + rand); - setTimeout(function() { - test.isFalse(FlowRouter.subsReady()); - FlowRouter.go('/' + rand, {}, {param: "111"}); - setTimeout(function() { - test.isTrue(FlowRouter.subsReady()); - next(); - }, 100) - }, 100); -}); - -Tinytest.addAsync('Client - Router - subsReady - no subscriptions - simple', function (test, next) { - var rand = Random.id(); - FlowRouter.route('/' + rand, {}); - FlowRouter.subscriptions = Function.prototype; - - FlowRouter.go('/' + rand); - setTimeout(function() { - test.isTrue(FlowRouter.subsReady()); - next(); - }, 100); -}); \ No newline at end of file diff --git a/packages/kadira-flow-router/test/client/trigger.spec.js b/packages/kadira-flow-router/test/client/trigger.spec.js deleted file mode 100644 index 319c6bd28..000000000 --- a/packages/kadira-flow-router/test/client/trigger.spec.js +++ /dev/null @@ -1,570 +0,0 @@ -Tinytest.addAsync('Client - Triggers - global enter triggers', function(test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - var paths = ['/' + rand2, '/' + rand]; - var done = false; - - FlowRouter.route('/' + rand, { - action: function(_params) { - log.push(1); - } - }); - - FlowRouter.route('/' + rand2, { - action: function(_params) { - log.push(2); - } - }); - - FlowRouter.triggers.enter([function(context) { - if(done) return; - test.equal(context.path, paths.pop()); - log.push(0); - }]); - - FlowRouter.go('/' + rand); - - setTimeout(function() { - FlowRouter.go('/' + rand2); - - setTimeout(function() { - test.equal(log, [0, 1, 0, 2]); - done = true; - setTimeout(next, 100); - }, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Triggers - global enter triggers with "only"', function (test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - var done = false; - - FlowRouter.route('/' + rand, { - action: function(_params) { - log.push(1); - } - }); - - FlowRouter.route('/' + rand2, { - name: 'foo', - action: function(_params) { - log.push(2); - } - }); - - FlowRouter.triggers.enter([function(context) { - if(done) return; - test.equal(context.path, '/' + rand2); - log.push(8); - }], {only: ['foo']}); - - FlowRouter.go('/' + rand); - - setTimeout(function() { - FlowRouter.go('/' + rand2); - - setTimeout(function() { - test.equal(log, [1, 8, 2]); - done = true; - setTimeout(next, 100); - }, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Triggers - global enter triggers with "except"', function (test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - var done = false; - - FlowRouter.route('/' + rand, { - action: function(_params) { - log.push(1); - } - }); - - FlowRouter.route('/' + rand2, { - name: 'foo', - action: function(_params) { - log.push(2); - } - }); - - FlowRouter.triggers.enter([function(context) { - if(done) return; - test.equal(context.path, '/' + rand); - log.push(8); - }], {except: ['foo']}); - - FlowRouter.go('/' + rand); - - setTimeout(function() { - FlowRouter.go('/' + rand2); - - setTimeout(function() { - test.equal(log, [8, 1, 2]); - done = true; - setTimeout(next, 100); - }, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Triggers - global exit triggers', function (test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - var done =false; - - FlowRouter.route('/' + rand, { - action: function(_params) { - log.push(1); - } - }); - - FlowRouter.route('/' + rand2, { - action: function(_params) { - log.push(2); - } - }); - - FlowRouter.go('/' + rand); - - FlowRouter.triggers.exit([function(context) { - if(done) return; - test.equal(context.path, '/' + rand); - log.push(0); - }]); - - setTimeout(function() { - FlowRouter.go('/' + rand2); - - setTimeout(function() { - test.equal(log, [1, 0, 2]); - done = true; - setTimeout(next, 100); - }, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Triggers - global exit triggers with "only"', function (test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - var done = false; - - FlowRouter.route('/' + rand, { - action: function(_params) { - log.push(1); - } - }); - - FlowRouter.route('/' + rand2, { - name: 'foo', - action: function(_params) { - log.push(2); - } - }); - - FlowRouter.triggers.exit([function(context) { - if(done) return; - test.equal(context.path, '/' + rand2); - log.push(8); - }], {only: ['foo']}); - - FlowRouter.go('/' + rand); - - setTimeout(function() { - FlowRouter.go('/' + rand2); - - setTimeout(function() { - FlowRouter.go('/' + rand); - - setTimeout(function() { - test.equal(log, [1, 2, 8, 1]); - done = true; - setTimeout(next, 100); - }, 100); - }, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Triggers - global exit triggers with "except"', function (test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - var done = false; - - FlowRouter.route('/' + rand, { - action: function(_params) { - log.push(1); - } - }); - - FlowRouter.route('/' + rand2, { - name: 'foo', - action: function(_params) { - log.push(2); - } - }); - - FlowRouter.go('/' + rand); - - FlowRouter.triggers.exit([function(context) { - if(done) return; - test.equal(context.path, '/' + rand); - log.push(9); - }], {except: ['foo']}); - - - setTimeout(function() { - FlowRouter.go('/' + rand2); - - setTimeout(function() { - FlowRouter.go('/' + rand); - - setTimeout(function() { - test.equal(log, [1, 9, 2, 1]); - done = true; - setTimeout(next, 100); - }, 100); - }, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Triggers - route enter triggers', function (test, next) { - var rand = Random.id(); - var log = []; - - var triggerFn = function (context) { - test.equal(context.path, '/' + rand); - log.push(5); - }; - - FlowRouter.route('/' + rand, { - triggersEnter: [triggerFn], - action: function(_params) { - log.push(1); - } - }); - - FlowRouter.go('/' + rand); - - setTimeout(function() { - test.equal(log, [5, 1]); - setTimeout(next, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Triggers - router exit triggers', function (test, next) { - var rand = Random.id(); - var log = []; - - var triggerFn = function (context) { - test.equal(context.path, '/' + rand); - log.push(6); - }; - - FlowRouter.route('/' + rand, { - triggersExit: [triggerFn], - action: function(_params) { - log.push(1); - } - }); - - FlowRouter.go('/' + rand); - - setTimeout(function() { - FlowRouter.go('/' + Random.id()); - - setTimeout(function() { - test.equal(log, [1, 6]); - setTimeout(next, 100); - }, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Triggers - group enter triggers', function (test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - var paths = ['/' + rand2, '/' + rand]; - - var triggerFn = function (context) { - test.equal(context.path, paths.pop()); - log.push(3); - }; - - var group = FlowRouter.group({ - triggersEnter: [triggerFn] - }); - - group.route('/' + rand, { - action: function(_params) { - log.push(1); - } - }); - - group.route('/' + rand2, { - action: function(_params) { - log.push(2); - } - }); - - FlowRouter.go('/' + rand); - - setTimeout(function() { - FlowRouter.go('/' + rand2); - - setTimeout(function() { - test.equal(log, [3, 1, 3, 2]); - setTimeout(next, 100); - }, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Triggers - group exit triggers', function (test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - - var triggerFn = function (context) { - log.push(4); - }; - - var group = FlowRouter.group({ - triggersExit: [triggerFn] - }); - - group.route('/' + rand, { - action: function(_params) { - log.push(1); - } - }); - - group.route('/' + rand2, { - action: function(_params) { - log.push(2); - } - }); - - FlowRouter.go('/' + rand); - - setTimeout(function() { - FlowRouter.go('/' + rand2); - - setTimeout(function() { - test.equal(log, [1, 4, 2]); - setTimeout(next, 100); - }, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Triggers - redirect from enter', function(test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - - FlowRouter.route('/' + rand, { - triggersEnter: [function(context, redirect) { - redirect("/" + rand2); - }, function() { - throw new Error("should not execute this trigger"); - }], - action: function(_params) { - log.push(1); - }, - name: rand - }); - - FlowRouter.route('/' + rand2, { - action: function(_params) { - log.push(2); - }, - name: rand2 - }); - - FlowRouter.go('/'); - FlowRouter.go('/' + rand); - - setTimeout(function() { - test.equal(log, [2]); - next(); - }, 300); -}); - -Tinytest.addAsync('Client - Triggers - redirect by routeName', function(test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - - FlowRouter.route('/' + rand, { - name: rand, - triggersEnter: [function(context, redirect) { - redirect(rand2, null, {aa: "bb"}); - }, function() { - throw new Error("should not execute this trigger"); - }], - action: function(_params) { - log.push(1); - }, - name: rand - }); - - FlowRouter.route('/' + rand2, { - name: rand2, - action: function(_params, queryParams) { - log.push(2); - test.equal(queryParams, {aa: "bb"}); - }, - name: rand2 - }); - - FlowRouter.go('/'); - FlowRouter.go('/' + rand); - - setTimeout(function() { - test.equal(log, [2]); - next(); - }, 300); -}); - -Tinytest.addAsync('Client - Triggers - redirect from exit', function(test, next) { - var rand = Random.id(), rand2 = Random.id(), rand3 = Random.id(); - var log = []; - - FlowRouter.route('/' + rand, { - action: function() { - log.push(1); - }, - triggersExit: [ - function(context, redirect) { - redirect('/' + rand3); - }, - function() { - throw new Error("should not call this trigger"); - } - ] - }); - - FlowRouter.route('/' + rand2, { - action: function() { - log.push(2); - } - }); - - FlowRouter.route('/' + rand3, { - action: function() { - log.push(3); - } - }); - - FlowRouter.go('/' + rand); - - setTimeout(function() { - FlowRouter.go('/' + rand2); - - setTimeout(function() { - test.equal(log, [1, 3]); - next(); - }, 100); - }, 100); -}); - -Tinytest.addAsync('Client - Triggers - redirect to external URL fails', function(test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - - // testing "http://" URLs - FlowRouter.route('/' + rand, { - triggersEnter: [function(context, redirect) { - test.throws(function() { - redirect("http://example.com/") - }, "Redirects to URLs outside of the app are not supported") - }], - action: function(_params) { - log.push(1); - }, - name: rand - }); - - // testing "https://" URLs - FlowRouter.route('/' + rand2, { - triggersEnter: [function(context, redirect) { - test.throws(function() { - redirect("https://example.com/") - }) - }], - action: function(_params) { - log.push(2); - }, - name: rand2 - }); - - FlowRouter.go('/'); - FlowRouter.go('/' + rand); - FlowRouter.go('/' + rand2); - - setTimeout(function() { - test.equal(log, []); - next(); - }, 300); -}); - -Tinytest.addAsync('Client - Triggers - stop callback from enter', function(test, next) { - var rand = Random.id(); - var log = []; - - FlowRouter.route('/' + rand, { - triggersEnter: [function(context, redirect, stop) { - log.push(10); - stop(); - }, function() { - throw new Error("should not execute this trigger"); - }], - action: function(_params) { - throw new Error("should not execute the action"); - } - }); - - FlowRouter.go('/'); - FlowRouter.go('/' + rand); - - setTimeout(function() { - test.equal(log, [10]); - next(); - }, 100); -}); - -Tinytest.addAsync( -'Client - Triggers - invalidate inside an autorun', -function(test, next) { - var rand = Random.id(), rand2 = Random.id(); - var log = []; - var paths = ['/' + rand2, '/' + rand]; - var done = false; - - FlowRouter.route('/' + rand, { - action: function(_params) { - log.push(1); - } - }); - - FlowRouter.route('/' + rand2, { - action: function(_params) { - log.push(2); - } - }); - - FlowRouter.triggers.enter([function(context) { - if(done) return; - test.equal(context.path, paths.pop()); - log.push(0); - }]); - - Tracker.autorun(function(c) { - FlowRouter.go('/' + rand); - }); - - setTimeout(function() { - FlowRouter.go('/' + rand2); - - setTimeout(function() { - test.equal(log, [0, 1, 0, 2]); - done = true; - setTimeout(next, 100); - }, 100); - }, 100); -}); diff --git a/packages/kadira-flow-router/test/client/triggers.js b/packages/kadira-flow-router/test/client/triggers.js deleted file mode 100644 index 7eb9a99cf..000000000 --- a/packages/kadira-flow-router/test/client/triggers.js +++ /dev/null @@ -1,297 +0,0 @@ -Tinytest.addAsync( -'Triggers - runTriggers - run all and after', -function(test, done) { - var store = []; - var triggers = MakeTriggers(2, store); - Triggers.runTriggers(triggers, null, null, function() { - test.equal(store, [0, 1]); - done(); - }); -}); - -Tinytest.addAsync( -'Triggers - runTriggers - redirect with url', -function(test, done) { - var store = []; - var url = "http://google.com"; - var triggers = MakeTriggers(2, store); - triggers.splice(1, 0, function(context, redirect) { - redirect(url); - }); - - Triggers.runTriggers(triggers, null, function(u) { - test.equal(store, [0]); - test.equal(u, url); - done(); - }, null); -}); - -Tinytest.addAsync( -'Triggers - runTriggers - redirect without url', -function(test, done) { - var store = []; - var url = "http://google.com"; - var triggers = MakeTriggers(2, store); - triggers.splice(1, 0, function(context, redirect) { - try { - redirect(); - } catch(ex) { - test.isTrue(/requires an URL/.test(ex.message)); - test.equal(store, [0]); - done(); - } - }); - - Triggers.runTriggers(triggers, null, null, null); -}); - -Tinytest.addAsync( -'Triggers - runTriggers - redirect in a different event loop', -function(test, done) { - var store = []; - var url = "http://google.com"; - var triggers = MakeTriggers(2, store); - var doneCalled = false; - - triggers.splice(1, 0, function(context, redirect) { - setTimeout(function() { - try { - redirect(url); - } catch(ex) { - test.isTrue(/sync/.test(ex.message)); - test.equal(store, [0, 1]); - test.isTrue(doneCalled); - done(); - } - }, 0); - }); - - Triggers.runTriggers(triggers, null, null, function() { - doneCalled = true; - }); -}); - -Tinytest.addAsync( -'Triggers - runTriggers - redirect called multiple times', -function(test, done) { - var store = []; - var url = "http://google.com"; - var triggers = MakeTriggers(2, store); - var redirectCalled = false; - - triggers.splice(1, 0, function(context, redirect) { - redirect(url); - try { - redirect(url); - } catch(ex) { - test.isTrue(/already redirected/.test(ex.message)); - test.equal(store, [0]); - test.isTrue(redirectCalled); - done(); - } - }); - - Triggers.runTriggers(triggers, null, function() { - redirectCalled = true; - }, null); -}); - -Tinytest.addAsync( -'Triggers - runTriggers - stop callback', -function(test, done) { - var store = []; - var triggers = MakeTriggers(2, store); - triggers.splice(1, 0, function(context, redirect, stop) { - stop(); - }); - - Triggers.runTriggers(triggers, null, null, function() { - store.push(2); - }); - - test.equal(store, [0]); - done(); -}); - - -Tinytest.addAsync( -'Triggers - runTriggers - get context', -function(test, done) { - var context = {}; - var trigger = function(c) { - test.equal(c, context); - done(); - }; - - Triggers.runTriggers([trigger], context, function() {}, function() {}); -}); - -Tinytest.addAsync( -'Triggers - createRouteBoundTriggers - matching trigger', -function(test, done) { - var context = {route: {name: "abc"}}; - var redirect = function() {}; - - var trigger = function(c, r) { - test.equal(c, context); - test.equal(r, redirect); - done(); - }; - - var triggers = Triggers.createRouteBoundTriggers([trigger], ["abc"]); - triggers[0](context, redirect); -}); - -Tinytest.addAsync( -'Triggers - createRouteBoundTriggers - multiple matching triggers', -function(test, done) { - var context = {route: {name: "abc"}}; - var redirect = function() {}; - var doneCount = 0; - - var trigger = function(c, r) { - test.equal(c, context); - test.equal(r, redirect); - doneCount++; - }; - - var triggers = Triggers.createRouteBoundTriggers([trigger, trigger], ["abc"]); - triggers[0](context, redirect); - triggers[1](context, redirect); - - test.equal(doneCount, 2); - done(); -}); - -Tinytest.addAsync( -'Triggers - createRouteBoundTriggers - no matching trigger', -function(test, done) { - var context = {route: {name: "some-other-route"}}; - var redirect = function() {}; - var doneCount = 0; - - var trigger = function(c, r) { - test.equal(c, context); - test.equal(r, redirect); - doneCount++; - }; - - var triggers = Triggers.createRouteBoundTriggers([trigger], ["abc"]); - triggers[0](context, redirect); - - test.equal(doneCount, 0); - done(); -}); - -Tinytest.addAsync( -'Triggers - createRouteBoundTriggers - negate logic', -function(test, done) { - var context = {route: {name: "some-other-route"}}; - var redirect = function() {}; - var doneCount = 0; - - var trigger = function(c, r) { - test.equal(c, context); - test.equal(r, redirect); - doneCount++; - }; - - var triggers = Triggers.createRouteBoundTriggers([trigger], ["abc"], true); - triggers[0](context, redirect); - - test.equal(doneCount, 1); - done(); -}); - -Tinytest.addAsync( -'Triggers - applyFilters - no filters', -function(test, done) { - var original = []; - test.equal(Triggers.applyFilters(original), original); - done(); -}); - -Tinytest.addAsync( -'Triggers - applyFilters - single trigger to array', -function(test, done) { - var original = function() {}; - test.equal(Triggers.applyFilters(original)[0], original); - done(); -}); - -Tinytest.addAsync( -'Triggers - applyFilters - only and except both', -function(test, done) { - var original = []; - try { - Triggers.applyFilters(original, {only: [], except: []}); - } catch(ex) { - test.isTrue(/only and except/.test(ex.message)); - done(); - } -}); - -Tinytest.addAsync( -'Triggers - applyFilters - only is not an array', -function(test, done) { - var original = []; - try { - Triggers.applyFilters(original, {only: "name"}); - } catch(ex) { - test.isTrue(/to be an array/.test(ex.message)); - done(); - } -}); - -Tinytest.addAsync( -'Triggers - applyFilters - except is not an array', -function(test, done) { - var original = []; - try { - Triggers.applyFilters(original, {except: "name"}); - } catch(ex) { - test.isTrue(/to be an array/.test(ex.message)); - done(); - } -}); - -Tinytest.addAsync( -'Triggers - applyFilters - unsupported filter', -function(test, done) { - var original = []; - try { - Triggers.applyFilters(original, {wowFilter: []}); - } catch(ex) { - test.isTrue(/not supported/.test(ex.message)); - done(); - } -}); - -Tinytest.addAsync( -'Triggers - applyFilters - just only filter', -function(test, done) { - var bounded = Triggers.applyFilters(done, {only: ["abc"]}); - bounded[0]({route: {name: "abc"}}); -}); - -Tinytest.addAsync( -'Triggers - applyFilters - just except filter', -function(test, done) { - var bounded = Triggers.applyFilters(done, {except: ["abc"]}); - bounded[0]({route: {name: "some-other"}}); -}); - -function MakeTriggers(count, store) { - var triggers = []; - - function addTrigger(no) { - triggers.push(function() { - store.push(no); - }); - } - - for(var lc=0; lc(.*)<\/script/)[1]; - return InjectData._decode(encodedData)['fast-render-data']; -} \ No newline at end of file diff --git a/packages/kadira-flow-router/test/server/plugins/fast_render.js b/packages/kadira-flow-router/test/server/plugins/fast_render.js deleted file mode 100644 index 1ec77866a..000000000 --- a/packages/kadira-flow-router/test/server/plugins/fast_render.js +++ /dev/null @@ -1,35 +0,0 @@ -Tinytest.add('Server - Fast Render - fast render supported route', function (test) { - var expectedFastRenderCollData = [ - [{_id: "two", aa: 20}, {_id: "one", aa: 10}] - ]; - - var data = GetFRData('/the-fast-render-route'); - test.equal(data.collectionData['fast-render-coll'], expectedFastRenderCollData); -}); - -Tinytest.add('Server - Fast Render - fast render supported route with params', function (test) { - var expectedFastRenderCollData = [ - [{ - _id: "one", - params: {id: 'the-id'}, - queryParams: {aa: "20"} - }] - ]; - - var data = GetFRData('/the-fast-render-route-params/the-id?aa=20'); - test.equal(data.collectionData['fast-render-coll'], expectedFastRenderCollData); -}); - -Tinytest.add('Server - Fast Render - no fast render supported route', function (test) { - var data = GetFRData('/no-fast-render'); - test.equal(data.collectionData, {}); -}); - -Tinytest.add('Server - Fast Render - with group routes', function (test) { - var expectedFastRenderCollData = [ - [{_id: "two", aa: 20}, {_id: "one", aa: 10}] - ]; - - var data = GetFRData('/fr/have-fr'); - test.equal(data.collectionData['fast-render-coll'], expectedFastRenderCollData); -}); \ No newline at end of file diff --git a/sandstorm.js b/sandstorm.js index aa94fb508..d82e945ab 100644 --- a/sandstorm.js +++ b/sandstorm.js @@ -1,6 +1,7 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { Meteor } from 'meteor/meteor'; import { Picker } from 'meteor/communitypackages:picker'; +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; // Sandstorm context is detected using the METEOR_SETTINGS environment variable // in the package definition. From b6e7e03c95dfa68c8de6922ffb7663631e476d91 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 23 Sep 2024 20:26:20 +0300 Subject: [PATCH 011/356] Added to Docs CNAME DNS info about CloudFlare and Sandstorm. Thanks to xet7 ! --- docs/Webserver/Caddy-Webserver-Config.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/Webserver/Caddy-Webserver-Config.md b/docs/Webserver/Caddy-Webserver-Config.md index 96ee549dc..95417e8a0 100644 --- a/docs/Webserver/Caddy-Webserver-Config.md +++ b/docs/Webserver/Caddy-Webserver-Config.md @@ -1,5 +1,22 @@ [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: @@ -718,4 +735,4 @@ 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 +``` From 0ab16764d13bade9791e46dd95f213a2d23d502b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 23 Sep 2024 20:28:13 +0300 Subject: [PATCH 012/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5af0d4013..d86fae61f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ 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: + +- [Added to Docs CNAME DNS info about CloudFlare and Sandstorm](https://github.com/wekan/wekan/commit/b6e7e03c95dfa68c8de6922ffb7663631e476d91). + 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: From a9d41217bd8c797b28510efec3e21a92d7ec4bba Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 23 Sep 2024 21:15:19 +0300 Subject: [PATCH 013/356] Removed outdated dependency page. To be seen, does anything break. Thanks to xet7 ! --- package-lock.json | 29 +++-------------------------- package.json | 1 - 2 files changed, 3 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index 195cc8ba3..208b205a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2334,9 +2334,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" @@ -2407,14 +2407,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", @@ -2448,21 +2440,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", diff --git a/package.json b/package.json index 201a9c469..ab64a08a5 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,6 @@ "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.13.0", From 5c8cf2ebbdd56e5bbac84f1ca43f071ade968cb7 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 23 Sep 2024 21:18:54 +0300 Subject: [PATCH 014/356] Updated ChangeLog. --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d86fae61f..4fefe0e66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,10 @@ 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. From dfcabc5a36bb317f7e1e266c2c239b058dfd7f68 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 23 Sep 2024 22:00:47 +0300 Subject: [PATCH 015/356] v7.60 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fefe0e66..7e74a5ede 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.60 2024-09-23 WeKan ® release This release adds the following updates: diff --git a/Stackerfile.yml b/Stackerfile.yml index 7017fcb90..6758fc50e 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.59.0" +appVersion: "v7.60.0" files: userUploads: - README.md diff --git a/package-lock.json b/package-lock.json index 208b205a3..00b101d74 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.59.0", + "version": "v7.60.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index ab64a08a5..fd0d6a71c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.59.0", + "version": "v7.60.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index f4442dce9..127697223 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.59 + Wekan REST API v7.60 @@ -1548,7 +1548,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
      • - Wekan REST API v7.59 + Wekan REST API v7.60
      • @@ -2067,7 +2067,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
        -

        Wekan REST API v7.59

        +

        Wekan REST API v7.60

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

        diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 10f3fde22..e83547e97 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.59 + version: v7.60 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 691b278fe..782d2d442 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 = 759, + appVersion = 760, # Increment this for every release. - appMarketingVersion = (defaultText = "7.59.0~2024-09-04"), + appMarketingVersion = (defaultText = "7.60.0~2024-09-23"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 437a7e0fc..4b5173bfc 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.59' +version: '7.60' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.59/wekan-7.59-amd64.zip - unzip wekan-7.59-amd64.zip - rm wekan-7.59-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.60/wekan-7.60-amd64.zip + unzip wekan-7.60-amd64.zip + rm wekan-7.60-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 6c54b38cdfd14959f4449cea0c3150bf86708ecd Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 23 Sep 2024 23:08:47 +0300 Subject: [PATCH 016/356] Try 3 to fix apparmor denied in syslog at Snap Candidate. Changed MongoDB --host back to --bind_ip. Thanks to webenefits and xet7 ! Fixes #4855 --- snap-src/bin/mongodb-control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/snap-src/bin/mongodb-control b/snap-src/bin/mongodb-control index 9b474a640..6f1131039 100755 --- a/snap-src/bin/mongodb-control +++ b/snap-src/bin/mongodb-control @@ -88,9 +88,9 @@ if [ -z "${MONGO_URL}" ]; then 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, not anymore --bind_ip + # Newest MongoDB uses --host or --bind_ip if [ "x" != "x${MONGODB_BIND_IP}" ]; then - BIND_OPTIONS+=" --host $MONGODB_BIND_IP" + BIND_OPTIONS+=" --bind_ip $MONGODB_BIND_IP" fi if [ "x" != "x${MONGODB_PORT}" ]; then BIND_OPTIONS+=" --port ${MONGODB_PORT}" From 3b29678ef1d8ddb1f365a66c73373c87c1ce2cb7 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 23 Sep 2024 23:11:53 +0300 Subject: [PATCH 017/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e74a5ede..597d2567f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming WeKan ® release + +This release 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. + +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: From ecdfc681700633d8688ca709f36924ceced96af8 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 24 Sep 2024 00:02:00 +0300 Subject: [PATCH 018/356] Try 4 to fix apparmor denied in syslog at Snap Candidate. Thanks to webenefits and xet7 ! Fixes #4855 --- snap-src/bin/mongodb-control | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/snap-src/bin/mongodb-control b/snap-src/bin/mongodb-control index 6f1131039..8bf9b87a0 100755 --- a/snap-src/bin/mongodb-control +++ b/snap-src/bin/mongodb-control @@ -114,21 +114,21 @@ if [ -z "${MONGO_URL}" ]; then #echo "mongodb log destination: ${MONGO_LOG_DESTINATION}" >> "${SNAP_COMMON}/settings.log" # Disable MongoDB telemetry and free monitoring - mongosh wekan --eval 'disableTelemetry();' ${BIND_OPTIONS} - mongosh wekan --eval 'db.disableFreeMonitoring();' ${BIND_OPTIONS} + mongosh wekan --eval 'disableTelemetry();' --bind_ip ${MONGODB_BIND_IP} --port ${MONGODB_PORT} + mongosh wekan --eval 'db.disableFreeMonitoring();' --bind_ip ${MONGODB_BIND_IP} --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});' ${BIND_OPTIONS} + mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' --bind_ip ${MONGODB_BIND_IP} --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(); });" $BIND_OPTIONS # Set MongoDB feature compatibility version - mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' ${BIND_OPTIONS} + #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}});' ${BIND_OPTIONS} + mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' --bind_ip ${MONGODB_BIND_IP} --port ${MONGODB_PORT} else From 57780801aa59d486dbea2ea0ed37e2c5b668b882 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 24 Sep 2024 00:03:42 +0300 Subject: [PATCH 019/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 597d2567f..7aa372922 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ This release 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. Thanks to above GitHub users for their contributions and translators for their translations. From e32d2daa4567728e4dd5048c9c575edcac1372da Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 24 Sep 2024 00:26:15 +0300 Subject: [PATCH 020/356] Try 5 to fix apparmor denied in syslog at Snap Candidate. Thanks to webenefits and xet7 ! Fixes #4855 --- snap-src/bin/mongodb-control | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/snap-src/bin/mongodb-control b/snap-src/bin/mongodb-control index 8bf9b87a0..2dfa0ae4b 100755 --- a/snap-src/bin/mongodb-control +++ b/snap-src/bin/mongodb-control @@ -114,12 +114,12 @@ if [ -z "${MONGO_URL}" ]; then #echo "mongodb log destination: ${MONGO_LOG_DESTINATION}" >> "${SNAP_COMMON}/settings.log" # Disable MongoDB telemetry and free monitoring - mongosh wekan --eval 'disableTelemetry();' --bind_ip ${MONGODB_BIND_IP} --port ${MONGODB_PORT} - mongosh wekan --eval 'db.disableFreeMonitoring();' --bind_ip ${MONGODB_BIND_IP} --port ${MONGODB_PORT} + mongosh wekan --eval 'disableTelemetry();' --port ${MONGODB_PORT} + 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});' --bind_ip ${MONGODB_BIND_IP} --port ${MONGODB_PORT} + 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(); });" $BIND_OPTIONS @@ -128,7 +128,7 @@ if [ -z "${MONGO_URL}" ]; then #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}});' --bind_ip ${MONGODB_BIND_IP} --port ${MONGODB_PORT} + 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 From 0ff3952a8b7bfd598cb378d1660fe94bc257aec8 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 24 Sep 2024 00:27:50 +0300 Subject: [PATCH 021/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7aa372922..819897415 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ This release fixes the following bugs: 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. Thanks to above GitHub users for their contributions and translators for their translations. From 5aa38c2e40429f06aac8bc1bc0b5ac30c5344c6f Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 24 Sep 2024 00:52:42 +0300 Subject: [PATCH 022/356] Try 6 to fix apparmor denied in syslog at Snap Candidate. Thanks to webenefits and xet7 ! Fixes #4855 --- snap-src/bin/mongodb-control | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/snap-src/bin/mongodb-control b/snap-src/bin/mongodb-control index 2dfa0ae4b..88c8258ba 100755 --- a/snap-src/bin/mongodb-control +++ b/snap-src/bin/mongodb-control @@ -114,12 +114,12 @@ if [ -z "${MONGO_URL}" ]; then #echo "mongodb log destination: ${MONGO_LOG_DESTINATION}" >> "${SNAP_COMMON}/settings.log" # Disable MongoDB telemetry and free monitoring - mongosh wekan --eval 'disableTelemetry();' --port ${MONGODB_PORT} - mongosh wekan --eval 'db.disableFreeMonitoring();' --port ${MONGODB_PORT} + /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});' --port ${MONGODB_PORT} + /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(); });" $BIND_OPTIONS @@ -128,7 +128,7 @@ if [ -z "${MONGO_URL}" ]; then #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}});' --port ${MONGODB_PORT} + /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 @@ -148,20 +148,20 @@ else fi # Disable MongoDB telemetry and free monitoring - mongosh ${MONGO_URL} --eval 'disableTelemetry();' - mongosh ${MONGO_URL} --eval 'db.disableFreeMonitoring();' + /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 ${MONGO_URL} --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' + /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(); });" $BIND_OPTIONS # Set MongoDB feature compatibility version - mongosh ${MONGO_URL} --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' + #/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 - mongosh ${MONGO_URL} --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' + /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 From 2ec435af415ab81b7260b62d514d4006c5a408ab Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 24 Sep 2024 00:54:11 +0300 Subject: [PATCH 023/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 819897415..1e4ee0157 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ This release fixes the following bugs: 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. Thanks to above GitHub users for their contributions and translators for their translations. From 6e8e581ceb330a7756403efa1f8bbe5a198ff111 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 24 Sep 2024 07:22:22 +0300 Subject: [PATCH 024/356] Testing packages without versions from --- packages/markdown/package.js | 2 -- packages/meteor-autosize/package.js | 1 - packages/wekan-accounts-cas/package.js | 1 - packages/wekan-accounts-lockout/package.js | 1 - packages/wekan-accounts-sandstorm/package.js | 2 -- packages/wekan-bootstrap-datepicker/package.js | 1 - packages/wekan-fontawesome/package.js | 2 -- packages/wekan-fullcalendar/package.js | 3 +-- packages/wekan-ldap/package.js | 1 - 9 files changed, 1 insertion(+), 13 deletions(-) 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/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'); From 0e7c454013cc1b9034bca86e2a078dbccf12daf6 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 24 Sep 2024 07:33:25 +0300 Subject: [PATCH 025/356] Updated ChangeLog. --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e4ee0157..601a71d42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,12 @@ Fixing other platforms In Progress. # Upcoming WeKan ® release -This release fixes the following bugs: +This release adds the following updates: + +- [Testing packages without versions from, for upcoming upgrades](https://github.com/wekan/wekan/commit/6e8e581ceb330a7756403efa1f8bbe5a198ff111). + Thanks to xet7. + +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. From ec5d0d00f5288a48307a43ec7f1925e643e50ae1 Mon Sep 17 00:00:00 2001 From: Denis Perov Date: Mon, 30 Sep 2024 16:23:27 +0300 Subject: [PATCH 026/356] Update VSCode debugging configuration --- .vscode/launch.json | 84 ++++++++++++++++++++++++++------------------- 1 file changed, 48 insertions(+), 36 deletions(-) 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"] + } ] } From 948537cb75ec9d9d0d434d535772f1b4ad5c2443 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 20:09:47 +0000 Subject: [PATCH 027/356] Bump docker/build-push-action from 6.7.0 to 6.9.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.7.0 to 6.9.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/5cd11c3a4ced054e52742c5fd54dca954e0edd85...4f58ea79222b3b9dc2c8bbdd6debcef730109a75) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index aec9d7e55..651aa8d67 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # 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@5cd11c3a4ced054e52742c5fd54dca954e0edd85 + uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 with: context: . push: ${{ github.event_name != 'pull_request' }} From 15af5d2c2e8d62965d98f37f19eaa2f20f29e744 Mon Sep 17 00:00:00 2001 From: "Nas A." Date: Wed, 2 Oct 2024 16:40:16 -0700 Subject: [PATCH 028/356] Update Candidate-WeKan-Snap-Manual-Upgrade.md "sudo snap get wekan" outputs key value pairs but not sh code to set those values in snap wekan environment. Fixing this here --- .../FOSS/Snap/Candidate-WeKan-Snap-Manual-Upgrade.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Platforms/FOSS/Snap/Candidate-WeKan-Snap-Manual-Upgrade.md b/docs/Platforms/FOSS/Snap/Candidate-WeKan-Snap-Manual-Upgrade.md index 60df16379..d87d2d89a 100644 --- a/docs/Platforms/FOSS/Snap/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 From 12af3a5d106c6ad966afd36571183190afa964ee Mon Sep 17 00:00:00 2001 From: Aden Koziol <145938020+AdenKoziol@users.noreply.github.com> Date: Wed, 16 Oct 2024 16:40:20 -0500 Subject: [PATCH 029/356] renaming list shows in activities --- client/components/activities/activities.jade | 3 +++ imports/i18n/data/en.i18n.json | 1 + 2 files changed, 4 insertions(+) diff --git a/client/components/activities/activities.jade b/client/components/activities/activities.jade index b3b193146..0c3c175b8 100644 --- a/client/components/activities/activities.jade +++ b/client/components/activities/activities.jade @@ -206,6 +206,9 @@ template(name="activity") if($eq activity.activityType 'archivedList') | {{_ 'activity-archived' (sanitize listLabel)}}. + if($eq activity.activityType 'changedListTitle') + {{_ 'activity-changedListTitle' (sanitize listLabel) boardLabelLink}} + //- member activity ---------------------------------------------------- if($eq activity.activityType 'joinMember') if($eq user._id activity.member._id) diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index e38b230c4..707d69b52 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", From f9051d768c93274de898e1ee8a1ba6265e1c4f56 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 20 Oct 2024 00:06:08 +0300 Subject: [PATCH 030/356] Updated translations. --- imports/i18n/data/ru.i18n.json | 40 +++++++++++++++++----------------- imports/i18n/data/tr.i18n.json | 40 +++++++++++++++++----------------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/imports/i18n/data/ru.i18n.json b/imports/i18n/data/ru.i18n.json index 3356d8c28..433e98c31 100644 --- a/imports/i18n/data/ru.i18n.json +++ b/imports/i18n/data/ru.i18n.json @@ -103,7 +103,7 @@ "add-cover": "Добавить обложку на миникарточку", "add-label": "Добавить метку", "add-list": "Добавить простой список", - "add-after-list": "Add After List", + "add-after-list": "Добавить после списка", "add-members": "Добавить участника", "added": "Добавлено", "addMemberPopup-title": "Участники", @@ -550,7 +550,7 @@ "public": "Открытая", "public-desc": "Эта доска может быть видна всем у кого есть ссылка. Также может быть проиндексирована поисковыми системами. Вносить изменения могут только участники.", "quick-access-description": "Нажмите на звезду, что добавить ярлык доски на панель.", - "remove-cover": "Remove cover image from minicard", + "remove-cover": "Удалить изображение обложки из мини-карточки", "remove-from-board": "Удалить с доски", "remove-label": "Удалить метку", "listDeletePopup-title": "Удалить список?", @@ -578,7 +578,7 @@ "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": "Включить/выключить боковую панель поиска", @@ -742,7 +742,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низу, полный путь", @@ -963,7 +963,7 @@ "teams": "Команды", "displayName": "Отображаемое название", "shortName": "Короткое название", - "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "autoAddUsersWithDomainName": "Автоматически добавлять пользователей с доменным именем", "website": "Вебсайт", "person": "Представитель", "my-cards": "Мои карточки", @@ -1100,7 +1100,7 @@ "label-names": "Названия меток", "archived-at": "архивировано", "sort-cards": "Сортировать карточки", - "sort-is-on": "Sort is on", + "sort-is-on": "Сортировка включена", "cardsSortPopup-title": "Сортировать карточки", "due-date": "Назначенная дата", "server-error": "Ошибка сервера", @@ -1118,7 +1118,7 @@ "custom-field-stringtemplate-separator": "Разделитель (для пробела используйте или  )", "custom-field-stringtemplate-item-placeholder": "Нажмите «Ввод», чтобы добавить больше элементов.", "creator": "Автор", - "creator-on-minicard": "Creator on minicard", + "creator-on-minicard": "Автор на мини-карточке", "filesReportTitle": "Отчёт по файлам", "reports": "Отчёты", "rulesReportTitle": "Отчёт по правилам", @@ -1232,21 +1232,21 @@ "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", + "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", + "show-subtasks-field": "Показывать поля подзадач", + "convert-to-markdown": "Конвертировать в markdown", + "import-board-zip": "Добавьте ZIP-файл, содержащий файлы JSON доски, а также названия подкаталогов с вложениями.", "collapse": "Свернуть", - "uncollapse": "Uncollapse" + "uncollapse": "Развернуть" } diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index 5036ab35f..203e81b25 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -46,7 +46,7 @@ "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-customfield-created": "%s adlı özel alan yaratıldı", @@ -85,14 +85,14 @@ "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": "Liste Genişliğini Ayarla", + "set-list-width": "Liste Genişliğini Ayarla", + "set-list-width-value": "Liste Genişliği (piksel)", + "list-width-error-message": "Liste Genişliği pozitif bir tam sayı olmak zorundadır.", + "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 +100,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 +143,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 +162,9 @@ "board-public-info": "Bu pano genele 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", @@ -354,8 +354,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", @@ -414,7 +414,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", From d31403a91825173b8ce9501fd29cefbea7ee2b95 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 20 Oct 2024 00:08:24 +0300 Subject: [PATCH 031/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 601a71d42..f2ded1dd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,8 @@ and fixes the following bugs: 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. Thanks to above GitHub users for their contributions and translators for their translations. From c925a278700730714837da3b3f434502f9ab6e1b Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Wed, 9 Oct 2024 22:57:05 +0200 Subject: [PATCH 032/356] Fixing opening cards and slow performance of closing cards Fixes: #5533 Fixes: #5548 Revert "Switch from kadira:flow-router to ostrio:flow-router-extra" This reverts commit 718c1a393d6d8db36ade190ae051d96eec7255eb. --- .eslintrc.json | 2 + .meteor/packages | 6 +- .meteor/versions | 7 +- client/components/boards/boardArchive.js | 1 - client/components/boards/boardBody.js | 1 - client/components/boards/boardHeader.js | 1 - client/components/boards/boardsList.js | 1 - client/components/cards/cardDetails.js | 1 - client/components/cards/subtasks.js | 1 - client/components/import/import.js | 1 - client/components/lists/listBody.js | 1 - client/components/main/layouts.js | 3 +- client/components/settings/peopleBody.js | 1 - client/components/sidebar/sidebar.js | 1 - client/lib/keyboard.js | 1 - client/lib/modal.js | 2 - client/lib/utils.js | 1 - config/accounts.js | 1 - config/router.js | 41 +- docs/DeveloperDocs/Directory-Structure.md | 4 +- models/boards.js | 3 +- models/cards.js | 1 - models/exporter.js | 1 - models/server/ExporterCardPDF.js | 1 - models/server/ExporterExcel.js | 1 - models/settings.js | 1 - packages/kadira-flow-router/.gitignore | 3 + packages/kadira-flow-router/.travis.yml | 8 + packages/kadira-flow-router/CHANGELOG.md | 155 ++++ packages/kadira-flow-router/CONTRIBUTING.md | 16 + packages/kadira-flow-router/LICENSE | 21 + packages/kadira-flow-router/README.md | 777 ++++++++++++++++++ packages/kadira-flow-router/client/_init.js | 11 + packages/kadira-flow-router/client/group.js | 57 ++ packages/kadira-flow-router/client/modules.js | 2 + packages/kadira-flow-router/client/route.js | 125 +++ packages/kadira-flow-router/client/router.js | 587 +++++++++++++ .../kadira-flow-router/client/triggers.js | 116 +++ packages/kadira-flow-router/lib/router.js | 9 + packages/kadira-flow-router/package.js | 81 ++ packages/kadira-flow-router/server/_init.js | 4 + packages/kadira-flow-router/server/group.js | 18 + .../server/plugins/fast_render.js | 40 + packages/kadira-flow-router/server/route.js | 28 + packages/kadira-flow-router/server/router.js | 146 ++++ .../test/client/_helpers.js | 10 + .../test/client/group.spec.js | 113 +++ .../test/client/loader.spec.js | 17 + .../test/client/route.reactivity.spec.js | 158 ++++ .../test/client/router.core.spec.js | 632 ++++++++++++++ .../test/client/router.reactivity.spec.js | 208 +++++ .../test/client/router.subs_ready.spec.js | 225 +++++ .../test/client/trigger.spec.js | 570 +++++++++++++ .../test/client/triggers.js | 297 +++++++ .../test/common/fast_render_route.js | 48 ++ .../test/common/group.spec.js | 16 + .../test/common/route.spec.js | 15 + .../test/common/router.addons.spec.js | 30 + .../test/common/router.path.spec.js | 135 +++ .../test/common/router.url.spec.js | 11 + .../test/server/_helpers.js | 38 + .../test/server/plugins/fast_render.js | 35 + sandstorm.js | 1 - 63 files changed, 4797 insertions(+), 52 deletions(-) create mode 100644 packages/kadira-flow-router/.gitignore create mode 100644 packages/kadira-flow-router/.travis.yml create mode 100644 packages/kadira-flow-router/CHANGELOG.md create mode 100644 packages/kadira-flow-router/CONTRIBUTING.md create mode 100644 packages/kadira-flow-router/LICENSE create mode 100644 packages/kadira-flow-router/README.md create mode 100644 packages/kadira-flow-router/client/_init.js create mode 100644 packages/kadira-flow-router/client/group.js create mode 100644 packages/kadira-flow-router/client/modules.js create mode 100644 packages/kadira-flow-router/client/route.js create mode 100644 packages/kadira-flow-router/client/router.js create mode 100644 packages/kadira-flow-router/client/triggers.js create mode 100644 packages/kadira-flow-router/lib/router.js create mode 100644 packages/kadira-flow-router/package.js create mode 100644 packages/kadira-flow-router/server/_init.js create mode 100644 packages/kadira-flow-router/server/group.js create mode 100644 packages/kadira-flow-router/server/plugins/fast_render.js create mode 100644 packages/kadira-flow-router/server/route.js create mode 100644 packages/kadira-flow-router/server/router.js create mode 100644 packages/kadira-flow-router/test/client/_helpers.js create mode 100644 packages/kadira-flow-router/test/client/group.spec.js create mode 100644 packages/kadira-flow-router/test/client/loader.spec.js create mode 100644 packages/kadira-flow-router/test/client/route.reactivity.spec.js create mode 100644 packages/kadira-flow-router/test/client/router.core.spec.js create mode 100644 packages/kadira-flow-router/test/client/router.reactivity.spec.js create mode 100644 packages/kadira-flow-router/test/client/router.subs_ready.spec.js create mode 100644 packages/kadira-flow-router/test/client/trigger.spec.js create mode 100644 packages/kadira-flow-router/test/client/triggers.js create mode 100644 packages/kadira-flow-router/test/common/fast_render_route.js create mode 100644 packages/kadira-flow-router/test/common/group.spec.js create mode 100644 packages/kadira-flow-router/test/common/route.spec.js create mode 100644 packages/kadira-flow-router/test/common/router.addons.spec.js create mode 100644 packages/kadira-flow-router/test/common/router.path.spec.js create mode 100644 packages/kadira-flow-router/test/common/router.url.spec.js create mode 100644 packages/kadira-flow-router/test/server/_helpers.js create mode 100644 packages/kadira-flow-router/test/server/plugins/fast_render.js diff --git a/.eslintrc.json b/.eslintrc.json index 65af0f342..4c862c827 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -97,10 +97,12 @@ "Avatar": true, "Avatars": true, "BlazeComponent": false, + "BlazeLayout": false, "CollectionHooks": false, "DocHead": false, "ESSearchResults": false, "FastRender": false, + "FlowRouter": false, "FS": false, "getSlug": false, "Migrations": false, diff --git a/.meteor/packages b/.meteor/packages index 6a6081f30..95e40c00c 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -26,6 +26,7 @@ mquandalle:collection-mutations # Account system accounts-password@2.4.0 useraccounts:core +useraccounts:flow-routing useraccounts:unstyled simple:rest-accounts-password wekan-ldap @@ -43,6 +44,7 @@ reactive-dict@1.3.1 session@1.2.1 tracker@1.3.3 underscore@1.0.13 +arillo:flow-router-helpers audit-argument-checks@1.0.7 kadira:dochead mquandalle:autofocus @@ -79,16 +81,16 @@ meteortesting:mocha@2.0.3 aldeed:simple-schema matb33:collection-hooks simple:json-routes +kadira:flow-router spacebars service-configuration@1.3.2 communitypackages:picker minifier-css@1.6.4 blaze +kadira:blaze-layout peerlibrary:blaze-components ejson@1.1.3 logging@1.3.3 wekan-fullcalendar momentjs:moment@2.29.3 wekan-fontawesome -ostrio:flow-router-extra -useraccounts:flow-routing-extra diff --git a/.meteor/versions b/.meteor/versions index d37555c1e..fbf430721 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -7,6 +7,7 @@ aldeed:schema-deny@1.1.0 aldeed:schema-index@1.1.1 aldeed:simple-schema@1.5.4 allow-deny@1.1.1 +arillo:flow-router-helpers@0.5.2 audit-argument-checks@1.0.7 autoupdate@1.8.0 babel-compiler@7.10.5 @@ -53,7 +54,9 @@ id-map@1.1.1 idmontie:migrations@1.0.3 inter-process-messaging@0.1.1 jquery@3.0.0 +kadira:blaze-layout@2.3.0 kadira:dochead@1.5.0 +kadira:flow-router@2.12.1 konecty:mongo-counter@0.0.5_3 lmieulet:meteor-coverage@1.1.4 localstorage@1.2.0 @@ -100,7 +103,6 @@ ordered-dict@1.1.0 ostrio:cookies@2.7.2 ostrio:cstorage@4.0.1 ostrio:files@2.3.3 -ostrio:flow-router-extra@3.9.0 ostrio:i18n@3.2.1 pascoual:pdfkit@1.0.7 peerlibrary:assert@0.3.0 @@ -145,7 +147,7 @@ ui@1.0.13 underscore@1.0.13 url@1.3.2 useraccounts:core@1.16.2 -useraccounts:flow-routing-extra@1.1.0 +useraccounts:flow-routing@1.15.0 useraccounts:unstyled@1.14.2 webapp@1.13.6 webapp-hashing@1.1.1 @@ -160,4 +162,5 @@ wekan-ldap@0.0.2 wekan-markdown@1.0.9 wekan-oidc@1.0.12 yasaricli:slugify@0.0.7 +zimme:active-route@2.3.2 zodern:types@1.0.10 diff --git a/client/components/boards/boardArchive.js b/client/components/boards/boardArchive.js index c761bb69e..87525c1f7 100644 --- a/client/components/boards/boardArchive.js +++ b/client/components/boards/boardArchive.js @@ -1,5 +1,4 @@ import { ReactiveCache } from '/imports/reactiveCache'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; BlazeComponent.extendComponent({ onCreated() { diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index d8169fb4b..c0aac7301 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -1,7 +1,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; import dragscroll from '@wekanteam/dragscroll'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const subManager = new SubsManager(); const { calculateIndex } = Utils; diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index e71072157..22408b3c6 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -1,6 +1,5 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; /* const DOWNCLS = 'fa-sort-down'; diff --git a/client/components/boards/boardsList.js b/client/components/boards/boardsList.js index 3542e3668..69a29b3c2 100644 --- a/client/components/boards/boardsList.js +++ b/client/components/boards/boardsList.js @@ -1,6 +1,5 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const subManager = new SubsManager(); diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index 725b467cd..eec4af51d 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -12,7 +12,6 @@ import CardComments from '/models/cardComments'; import { ALLOWED_COLORS } from '/config/const'; import { UserAvatar } from '../users/userAvatar'; import { DialogWithBoardSwimlaneList } from '/client/lib/dialogWithBoardSwimlaneList'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const subManager = new SubsManager(); const { calculateIndexData } = Utils; diff --git a/client/components/cards/subtasks.js b/client/components/cards/subtasks.js index 6be9cb080..af5654802 100644 --- a/client/components/cards/subtasks.js +++ b/client/components/cards/subtasks.js @@ -1,5 +1,4 @@ import { ReactiveCache } from '/imports/reactiveCache'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; BlazeComponent.extendComponent({ addSubtask(event) { diff --git a/client/components/import/import.js b/client/components/import/import.js index 5fbec5f2e..4d4ba7fa7 100644 --- a/client/components/import/import.js +++ b/client/components/import/import.js @@ -2,7 +2,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { trelloGetMembersToMap } from './trelloMembersMapper'; import { wekanGetMembersToMap } from './wekanMembersMapper'; import { csvGetMembersToMap } from './csvMembersMapper'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const Papa = require('papaparse'); diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index 7847a70d7..f68599c83 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -1,7 +1,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; import { Spinner } from '/client/lib/spinner'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const subManager = new SubsManager(); const InfiniteScrollIter = 10; diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js index 0b339c0e0..6ebe6d22e 100644 --- a/client/components/main/layouts.js +++ b/client/components/main/layouts.js @@ -1,8 +1,7 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; -FlowRouter.Renderer.rootElement = () => document.body; +BlazeLayout.setRoot('body'); let alreadyCheck = 1; let isCheckDone = false; diff --git a/client/components/settings/peopleBody.js b/client/components/settings/peopleBody.js index f39b159e3..b80890c58 100644 --- a/client/components/settings/peopleBody.js +++ b/client/components/settings/peopleBody.js @@ -1,5 +1,4 @@ import { ReactiveCache } from '/imports/reactiveCache'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const orgsPerPage = 25; const teamsPerPage = 25; diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js index a2f06c716..f03f2c738 100644 --- a/client/components/sidebar/sidebar.js +++ b/client/components/sidebar/sidebar.js @@ -1,6 +1,5 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; Sidebar = null; diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index ed91509e1..79f90456c 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -1,5 +1,4 @@ import { ReactiveCache } from '/imports/reactiveCache'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; // 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). diff --git a/client/lib/modal.js b/client/lib/modal.js index 0aced6cfa..00b6fc4b7 100644 --- a/client/lib/modal.js +++ b/client/lib/modal.js @@ -1,5 +1,3 @@ -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; - const closedValue = null; window.Modal = new (class { diff --git a/client/lib/utils.js b/client/lib/utils.js index 132880c7a..15896e5c3 100644 --- a/client/lib/utils.js +++ b/client/lib/utils.js @@ -1,5 +1,4 @@ import { ReactiveCache } from '/imports/reactiveCache'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; Utils = { setBackgroundImage(url) { diff --git a/config/accounts.js b/config/accounts.js index 59c0985a1..cbfb9d4dd 100644 --- a/config/accounts.js +++ b/config/accounts.js @@ -1,5 +1,4 @@ import { TAPi18n } from '/imports/i18n'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; const passwordField = AccountsTemplates.removeField('password'); const emailField = AccountsTemplates.removeField('email'); diff --git a/config/router.js b/config/router.js index 3450744b6..cdbf106c1 100644 --- a/config/router.js +++ b/config/router.js @@ -1,5 +1,4 @@ import { TAPi18n } from '/imports/i18n'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; let previousPath; FlowRouter.triggers.exit([ @@ -25,7 +24,7 @@ FlowRouter.route('/', { Utils.manageCustomUI(); Utils.manageMatomo(); - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'boardListHeaderBar', content: 'boardList', }); @@ -49,7 +48,7 @@ FlowRouter.route('/public', { Utils.manageCustomUI(); Utils.manageMatomo(); - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'boardListHeaderBar', content: 'boardList', }); @@ -79,7 +78,7 @@ FlowRouter.route('/b/:id/:slug', { Utils.manageCustomUI(); Utils.manageMatomo(); - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'boardHeaderBar', content: 'board', }); @@ -99,7 +98,7 @@ FlowRouter.route('/b/:boardId/:slug/:cardId', { Utils.manageCustomUI(); Utils.manageMatomo(); - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'boardHeaderBar', content: 'board', }); @@ -119,7 +118,7 @@ FlowRouter.route('/shortcuts', { onCloseGoTo: previousPath, }); } else { - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'shortcutsHeaderBar', content: shortcutsTemplate, }); @@ -144,7 +143,7 @@ FlowRouter.route('/b/templates', { Utils.manageCustomUI(); Utils.manageMatomo(); - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'boardListHeaderBar', content: 'boardList', }); @@ -163,7 +162,7 @@ FlowRouter.route('/my-cards', { Utils.manageCustomUI(); Utils.manageMatomo(); - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'myCardsHeaderBar', content: 'myCards', }); @@ -183,7 +182,7 @@ FlowRouter.route('/due-cards', { Utils.manageCustomUI(); Utils.manageMatomo(); - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'dueCardsHeaderBar', content: 'dueCards', }); @@ -210,7 +209,7 @@ FlowRouter.route('/global-search', { decodeURIComponent(FlowRouter.getQueryParam('q')), ); } - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'globalSearchHeaderBar', content: 'globalSearch', }); @@ -230,7 +229,7 @@ FlowRouter.route('/broken-cards', { Utils.manageCustomUI(); Utils.manageMatomo(); - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'brokenCardsHeaderBar', content: brokenCardsTemplate, }); @@ -254,7 +253,7 @@ FlowRouter.route('/import/:source', { Filter.reset(); Session.set('sortBy', ''); EscapeActions.executeAll(); - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'importHeaderBar', content: 'import', }); @@ -279,7 +278,7 @@ FlowRouter.route('/setting', { ], action() { Utils.manageCustomUI(); - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'settingHeaderBar', content: 'setting', }); @@ -303,7 +302,7 @@ FlowRouter.route('/information', { }, ], action() { - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'settingHeaderBar', content: 'information', }); @@ -327,7 +326,7 @@ FlowRouter.route('/people', { }, ], action() { - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'settingHeaderBar', content: 'people', }); @@ -351,7 +350,7 @@ FlowRouter.route('/admin-reports', { }, ], action() { - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'settingHeaderBar', content: 'adminReports', }); @@ -375,7 +374,7 @@ FlowRouter.route('/attachments', { }, ], action() { - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'settingHeaderBar', content: 'attachments', }); @@ -399,18 +398,18 @@ FlowRouter.route('/translation', { }, ], action() { - this.render('defaultLayout', { + BlazeLayout.render('defaultLayout', { headerBar: 'settingHeaderBar', content: 'translation', }); }, }); -FlowRouter.route('*', { +FlowRouter.notFound = { action() { - this.render('defaultLayout', { content: 'notFound' }); + BlazeLayout.render('defaultLayout', { content: 'notFound' }); }, -}); +}; // We maintain a list of redirections to ensure that we don't break old URLs // when we change our routing scheme. diff --git a/docs/DeveloperDocs/Directory-Structure.md b/docs/DeveloperDocs/Directory-Structure.md index 9b1bf0e2c..8e6749342 100644 --- a/docs/DeveloperDocs/Directory-Structure.md +++ b/docs/DeveloperDocs/Directory-Structure.md @@ -1,6 +1,6 @@ # Routing -We're using [FlowRouter](https://github.com/veliovgroup/flow-router) client side router inside **[config/router.js](https://github.com/wekan/wekan/tree/main/config/router.js)**. +We're using [FlowRouter](https://github.com/kadirahq/flow-router) client side router inside **[config/router.js](https://github.com/wekan/wekan/tree/main/config/router.js)**. For accounts there is [AccountsTemplates](https://github.com/meteor-useraccounts) configured in **[config/accounts.js](https://github.com/wekan/wekan/tree/main/config/accounts.js)**. # Client @@ -183,5 +183,5 @@ Other files: # Contributions to this page -This documentation was contributed by [TNick](https://github.com/TNick) and [xet7](https://github.com/xet7) while Wekan was at commit [e2f768c](https://github.com/wekan/wekan/tree/e2f768c6a0f913b7c5f07695dce8cec692037255). +This documentation was contributed by [TNick](https://github.com/TNick) and [xet7](https://github.com/xet7) while Wekan was at commit [e2f768c](https://github.com/wekan/wekan/tree/e2f768c6a0f913b7c5f07695dce8cec692037255). Please add new files, fixes, updates, etc directly to this page. diff --git a/models/boards.js b/models/boards.js index 87321c96a..721e24c98 100644 --- a/models/boards.js +++ b/models/boards.js @@ -9,7 +9,6 @@ import { TYPE_TEMPLATE_CONTAINER, } from '/config/const'; import Users from "./users"; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; // const escapeForRegex = require('escape-string-regexp'); @@ -2209,7 +2208,7 @@ if (Meteor.isServer) { }); } }); - + /** * @operation add_board_label * @summary Add a label to a board diff --git a/models/cards.js b/models/cards.js index 1ac65b7c5..ec0173d49 100644 --- a/models/cards.js +++ b/models/cards.js @@ -8,7 +8,6 @@ import { } from '../config/const'; import Attachments, { fileStoreStrategyFactory } from "./attachments"; import { copyFile } from './lib/fileStoreStrategy.js'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; Cards = new Mongo.Collection('cards'); diff --git a/models/exporter.js b/models/exporter.js index 1537d23f3..b8fe68ba4 100644 --- a/models/exporter.js +++ b/models/exporter.js @@ -2,7 +2,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import moment from 'moment/min/moment-with-locales'; const Papa = require('papaparse'); import { TAPi18n } from '/imports/i18n'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; //const stringify = require('csv-stringify'); diff --git a/models/server/ExporterCardPDF.js b/models/server/ExporterCardPDF.js index 870b188cc..f3fde0f85 100644 --- a/models/server/ExporterCardPDF.js +++ b/models/server/ExporterCardPDF.js @@ -1,7 +1,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; // exporter maybe is broken since Gridfs introduced, add fs and path import { createWorkbook } from './createWorkbook'; -// import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; class ExporterCardPDF { constructor(boardId) { diff --git a/models/server/ExporterExcel.js b/models/server/ExporterExcel.js index d88b2e328..72120dddb 100644 --- a/models/server/ExporterExcel.js +++ b/models/server/ExporterExcel.js @@ -2,7 +2,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import moment from 'moment/min/moment-with-locales'; import { TAPi18n } from '/imports/i18n'; import { createWorkbook } from './createWorkbook'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; // exporter maybe is broken since Gridfs introduced, add fs and path diff --git a/models/settings.js b/models/settings.js index 9902d346d..c3f6b00d6 100644 --- a/models/settings.js +++ b/models/settings.js @@ -1,6 +1,5 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; //var nodemailer = require('nodemailer'); // Sandstorm context is detected using the METEOR_SETTINGS environment variable diff --git a/packages/kadira-flow-router/.gitignore b/packages/kadira-flow-router/.gitignore new file mode 100644 index 000000000..22ee0ccee --- /dev/null +++ b/packages/kadira-flow-router/.gitignore @@ -0,0 +1,3 @@ +.build* +*.browserify.js.cached +*.browserify.js.map diff --git a/packages/kadira-flow-router/.travis.yml b/packages/kadira-flow-router/.travis.yml new file mode 100644 index 000000000..5125066a4 --- /dev/null +++ b/packages/kadira-flow-router/.travis.yml @@ -0,0 +1,8 @@ +sudo: required +language: node_js +node_js: + - "0.10" +before_install: + - "curl -L http://git.io/ejPSng | /bin/sh" +env: + - TEST_COMMAND=meteor \ No newline at end of file diff --git a/packages/kadira-flow-router/CHANGELOG.md b/packages/kadira-flow-router/CHANGELOG.md new file mode 100644 index 000000000..80fd67080 --- /dev/null +++ b/packages/kadira-flow-router/CHANGELOG.md @@ -0,0 +1,155 @@ +# Changelog + +### v2.12.1 + +* Add NPM modules back. Fixes: [#602](https://github.com/kadirahq/flow-router/issues/602) + +### v2.12.0 + +* Update Fast Render to v2.14.0 + +### v2.11.0 + +* Add support for Meteor 1.3 RC-1. +* Removes browserify and get modules from Meteor 1.3. + +### v2.10.1 +* Fix the url generation for prefixed paths. See: [#508](https://github.com/kadirahq/flow-router/issues/508) + +### v2.10.0 +* Update few dependencies to the latest versions: pagejs, qs, cosmos:browserify + +### v2.9.0 +* Add FlowRouter.url() See: [#374](https://github.com/kadirahq/flow-router/pull/374) + +### v2.8.0 +* Allow to access options in groups as well. See: [#378](https://github.com/kadirahq/flow-router/pull/378) + +### v2.7.0 +* Add Path Prefix support. See: [#329](https://github.com/kadirahq/flow-router/pull/329) + +### v2.6.2 +* Now .current() sends a cloned version of the internal current object. Which prevent outside mutations to params and queryParams + +### v2.6.1 + +* Fix [#143](https://github.com/kadirahq/flow-router/issues/314). + This says that when we are doing a trigger redirect, + We won't get reactive changes like: `getRouteName()` + +### v2.6.0 +* Add hashbang support. See [#311](https://github.com/kadirahq/flow-router/pull/311) + +### v2.5.0 +* Add a stop callback on the triggers. See: [#306](https://github.com/kadirahq/flow-router/pull/306). + +### v2.4.0 + +* Add a name to the route groups. See: [#290](https://github.com/kadirahq/flow-router/pull/290) + +### v2.3.0 +* We've used `path` for both the current path and for the pathDef earlier. Now we differentiate it. See: [#272](https://github.com/kadirahq/flow-router/issues/272) and [#273](https://github.com/kadirahq/flow-router/pull/273) for more information. + +### v2.2.0 +* Add the first addOn api: FlowRouter.onRouteRegister(cb) + +### v2.1.1 +* There was an issue in IE9 support. We fix it with this version. + +### v2.1.0 +* Add IE9 Support. See this issue [#111](https://github.com/kadirahq/flow-router/issues/111) for more info. + +### v2.0.2 + +* Add missing queryParams object in the subscriptions method (with FR on the server) +* With that, [#237](https://github.com/kadirahq/flow-router/issues/237) is partially fixed. + +### v2.0.1 + +* Use pagejs.redirect() for our redirection process. +* Above fixes [#239](https://github.com/kadirahq/flow-router/issues/239) + +### v2.0.0 + +* Released 2.0 :) +* Now flow-router comes as `kadira:flow-router` +* Remove deprecated APIs + - `FlowRouter.reactiveCurrent()` + - Middlewares + - `FlowRouter.current().params.query` +* Follow the [migration guide](https://github.com/kadirahq/flow-router#migrating-into-20) for more information. + +### v1.18.0 + +* Implement idempotent routing on withReplaceState. See: [#197](https://github.com/meteorhacks/flow-router/issues/197) +* Add an [API](https://github.com/meteorhacks/flow-router#flowrouterwithtrailingslashfn) to set trailing slashes. + +### v1.17.2 +* Fix [#182](https://github.com/meteorhacks/flow-router/issues/182) - Now trigger's redirect function support `FlowRouter.go()` syntax. + +### v1.17.1 + +* Fix [#164](https://github.com/meteorhacks/flow-router/issues/164) - It's an issue when using `check` with flow router query params. +* Fix [#168](https://github.com/meteorhacks/flow-router/pull/168) - It's URL encoding issue. + +### v1.17.0 + +* Add an API called `FlowRouter.wait()` to wait the initialization and pass it back to the app. Fixes issue [180](https://github.com/meteorhacks/flow-router/issues/180). + +### v1.16.3 + +* Fix a crazy context switching issue. For more information see commit [6ca54cc](https://github.com/meteorhacks/flow-router/commit/6ca54cc7969b3a8aa71d63c98c99a20b175125a2) + +### v1.16.2 +* Fix issue [#167](https://github.com/meteorhacks/flow-router/issues/167) via [#175](https://github.com/meteorhacks/flow-router/pull/175) +* Fix [#176](https://github.com/meteorhacks/flow-router/issues/176) by the removal of `Tracker.flush` usage. + +### v1.16.1 +* Fix [issue](https://github.com/meteorhacks/flow-router/pull/173) of overwriting global triggers when written multiple times. + +### v1.16.0 + +* [Refactor](https://github.com/meteorhacks/flow-router/pull/172) triggers API for clean code +* Added [redirect](https://github.com/meteorhacks/flow-router#redirecting-with-triggers) functionality for triggers +* Now we are API complete for the 2.x release + +### v1.15.0 + +* Now all our routes are idempotent. +* If some one needs to re-run the route, he needs to use our `FlowRouter.reload()` API. + +### v1.14.1 + +* Fix regression came from v1.11.0. With that, `FlowRouter.go("/")` does not work. More information on [#147](https://github.com/meteorhacks/flow-router/issues/147). + +### v1.14.0 +* Bring browserify back with the updated version of `cosmos:browserify` which fixes some size issues. See [more info](https://github.com/meteorhacks/flow-router/issues/128#issuecomment-109799953). + +### v1.13.0 +* Remove browserified pagejs and qs dependency loading. With that we could reduce ~10kb of data size (without compression). We can look for a bower integration in the future. For now, here are the dependencies we have. + - page@1.6.3: https://github.com/visionmedia/page.js + - qs@3.1.0: https://github.com/hapijs/qs + +### v1.12.0 +* Add [`FlowRouter.withReplaceState`](https://github.com/meteorhacks/flow-router#flowrouterwithreplcaestatefn) api to use replaceState when changing routes via FlowRouter apis. + +### v1.11.0 +* Fix [#145](https://github.com/meteorhacks/flow-router/issues/145) by changing how safeToRun works. +* Add `FlowRouter.path()` to the server side +* Fix [#130](https://github.com/meteorhacks/flow-router/issues/130) + +### v1.10.0 +Add support for [triggers](https://github.com/meteorhacks/flow-router#triggers). This is something similar to middlewares but not as middlewares. Visit [here](https://github.com/meteorhacks/flow-router/pull/59) to learn about design decisions. + +_**Now, middlewares are deprecated.**_ + +### v1.9.0 +Fix [#120](https://github.com/meteorhacks/flow-router/issues/120) and added callback support for `FlowRouter.subsReady()`. + +### v1.8.0 + +This release comes with improvements to the reactive API. + +* Fixed [#77](https://github.com/meteorhacks/flow-router/issues/77), [#85](https://github.com/meteorhacks/flow-router/issues/85), [#95](https://github.com/meteorhacks/flow-router/issues/95), [#96](https://github.com/meteorhacks/flow-router/issues/96), [#103](https://github.com/meteorhacks/flow-router/issues/103) +* Add a new API called `FlowRouter.watchPathChange()` +* Deprecated `FlowRouter.reactiveCurrent()` in the favour of `FlowRouter.watchPathChange()` diff --git a/packages/kadira-flow-router/CONTRIBUTING.md b/packages/kadira-flow-router/CONTRIBUTING.md new file mode 100644 index 000000000..adb08f1b7 --- /dev/null +++ b/packages/kadira-flow-router/CONTRIBUTING.md @@ -0,0 +1,16 @@ +## Whether to submit an issue or not? + +We've very limited time to answer all the issues and respond them in a proper manner. +So, this repo's issue list only used to report **bugs** and **new features.** + +For any other questions, issues or asking for best practices use [Meteor Forums](https://forums.meteor.com/). +Even before you ask a question on Meteor Forums, make sure you read the [Meteor Routing Guide](https://kadira.io/academy/meteor-routing-guide). + +## Implementing Feature and Bug Fixes + +We are welcome and greedy for PRs. So, + +* If you wanna fix a bug, simply submit it. +* If you wanna implement feature or support with contributions, just drop a message to arunoda [at] kadira.io. + + diff --git a/packages/kadira-flow-router/LICENSE b/packages/kadira-flow-router/LICENSE new file mode 100644 index 000000000..6519acbfd --- /dev/null +++ b/packages/kadira-flow-router/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 MeteorHacks Pvt Ltd (Sri Lanka). + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/packages/kadira-flow-router/README.md b/packages/kadira-flow-router/README.md new file mode 100644 index 000000000..7e74eb100 --- /dev/null +++ b/packages/kadira-flow-router/README.md @@ -0,0 +1,777 @@ +# FlowRouter [![Build Status](https://travis-ci.org/kadirahq/flow-router.svg?branch=master)](https://travis-ci.org/kadirahq/flow-router) [![Stories in Ready](https://badge.waffle.io/kadirahq/flow-router.svg?label=doing&title=Activities)](http://waffle.io/kadirahq/flow-router) + +Forked for bug fixes + +Carefully Designed Client Side Router for Meteor. + +FlowRouter is a very simple router for Meteor. It does routing for client-side apps and does not handle rendering itself. + +It exposes a great API for changing the URL and reactively getting data from the URL. However, inside the router, it's not reactive. Most importantly, FlowRouter is designed with performance in mind and it focuses on what it does best: **routing**. + +> We've released 2.0 and follow this [migration guide](#migrating-into-20) if you are already using FlowRouter. + +## TOC + +* [Meteor Routing Guide](#meteor-routing-guide) +* [Getting Started](#getting-started) +* [Routes Definition](#routes-definition) +* [Group Routes](#group-routes) +* [Rendering and Layout Management](#rendering-and-layout-management) +* [Triggers](#triggers) +* [Not Found Routes](#not-found-routes) +* [API](#api) +* [Subscription Management](#subscription-management) +* [IE9 Support](#ie9-support) +* [Hashbang URLs](#hashbang-urls) +* [Prefixed paths](#prefixed-paths) +* [Add-ons](#add-ons) +* [Difference with Iron Router](#difference-with-iron-router) +* [Migrating into 2.0](#migrating-into-20) + +## Meteor Routing Guide + +[Meteor Routing Guide](https://kadira.io/academy/meteor-routing-guide) is a completed guide into **routing** and related topics in Meteor. It talks about how to use FlowRouter properly and use it with **Blaze and React**. It also shows how to manage **subscriptions** and implement **auth logic** in the view layer. + +[![Meteor Routing Guide](https://cldup.com/AxlPfoxXmR.png)](https://kadira.io/academy/meteor-routing-guide) + +## Getting Started + +Add FlowRouter to your app: + +~~~shell +meteor add kadira:flow-router +~~~ + +Let's write our first route (add this file to `lib/router.js`): + +~~~js +FlowRouter.route('/blog/:postId', { + action: function(params, queryParams) { + console.log("Yeah! We are on the post:", params.postId); + } +}); +~~~ + +Then visit `/blog/my-post-id` from the browser or invoke the following command from the browser console: + +~~~js +FlowRouter.go('/blog/my-post-id'); +~~~ + +Then you can see some messages printed in the console. + +## Routes Definition + +FlowRouter routes are very simple and based on the syntax of [path-to-regexp](https://github.com/pillarjs/path-to-regexp) which is used in both [Express](http://expressjs.com/) and `iron:router`. + +Here's the syntax for a simple route: + +~~~js +FlowRouter.route('/blog/:postId', { + // do some action for this route + action: function(params, queryParams) { + console.log("Params:", params); + console.log("Query Params:", queryParams); + }, + + name: "" // optional +}); +~~~ + +So, this route will be activated when you visit a url like below: + +~~~js +FlowRouter.go('/blog/my-post?comments=on&color=dark'); +~~~ + +After you've visit the route, this will be printed in the console: + +~~~ +Params: {postId: "my-post"} +Query Params: {comments: "on", color: "dark"} +~~~ + +For a single interaction, the router only runs once. That means, after you've visit a route, first it will call `triggers`, then `subscriptions` and finally `action`. After that happens, none of those methods will be called again for that route visit. + +You can define routes anywhere in the `client` directory. But, we recommend to add them in the `lib` directory. Then `fast-render` can detect subscriptions and send them for you (we'll talk about this is a moment). + +### Group Routes + +You can group routes for better route organization. Here's an example: + +~~~js +var adminRoutes = FlowRouter.group({ + prefix: '/admin', + name: 'admin', + triggersEnter: [function(context, redirect) { + console.log('running group triggers'); + }] +}); + +// handling /admin route +adminRoutes.route('/', { + action: function() { + BlazeLayout.render('componentLayout', {content: 'admin'}); + }, + triggersEnter: [function(context, redirect) { + console.log('running /admin trigger'); + }] +}); + +// handling /admin/posts +adminRoutes.route('/posts', { + action: function() { + BlazeLayout.render('componentLayout', {content: 'posts'}); + } +}); +~~~ + +**All of the options for the `FlowRouter.group()` are optional.** + +You can even have nested group routes as shown below: + +~~~js +var adminRoutes = FlowRouter.group({ + prefix: "/admin", + name: "admin" +}); + +var superAdminRoutes = adminRoutes.group({ + prefix: "/super", + name: "superadmin" +}); + +// handling /admin/super/post +superAdminRoutes.route('/post', { + action: function() { + + } +}); +~~~ + +You can determine which group the current route is in using: + +~~~js +FlowRouter.current().route.group.name +~~~ + +This can be useful for determining if the current route is in a specific group (e.g. *admin*, *public*, *loggedIn*) without needing to use prefixes if you don't want to. If it's a nested group, you can get the parent group's name with: + +~~~js +FlowRouter.current().route.group.parent.name +~~~ + +As with all current route properties, these are not reactive, but can be combined with `FlowRouter.watchPathChange()` to get group names reactively. + +## Rendering and Layout Management + +FlowRouter does not handle rendering or layout management. For that, you can use: + + * [Blaze Layout for Blaze](https://github.com/kadirahq/blaze-layout) + * [React Layout for React](https://github.com/kadirahq/meteor-react-layout) + +Then you can invoke the layout manager inside the `action` method in the router. + +~~~js +FlowRouter.route('/blog/:postId', { + action: function(params) { + BlazeLayout.render("mainLayout", {area: "blog"}); + } +}); +~~~ + +## Triggers + +Triggers are the way FlowRouter allows you to perform tasks before you **enter** into a route and after you **exit** from a route. + +#### Defining triggers for a route + +Here's how you can define triggers for a route: + +~~~js +FlowRouter.route('/home', { + // calls just before the action + triggersEnter: [trackRouteEntry], + action: function() { + // do something you like + }, + // calls when we decide to move to another route + // but calls before the next route started + triggersExit: [trackRouteClose] +}); + +function trackRouteEntry(context) { + // context is the output of `FlowRouter.current()` + Mixpanel.track("visit-to-home", context.queryParams); +} + +function trackRouteClose(context) { + Mixpanel.track("move-from-home", context.queryParams); +} +~~~ + +#### Defining triggers for a group route + +This is how you can define triggers on a group definition. + +~~~js +var adminRoutes = FlowRouter.group({ + prefix: '/admin', + triggersEnter: [trackRouteEntry], + triggersExit: [trackRouteEntry] +}); +~~~ + +> You can add triggers to individual routes in the group too. + +#### Defining Triggers Globally + +You can also define triggers globally. Here's how to do it: + +~~~js +FlowRouter.triggers.enter([cb1, cb2]); +FlowRouter.triggers.exit([cb1, cb2]); + +// filtering +FlowRouter.triggers.enter([trackRouteEntry], {only: ["home"]}); +FlowRouter.triggers.exit([trackRouteExit], {except: ["home"]}); +~~~ + +As you can see from the last two examples, you can filter routes using the `only` or `except` keywords. But, you can't use both `only` and `except` at once. + +> If you'd like to learn more about triggers and design decisions, visit [here](https://github.com/meteorhacks/flow-router/pull/59). + +#### Redirecting With Triggers + +You can redirect to a different route using triggers. You can do it from both enter and exit triggers. See how to do it: + +~~~js +FlowRouter.route('/', { + triggersEnter: [function(context, redirect) { + redirect('/some-other-path'); + }], + action: function(_params) { + throw new Error("this should not get called"); + } +}); +~~~ + +Every trigger callback comes with a second argument: a function you can use to redirect to a different route. Redirect also has few properties to make sure it's not blocking the router. + +* redirect must be called with an URL +* redirect must be called within the same event loop cycle (no async or called inside a Tracker) +* redirect cannot be called multiple times + +Check this [PR](https://github.com/meteorhacks/flow-router/pull/172) to learn more about our redirect API. + +#### Stopping the Callback With Triggers + +In some cases, you may need to stop the route callback from firing using triggers. You can do this in **before** triggers, using the third argument: the `stop` function. For example, you can check the prefix and if it fails, show the notFound layout and stop before the action fires. + +```js +var localeGroup = FlowRouter.group({ + prefix: '/:locale?', + triggersEnter: [localeCheck] +}); + +localeGroup.route('/login', { + action: function (params, queryParams) { + BlazeLayout.render('componentLayout', {content: 'login'}); + } +}); + +function localeCheck(context, redirect, stop) { + var locale = context.params.locale; + + if (locale !== undefined && locale !== 'fr') { + BlazeLayout.render('notFound'); + stop(); + } +} +``` + +> **Note**: When using the stop function, you should always pass the second **redirect** argument, even if you won't use it. + +## Not Found Routes + +You can configure Not Found routes like this: + +~~~js +FlowRouter.notFound = { + // Subscriptions registered here don't have Fast Render support. + subscriptions: function() { + + }, + action: function() { + + } +}; +~~~ + +## API + +FlowRouter has a rich API to help you to navigate the router and reactively get information from the router. + +#### FlowRouter.getParam(paramName); + +Reactive function which you can use to get a parameter from the URL. + +~~~js +// route def: /apps/:appId +// url: /apps/this-is-my-app + +var appId = FlowRouter.getParam("appId"); +console.log(appId); // prints "this-is-my-app" +~~~ + +#### FlowRouter.getQueryParam(queryStringKey); + +Reactive function which you can use to get a value from the queryString. + +~~~js +// route def: /apps/:appId +// url: /apps/this-is-my-app?show=yes&color=red + +var color = FlowRouter.getQueryParam("color"); +console.log(color); // prints "red" +~~~ + +#### FlowRouter.path(pathDef, params, queryParams) + +Generate a path from a path definition. Both `params` and `queryParams` are optional. + +Special characters in `params` and `queryParams` will be URL encoded. + +~~~js +var pathDef = "/blog/:cat/:id"; +var params = {cat: "met eor", id: "abc"}; +var queryParams = {show: "y+e=s", color: "black"}; + +var path = FlowRouter.path(pathDef, params, queryParams); +console.log(path); // prints "/blog/met%20eor/abc?show=y%2Be%3Ds&color=black" +~~~ + +If there are no params or queryParams, this will simply return the pathDef as it is. + +##### Using Route name instead of the pathDef + +You can also use the route's name instead of the pathDef. Then, FlowRouter will pick the pathDef from the given route. See the following example: + +~~~js +FlowRouter.route("/blog/:cat/:id", { + name: "blogPostRoute", + action: function(params) { + //... + } +}) + +var params = {cat: "meteor", id: "abc"}; +var queryParams = {show: "yes", color: "black"}; + +var path = FlowRouter.path("blogPostRoute", params, queryParams); +console.log(path); // prints "/blog/meteor/abc?show=yes&color=black" +~~~ + +#### FlowRouter.go(pathDef, params, queryParams); + +This will get the path via `FlowRouter.path` based on the arguments and re-route to that path. + +You can call `FlowRouter.go` like this as well: + +~~~js +FlowRouter.go("/blog"); +~~~ + + +#### FlowRouter.url(pathDef, params, queryParams) + +Just like `FlowRouter.path`, but gives the absolute url. (Uses `Meteor.absoluteUrl` behind the scenes.) + +#### FlowRouter.setParams(newParams) + +This will change the current params with the newParams and re-route to the new path. + +~~~js +// route def: /apps/:appId +// url: /apps/this-is-my-app?show=yes&color=red + +FlowRouter.setParams({appId: "new-id"}); +// Then the user will be redirected to the following path +// /apps/new-id?show=yes&color=red +~~~ + +#### FlowRouter.setQueryParams(newQueryParams) + +Just like `FlowRouter.setParams`, but for queryString params. + +To remove a query param set it to `null` like below: + +~~~js +FlowRouter.setQueryParams({paramToRemove: null}); +~~~ + +#### FlowRouter.getRouteName() + +To get the name of the route reactively. + +~~~js +Tracker.autorun(function() { + var routeName = FlowRouter.getRouteName(); + console.log("Current route name is: ", routeName); +}); +~~~ + +#### FlowRouter.current() + +Get the current state of the router. **This API is not reactive**. +If you need to watch the changes in the path simply use `FlowRouter.watchPathChange()`. + +This gives an object like this: + +~~~js +// route def: /apps/:appId +// url: /apps/this-is-my-app?show=yes&color=red + +var current = FlowRouter.current(); +console.log(current); + +// prints following object +// { +// path: "/apps/this-is-my-app?show=yes&color=red", +// params: {appId: "this-is-my-app"}, +// queryParams: {show: "yes", color: "red"} +// route: {pathDef: "/apps/:appId", name: "name-of-the-route"} +// } +~~~ + +#### FlowRouter.watchPathChange() + +Reactively watch the changes in the path. If you need to simply get the params or queryParams use dedicated APIs like `FlowRouter.getQueryParam()`. + +~~~js +Tracker.autorun(function() { + FlowRouter.watchPathChange(); + var currentContext = FlowRouter.current(); + // do anything with the current context + // or anything you wish +}); +~~~ + +#### FlowRouter.withReplaceState(fn) +Normally, all the route changes made via APIs like `FlowRouter.go` and `FlowRouter.setParams()` add a URL item to the browser history. For example, run the following code: + +~~~js +FlowRouter.setParams({id: "the-id-1"}); +FlowRouter.setParams({id: "the-id-2"}); +FlowRouter.setParams({id: "the-id-3"}); +~~~ + +Now you can hit the back button of your browser two times. This is normal behavior since users may click the back button and expect to see the previous state of the app. + +But sometimes, this is not something you want. You don't need to pollute the browser history. Then, you can use the following syntax. + +~~~js +FlowRouter.withReplaceState(function() { + FlowRouter.setParams({id: "the-id-1"}); + FlowRouter.setParams({id: "the-id-2"}); + FlowRouter.setParams({id: "the-id-3"}); +}); +~~~ + +Now, there is no item in the browser history. Just like `FlowRouter.setParams`, you can use any FlowRouter API inside `FlowRouter.withReplaceState`. + +> We named this function as `withReplaceState` because, replaceState is the underline API used for this functionality. Read more about [replace state & the history API](https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history). + +#### FlowRouter.reload() + +FlowRouter routes are idempotent. That means, even if you call `FlowRouter.go()` to the same URL multiple times, it only activates in the first run. This is also true for directly clicking on paths. + +So, if you really need to reload the route, this is the API you want. + +#### FlowRouter.wait() and FlowRouter.initialize() + +By default, FlowRouter initializes the routing process in a `Meteor.startup()` callback. This works for most of the apps. But, some apps have custom initializations and FlowRouter needs to initialize after that. + +So, that's where `FlowRouter.wait()` comes to save you. You need to call it directly inside your JavaScript file. After that, whenever your app is ready call `FlowRouter.initialize()`. + +eg:- + +~~~js +// file: app.js +FlowRouter.wait(); +WhenEverYourAppIsReady(function() { + FlowRouter.initialize(); +}); +~~~ + +For more information visit [issue #180](https://github.com/meteorhacks/flow-router/issues/180). + +#### FlowRouter.onRouteRegister(cb) + +This API is specially designed for add-on developers. They can listen for any registered route and add custom functionality to FlowRouter. This works on both server and client alike. + +~~~js +FlowRouter.onRouteRegister(function(route) { + // do anything with the route object + console.log(route); +}); +~~~ + +Let's say a user defined a route like this: + +~~~js +FlowRouter.route('/blog/:post', { + name: 'postList', + triggersEnter: [function() {}], + subscriptions: function() {}, + action: function() {}, + triggersExit: [function() {}], + customField: 'customName' +}); +~~~ + +Then the route object will be something like this: + +~~~js +{ + pathDef: '/blog/:post', + name: 'postList', + options: {customField: 'customName'} +} +~~~ + +So, it's not the internal route object we are using. + +## Subscription Management + +For Subscription Management, we highly suggest you to follow [Template/Component level subscriptions](https://kadira.io/academy/meteor-routing-guide/content/subscriptions-and-data-management). Visit this [guide](https://kadira.io/academy/meteor-routing-guide/content/subscriptions-and-data-management) for that. + +FlowRouter also has it's own subscription registration mechanism. We will remove this in version 3.0. We don't remove or deprecate it in version 2.x because this is the easiest way to implement FastRender support for your app. In 3.0 we've better support for FastRender with Server Side Rendering. + +FlowRouter only deals with registration of subscriptions. It does not wait until subscription becomes ready. This is how to register a subscription. + +~~~js +FlowRouter.route('/blog/:postId', { + subscriptions: function(params, queryParams) { + this.register('myPost', Meteor.subscribe('blogPost', params.postId)); + } +}); +~~~ + +We can also register global subscriptions like this: + +~~~js +FlowRouter.subscriptions = function() { + this.register('myCourses', Meteor.subscribe('courses')); +}; +~~~ + +All these global subscriptions run on every route. So, pay special attention to names when registering subscriptions. + +After you've registered your subscriptions, you can reactively check for the status of those subscriptions like this: + +~~~js +Tracker.autorun(function() { + console.log("Is myPost ready?:", FlowRouter.subsReady("myPost")); + console.log("Are all subscriptions ready?:", FlowRouter.subsReady()); +}); +~~~ + +So, you can use `FlowRouter.subsReady` inside template helpers to show the loading status and act accordingly. + +### FlowRouter.subsReady() with a callback + +Sometimes, we need to use `FlowRouter.subsReady()` in places where an autorun is not available. One such example is inside an event handler. For such places, we can use the callback API of `FlowRouter.subsReady()`. + +~~~js +Template.myTemplate.events({ + "click #id": function(){ + FlowRouter.subsReady("myPost", function() { + // do something + }); + } +}); +~~~ + +> Arunoda has discussed more about Subscription Management in FlowRouter in [this](https://meteorhacks.com/flow-router-and-subscription-management.html#subscription-management) blog post about [FlowRouter and Subscription Management](https://meteorhacks.com/flow-router-and-subscription-management.html). + +> He's showing how to build an app like this: + +>![FlowRouter's Subscription Management](https://cldup.com/esLzM8cjEL.gif) + +#### Fast Render +FlowRouter has built in support for [Fast Render](https://github.com/meteorhacks/fast-render). + +- `meteor add meteorhacks:fast-render` +- Put `router.js` in a shared location. We suggest `lib/router.js`. + +You can exclude Fast Render support by wrapping the subscription registration in an `isClient` block: + +~~~js +FlowRouter.route('/blog/:postId', { + subscriptions: function(params, queryParams) { + // using Fast Render + this.register('myPost', Meteor.subscribe('blogPost', params.postId)); + + // not using Fast Render + if(Meteor.isClient) { + this.register('data', Meteor.subscribe('bootstrap-data'); + } + } +}); +~~~ + +#### Subscription Caching + +You can also use [Subs Manager](https://github.com/meteorhacks/subs-manager) for caching subscriptions on the client. We haven't done anything special to make it work. It should work as it works with other routers. + +## IE9 Support + +FlowRouter has IE9 support. But it does not ship the **HTML5 history polyfill** out of the box. That's because most apps do not require it. + +If you need to support IE9, add the **HTML5 history polyfill** with the following package. + +~~~shell +meteor add tomwasd:history-polyfill +~~~ + +## Hashbang URLs + +To enable hashbang urls like `mydomain.com/#!/mypath` simple set the `hashbang` option to `true` in the initialize function: + +~~~js +// file: app.js +FlowRouter.wait(); +WhenEverYourAppIsReady(function() { + FlowRouter.initialize({hashbang: true}); +}); +~~~ + +## Prefixed paths + +In cases you wish to run multiple web application on the same domain name, you’ll probably want to serve your particular meteor application under a sub-path (eg `example.com/myapp`). In this case simply include the path prefix in the meteor `ROOT_URL` environment variable and FlowRouter will handle it transparently without any additional configuration. + +## Add-ons + +Router is a base package for an app. Other projects like [useraccounts](http://useraccounts.meteor.com/) should have support for FlowRouter. Otherwise, it's hard to use FlowRouter in a real project. Now a lot of packages have [started to support FlowRouter](https://kadira.io/blog/meteor/addon-packages-for-flowrouter). + +So, you can use your your favorite package with FlowRouter as well. If not, there is an [easy process](https://kadira.io/blog/meteor/addon-packages-for-flowrouter#what-if-project-xxx-still-doesn-t-support-flowrouter-) to convert them to FlowRouter. + +**Add-on API** + +We have also released a [new API](https://github.com/kadirahq/flow-router#flowrouteronrouteregistercb) to support add-on developers. With that add-on packages can get a notification, when the user created a route in their app. + +If you've more ideas for the add-on API, [let us know](https://github.com/kadirahq/flow-router/issues). + +## Difference with Iron Router + +FlowRouter and Iron Router are two different routers. Iron Router tries to be a full featured solution. It tries to do everything including routing, subscriptions, rendering and layout management. + +FlowRouter is a minimalistic solution focused on routing with UI performance in mind. It exposes APIs for related functionality. + +Let's learn more about the differences: + +### Rendering + +FlowRouter doesn't handle rendering. By decoupling rendering from the router it's possible to use any rendering framework, such as [Blaze Layout](https://github.com/kadirahq/blaze-layout) to render with Blaze's Dynamic Templates. Rendering calls are made in the the route's action. We have a layout manager for [React](https://github.com/kadirahq/meteor-react-layout) as well. + +### Subscriptions + +With FlowRouter, we highly suggest using template/component layer subscriptions. But, if you need to do routing in the router layer, FlowRouter has [subscription registration](#subscription-management) mechanism. Even with that, FlowRouter never waits for the subscriptions and view layer to do it. + +### Reactive Content + +In Iron Router you can use reactive content inside the router, but any hook or method can re-run in an unpredictable manner. FlowRouter limits reactive data sources to a single run; when it is first called. + +We think that's the way to go. Router is just a user action. We can work with reactive content in the rendering layer. + +### router.current() is evil + +`Router.current()` is evil. Why? Let's look at following example. Imagine we have a route like this in our app: + +~~~ +/apps/:appId/:section +~~~ + +Now let's say, we need to get `appId` from the URL. Then we will do, something like this in Iron Router. + +~~~js +Templates['foo'].helpers({ + "someData": function() { + var appId = Router.current().params.appId; + return doSomething(appId); + } +}); +~~~ + +Let's say we changed `:section` in the route. Then the above helper also gets rerun. If we add a query param to the URL, it gets rerun. That's because `Router.current()` looks for changes in the route(or URL). But in any of above cases, `appId` didn't get changed. + +Because of this, a lot parts of our app get re-run and re-rendered. This creates unpredictable rendering behavior in our app. + +FlowRouter fixes this issue by providing the `Router.getParam()` API. See how to use it: + +~~~js +Templates['foo'].helpers({ + "someData": function() { + var appId = FlowRouter.getParam('appId'); + return doSomething(appId); + } +}); +~~~ + +### No data context + +FlowRouter does not have a data context. Data context has the same problem as reactive `.current()`. We believe, it'll possible to get data directly in the template (component) layer. + +### Built in Fast Render Support + +FlowRouter has built in [Fast Render](https://github.com/meteorhacks/fast-render) support. Just add Fast Render to your app and it'll work. Nothing to change in the router. + +For more information check [docs](#fast-render). + +### Server Side Routing + +FlowRouter is a client side router and it **does not** support server side routing at all. But `subscriptions` run on the server to enable Fast Render support. + +#### Reason behind that + +Meteor is not a traditional framework where you can send HTML directly from the server. Meteor needs to send a special set of HTML to the client initially. So, you can't directly send something to the client yourself. + +Also, in the server we need look for different things compared with the client. For example: + +* In the server we have to deal with headers. +* In the server we have to deal with methods like `GET`, `POST`, etc. +* In the server we have Cookies. + +So, it's better to use a dedicated server-side router like [`meteorhacks:picker`](https://github.com/meteorhacks/picker). It supports connect and express middlewares and has a very easy to use route syntax. + +### Server Side Rendering + +FlowRouter 3.0 will have server side rendering support. We've already started the initial version and check our [`ssr`](https://github.com/meteorhacks/flow-router/tree/ssr) branch for that. + +It's currently very usable and Kadira already using it for + +### Better Initial Loading Support + +In Meteor, we have to wait until all the JS and other resources send before rendering anything. This is an issue. In 3.0, with the support from Server Side Rendering we are going to fix it. + +## Migrating into 2.0 + +Migrating into version 2.0 is easy and you don't need to change any application code since you are already using 2.0 features and the APIs. In 2.0, we've changed names and removed some deprecated APIs. + +Here are the steps to migrate your app into 2.0. + +#### Use the New FlowRouter Package +* Now FlowRouter comes as `kadira:flow-router` +* So, remove `meteorhacks:flow-router` with : `meteor remove meteorhacks:flow-router` +* Then, add `kadira:flow-router` with `meteor add kadira:flow-router` + +#### Change FlowLayout into BlazeLayout +* We've also renamed FlowLayout as [BlazeLayout](https://github.com/kadirahq/blaze-layout). +* So, remove `meteorhacks:flow-layout` and add `kadira:blaze-layout` instead. +* You need to use `BlazeLayout.render()` instead of `FlowLayout.render()` + +#### Stop using deprecated Apis +* There is no middleware support. Use triggers instead. +* There is no API called `.reactiveCurrent()`, use `.watchPathChange()` instead. +* Earlier, you can access query params with `FlowRouter.current().params.query`. But, now you can't do that. Use `FlowRouter.current().queryParams` instead. diff --git a/packages/kadira-flow-router/client/_init.js b/packages/kadira-flow-router/client/_init.js new file mode 100644 index 000000000..a18fdc897 --- /dev/null +++ b/packages/kadira-flow-router/client/_init.js @@ -0,0 +1,11 @@ +// Export Router Instance +FlowRouter = new Router(); +FlowRouter.Router = Router; +FlowRouter.Route = Route; + +// Initialize FlowRouter +Meteor.startup(function () { + if(!FlowRouter._askedToWait) { + FlowRouter.initialize(); + } +}); diff --git a/packages/kadira-flow-router/client/group.js b/packages/kadira-flow-router/client/group.js new file mode 100644 index 000000000..b93296bc2 --- /dev/null +++ b/packages/kadira-flow-router/client/group.js @@ -0,0 +1,57 @@ +Group = function(router, options, parent) { + options = options || {}; + + if (options.prefix && !/^\/.*/.test(options.prefix)) { + var message = "group's prefix must start with '/'"; + throw new Error(message); + } + + this._router = router; + this.prefix = options.prefix || ''; + this.name = options.name; + this.options = options; + + this._triggersEnter = options.triggersEnter || []; + this._triggersExit = options.triggersExit || []; + this._subscriptions = options.subscriptions || Function.prototype; + + this.parent = parent; + if (this.parent) { + this.prefix = parent.prefix + this.prefix; + + this._triggersEnter = parent._triggersEnter.concat(this._triggersEnter); + this._triggersExit = this._triggersExit.concat(parent._triggersExit); + } +}; + +Group.prototype.route = function(pathDef, options, group) { + options = options || {}; + + if (!/^\/.*/.test(pathDef)) { + var message = "route's path must start with '/'"; + throw new Error(message); + } + + group = group || this; + pathDef = this.prefix + pathDef; + + var triggersEnter = options.triggersEnter || []; + options.triggersEnter = this._triggersEnter.concat(triggersEnter); + + var triggersExit = options.triggersExit || []; + options.triggersExit = triggersExit.concat(this._triggersExit); + + return this._router.route(pathDef, options, group); +}; + +Group.prototype.group = function(options) { + return new Group(this._router, options, this); +}; + +Group.prototype.callSubscriptions = function(current) { + if (this.parent) { + this.parent.callSubscriptions(current); + } + + this._subscriptions.call(current.route, current.params, current.queryParams); +}; diff --git a/packages/kadira-flow-router/client/modules.js b/packages/kadira-flow-router/client/modules.js new file mode 100644 index 000000000..7b734f449 --- /dev/null +++ b/packages/kadira-flow-router/client/modules.js @@ -0,0 +1,2 @@ +page = require('page'); +qs = require('qs'); diff --git a/packages/kadira-flow-router/client/route.js b/packages/kadira-flow-router/client/route.js new file mode 100644 index 000000000..b82e97213 --- /dev/null +++ b/packages/kadira-flow-router/client/route.js @@ -0,0 +1,125 @@ +Route = function(router, pathDef, options, group) { + options = options || {}; + + this.options = options; + this.pathDef = pathDef + + // Route.path is deprecated and will be removed in 3.0 + this.path = pathDef; + + if (options.name) { + this.name = options.name; + } + + this._action = options.action || Function.prototype; + this._subscriptions = options.subscriptions || Function.prototype; + this._triggersEnter = options.triggersEnter || []; + this._triggersExit = options.triggersExit || []; + this._subsMap = {}; + this._router = router; + + this._params = new ReactiveDict(); + this._queryParams = new ReactiveDict(); + this._routeCloseDep = new Tracker.Dependency(); + + // tracks the changes in the URL + this._pathChangeDep = new Tracker.Dependency(); + + this.group = group; +}; + +Route.prototype.clearSubscriptions = function() { + this._subsMap = {}; +}; + +Route.prototype.register = function(name, sub, options) { + this._subsMap[name] = sub; +}; + + +Route.prototype.getSubscription = function(name) { + return this._subsMap[name]; +}; + + +Route.prototype.getAllSubscriptions = function() { + return this._subsMap; +}; + +Route.prototype.callAction = function(current) { + var self = this; + self._action(current.params, current.queryParams); +}; + +Route.prototype.callSubscriptions = function(current) { + this.clearSubscriptions(); + if (this.group) { + this.group.callSubscriptions(current); + } + + this._subscriptions(current.params, current.queryParams); +}; + +Route.prototype.getRouteName = function() { + this._routeCloseDep.depend(); + return this.name; +}; + +Route.prototype.getParam = function(key) { + this._routeCloseDep.depend(); + return this._params.get(key); +}; + +Route.prototype.getQueryParam = function(key) { + this._routeCloseDep.depend(); + return this._queryParams.get(key); +}; + +Route.prototype.watchPathChange = function() { + this._pathChangeDep.depend(); +}; + +Route.prototype.registerRouteClose = function() { + this._params = new ReactiveDict(); + this._queryParams = new ReactiveDict(); + this._routeCloseDep.changed(); + this._pathChangeDep.changed(); +}; + +Route.prototype.registerRouteChange = function(currentContext, routeChanging) { + // register params + var params = currentContext.params; + this._updateReactiveDict(this._params, params); + + // register query params + var queryParams = currentContext.queryParams; + this._updateReactiveDict(this._queryParams, queryParams); + + // if the route is changing, we need to defer triggering path changing + // if we did this, old route's path watchers will detect this + // Real issue is, above watcher will get removed with the new route + // So, we don't need to trigger it now + // We are doing it on the route close event. So, if they exists they'll + // get notify that + if(!routeChanging) { + this._pathChangeDep.changed(); + } +}; + +Route.prototype._updateReactiveDict = function(dict, newValues) { + var currentKeys = _.keys(newValues); + var oldKeys = _.keys(dict.keyDeps); + + // set new values + // params is an array. So, _.each(params) does not works + // to iterate params + _.each(currentKeys, function(key) { + dict.set(key, newValues[key]); + }); + + // remove keys which does not exisits here + var removedKeys = _.difference(oldKeys, currentKeys); + _.each(removedKeys, function(key) { + dict.set(key, undefined); + }); +}; diff --git a/packages/kadira-flow-router/client/router.js b/packages/kadira-flow-router/client/router.js new file mode 100644 index 000000000..ae91751f2 --- /dev/null +++ b/packages/kadira-flow-router/client/router.js @@ -0,0 +1,587 @@ +Router = function () { + var self = this; + this.globals = []; + this.subscriptions = Function.prototype; + + this._tracker = this._buildTracker(); + this._current = {}; + + // tracks the current path change + this._onEveryPath = new Tracker.Dependency(); + + this._globalRoute = new Route(this); + + // holds onRoute callbacks + this._onRouteCallbacks = []; + + // if _askedToWait is true. We don't automatically start the router + // in Meteor.startup callback. (see client/_init.js) + // Instead user need to call `.initialize() + this._askedToWait = false; + this._initialized = false; + this._triggersEnter = []; + this._triggersExit = []; + this._routes = []; + this._routesMap = {}; + this._updateCallbacks(); + this.notFound = this.notfound = null; + // indicate it's okay (or not okay) to run the tracker + // when doing subscriptions + // using a number and increment it help us to support FlowRouter.go() + // and legitimate reruns inside tracker on the same event loop. + // this is a solution for #145 + this.safeToRun = 0; + + // Meteor exposes to the client the path prefix that was defined using the + // ROOT_URL environement variable on the server using the global runtime + // configuration. See #315. + this._basePath = __meteor_runtime_config__.ROOT_URL_PATH_PREFIX || ''; + + // this is a chain contains a list of old routes + // most of the time, there is only one old route + // but when it's the time for a trigger redirect we've a chain + this._oldRouteChain = []; + + this.env = { + replaceState: new Meteor.EnvironmentVariable(), + reload: new Meteor.EnvironmentVariable(), + trailingSlash: new Meteor.EnvironmentVariable() + }; + + // redirect function used inside triggers + this._redirectFn = function(pathDef, fields, queryParams) { + if (/^http(s)?:\/\//.test(pathDef)) { + var message = "Redirects to URLs outside of the app are not supported in this version of Flow Router. Use 'window.location = yourUrl' instead"; + throw new Error(message); + } + self.withReplaceState(function() { + var path = FlowRouter.path(pathDef, fields, queryParams); + self._page.redirect(path); + }); + }; + this._initTriggersAPI(); +}; + +Router.prototype.route = function(pathDef, options, group) { + if (!/^\/.*/.test(pathDef)) { + var message = "route's path must start with '/'"; + throw new Error(message); + } + + options = options || {}; + var self = this; + var route = new Route(this, pathDef, options, group); + + // calls when the page route being activates + route._actionHandle = function (context, next) { + var oldRoute = self._current.route; + self._oldRouteChain.push(oldRoute); + + var queryParams = self._qs.parse(context.querystring); + // _qs.parse() gives us a object without prototypes, + // created with Object.create(null) + // Meteor's check doesn't play nice with it. + // So, we need to fix it by cloning it. + // see more: https://github.com/meteorhacks/flow-router/issues/164 + queryParams = JSON.parse(JSON.stringify(queryParams)); + + self._current = { + path: context.path, + context: context, + params: context.params, + queryParams: queryParams, + route: route, + oldRoute: oldRoute + }; + + // we need to invalidate if all the triggers have been completed + // if not that means, we've been redirected to another path + // then we don't need to invalidate + var afterAllTriggersRan = function() { + self._invalidateTracker(); + }; + + var triggers = self._triggersEnter.concat(route._triggersEnter); + Triggers.runTriggers( + triggers, + self._current, + self._redirectFn, + afterAllTriggersRan + ); + }; + + // calls when you exit from the page js route + route._exitHandle = function(context, next) { + var triggers = self._triggersExit.concat(route._triggersExit); + Triggers.runTriggers( + triggers, + self._current, + self._redirectFn, + next + ); + }; + + this._routes.push(route); + if (options.name) { + this._routesMap[options.name] = route; + } + + this._updateCallbacks(); + this._triggerRouteRegister(route); + + return route; +}; + +Router.prototype.group = function(options) { + return new Group(this, options); +}; + +Router.prototype.path = function(pathDef, fields, queryParams) { + if (this._routesMap[pathDef]) { + pathDef = this._routesMap[pathDef].pathDef; + } + + var path = ""; + + // Prefix the path with the router global prefix + if (this._basePath) { + path += "/" + this._basePath + "/"; + } + + fields = fields || {}; + var regExp = /(:[\w\(\)\\\+\*\.\?]+)+/g; + path += pathDef.replace(regExp, function(key) { + var firstRegexpChar = key.indexOf("("); + // get the content behind : and (\\d+/) + key = key.substring(1, (firstRegexpChar > 0)? firstRegexpChar: undefined); + // remove +?* + key = key.replace(/[\+\*\?]+/g, ""); + + // this is to allow page js to keep the custom characters as it is + // we need to encode 2 times otherwise "/" char does not work properly + // So, in that case, when I includes "/" it will think it's a part of the + // route. encoding 2times fixes it + return encodeURIComponent(encodeURIComponent(fields[key] || "")); + }); + + // Replace multiple slashes with single slash + path = path.replace(/\/\/+/g, "/"); + + // remove trailing slash + // but keep the root slash if it's the only one + path = path.match(/^\/{1}$/) ? path: path.replace(/\/$/, ""); + + // explictly asked to add a trailing slash + if(this.env.trailingSlash.get() && _.last(path) !== "/") { + path += "/"; + } + + var strQueryParams = this._qs.stringify(queryParams || {}); + if(strQueryParams) { + path += "?" + strQueryParams; + } + + return path; +}; + +Router.prototype.go = function(pathDef, fields, queryParams) { + var path = this.path(pathDef, fields, queryParams); + + var useReplaceState = this.env.replaceState.get(); + if(useReplaceState) { + this._page.replace(path); + } else { + this._page(path); + } +}; + +Router.prototype.reload = function() { + var self = this; + + self.env.reload.withValue(true, function() { + self._page.replace(self._current.path); + }); +}; + +Router.prototype.redirect = function(path) { + this._page.redirect(path); +}; + +Router.prototype.setParams = function(newParams) { + if(!this._current.route) {return false;} + + var pathDef = this._current.route.pathDef; + var existingParams = this._current.params; + var params = {}; + _.each(_.keys(existingParams), function(key) { + params[key] = existingParams[key]; + }); + + params = _.extend(params, newParams); + var queryParams = this._current.queryParams; + + this.go(pathDef, params, queryParams); + return true; +}; + +Router.prototype.setQueryParams = function(newParams) { + if(!this._current.route) {return false;} + + var queryParams = _.clone(this._current.queryParams); + _.extend(queryParams, newParams); + + for (var k in queryParams) { + if (queryParams[k] === null || queryParams[k] === undefined) { + delete queryParams[k]; + } + } + + var pathDef = this._current.route.pathDef; + var params = this._current.params; + this.go(pathDef, params, queryParams); + return true; +}; + +// .current is not reactive +// This is by design. use .getParam() instead +// If you really need to watch the path change, use .watchPathChange() +Router.prototype.current = function() { + // We can't trust outside, that's why we clone this + // Anyway, we can't clone the whole object since it has non-jsonable values + // That's why we clone what's really needed. + var current = _.clone(this._current); + current.queryParams = EJSON.clone(current.queryParams); + current.params = EJSON.clone(current.params); + return current; +}; + +// Implementing Reactive APIs +var reactiveApis = [ + 'getParam', 'getQueryParam', + 'getRouteName', 'watchPathChange' +]; +reactiveApis.forEach(function(api) { + Router.prototype[api] = function(arg1) { + // when this is calling, there may not be any route initiated + // so we need to handle it + var currentRoute = this._current.route; + if(!currentRoute) { + this._onEveryPath.depend(); + return; + } + + // currently, there is only one argument. If we've more let's add more args + // this is not clean code, but better in performance + return currentRoute[api].call(currentRoute, arg1); + }; +}); + +Router.prototype.subsReady = function() { + var callback = null; + var args = _.toArray(arguments); + + if (typeof _.last(args) === "function") { + callback = args.pop(); + } + + var currentRoute = this.current().route; + var globalRoute = this._globalRoute; + + // we need to depend for every route change and + // rerun subscriptions to check the ready state + this._onEveryPath.depend(); + + if(!currentRoute) { + return false; + } + + var subscriptions; + if(args.length === 0) { + subscriptions = _.values(globalRoute.getAllSubscriptions()); + subscriptions = subscriptions.concat(_.values(currentRoute.getAllSubscriptions())); + } else { + subscriptions = _.map(args, function(subName) { + return globalRoute.getSubscription(subName) || currentRoute.getSubscription(subName); + }); + } + + var isReady = function() { + var ready = _.every(subscriptions, function(sub) { + return sub && sub.ready(); + }); + + return ready; + }; + + if (callback) { + Tracker.autorun(function(c) { + if (isReady()) { + callback(); + c.stop(); + } + }); + } else { + return isReady(); + } +}; + +Router.prototype.withReplaceState = function(fn) { + return this.env.replaceState.withValue(true, fn); +}; + +Router.prototype.withTrailingSlash = function(fn) { + return this.env.trailingSlash.withValue(true, fn); +}; + +Router.prototype._notfoundRoute = function(context) { + this._current = { + path: context.path, + context: context, + params: [], + queryParams: {}, + }; + + // XXX this.notfound kept for backwards compatibility + this.notFound = this.notFound || this.notfound; + if(!this.notFound) { + console.error("There is no route for the path:", context.path); + return; + } + + this._current.route = new Route(this, "*", this.notFound); + this._invalidateTracker(); +}; + +Router.prototype.initialize = function(options) { + options = options || {}; + + if(this._initialized) { + throw new Error("FlowRouter is already initialized"); + } + + var self = this; + this._updateCallbacks(); + + // Implementing idempotent routing + // by overriding page.js`s "show" method. + // Why? + // It is impossible to bypass exit triggers, + // because they execute before the handler and + // can not know what the next path is, inside exit trigger. + // + // we need override both show, replace to make this work + // since we use redirect when we are talking about withReplaceState + _.each(['show', 'replace'], function(fnName) { + var original = self._page[fnName]; + self._page[fnName] = function(path, state, dispatch, push) { + var reload = self.env.reload.get(); + if (!reload && self._current.path === path) { + return; + } + + original.call(this, path, state, dispatch, push); + }; + }); + + // this is very ugly part of pagejs and it does decoding few times + // in unpredicatable manner. See #168 + // this is the default behaviour and we need keep it like that + // we are doing a hack. see .path() + this._page.base(this._basePath); + this._page({ + decodeURLComponents: true, + hashbang: !!options.hashbang + }); + + this._initialized = true; +}; + +Router.prototype._buildTracker = function() { + var self = this; + + // main autorun function + var tracker = Tracker.autorun(function () { + if(!self._current || !self._current.route) { + return; + } + + // see the definition of `this._processingContexts` + var currentContext = self._current; + var route = currentContext.route; + var path = currentContext.path; + + if(self.safeToRun === 0) { + var message = + "You can't use reactive data sources like Session" + + " inside the `.subscriptions` method!"; + throw new Error(message); + } + + // We need to run subscriptions inside a Tracker + // to stop subs when switching between routes + // But we don't need to run this tracker with + // other reactive changes inside the .subscription method + // We tackle this with the `safeToRun` variable + self._globalRoute.clearSubscriptions(); + self.subscriptions.call(self._globalRoute, path); + route.callSubscriptions(currentContext); + + // otherwise, computations inside action will trigger to re-run + // this computation. which we do not need. + Tracker.nonreactive(function() { + var isRouteChange = currentContext.oldRoute !== currentContext.route; + var isFirstRoute = !currentContext.oldRoute; + // first route is not a route change + if(isFirstRoute) { + isRouteChange = false; + } + + // Clear oldRouteChain just before calling the action + // We still need to get a copy of the oldestRoute first + // It's very important to get the oldest route and registerRouteClose() it + // See: https://github.com/kadirahq/flow-router/issues/314 + var oldestRoute = self._oldRouteChain[0]; + self._oldRouteChain = []; + + currentContext.route.registerRouteChange(currentContext, isRouteChange); + route.callAction(currentContext); + + Tracker.afterFlush(function() { + self._onEveryPath.changed(); + if(isRouteChange) { + // We need to trigger that route (definition itself) has changed. + // So, we need to re-run all the register callbacks to current route + // This is pretty important, otherwise tracker + // can't identify new route's items + + // We also need to afterFlush, otherwise this will re-run + // helpers on templates which are marked for destroying + if(oldestRoute) { + oldestRoute.registerRouteClose(); + } + } + }); + }); + + self.safeToRun--; + }); + + return tracker; +}; + +Router.prototype._invalidateTracker = function() { + var self = this; + this.safeToRun++; + this._tracker.invalidate(); + // After the invalidation we need to flush to make changes imediately + // otherwise, we have face some issues context mix-maches and so on. + // But there are some cases we can't flush. So we need to ready for that. + + // we clearly know, we can't flush inside an autorun + // this may leads some issues on flow-routing + // we may need to do some warning + if(!Tracker.currentComputation) { + // Still there are some cases where we can't flush + // eg:- when there is a flush currently + // But we've no public API or hacks to get that state + // So, this is the only solution + try { + Tracker.flush(); + } catch(ex) { + // only handling "while flushing" errors + if(!/Tracker\.flush while flushing/.test(ex.message)) { + return; + } + + // XXX: fix this with a proper solution by removing subscription mgt. + // from the router. Then we don't need to run invalidate using a tracker + + // this happens when we are trying to invoke a route change + // with inside a route chnage. (eg:- Template.onCreated) + // Since we use page.js and tracker, we don't have much control + // over this process. + // only solution is to defer route execution. + + // It's possible to have more than one path want to defer + // But, we only need to pick the last one. + // self._nextPath = self._current.path; + Meteor.defer(function() { + var path = self._nextPath; + if(!path) { + return; + } + + delete self._nextPath; + self.env.reload.withValue(true, function() { + self.go(path); + }); + }); + } + } +}; + +Router.prototype._updateCallbacks = function () { + var self = this; + + self._page.callbacks = []; + self._page.exits = []; + + _.each(self._routes, function(route) { + self._page(route.pathDef, route._actionHandle); + self._page.exit(route.pathDef, route._exitHandle); + }); + + self._page("*", function(context) { + self._notfoundRoute(context); + }); +}; + +Router.prototype._initTriggersAPI = function() { + var self = this; + this.triggers = { + enter: function(triggers, filter) { + triggers = Triggers.applyFilters(triggers, filter); + if(triggers.length) { + self._triggersEnter = self._triggersEnter.concat(triggers); + } + }, + + exit: function(triggers, filter) { + triggers = Triggers.applyFilters(triggers, filter); + if(triggers.length) { + self._triggersExit = self._triggersExit.concat(triggers); + } + } + }; +}; + +Router.prototype.wait = function() { + if(this._initialized) { + throw new Error("can't wait after FlowRouter has been initialized"); + } + + this._askedToWait = true; +}; + +Router.prototype.onRouteRegister = function(cb) { + this._onRouteCallbacks.push(cb); +}; + +Router.prototype._triggerRouteRegister = function(currentRoute) { + // We should only need to send a safe set of fields on the route + // object. + // This is not to hide what's inside the route object, but to show + // these are the public APIs + var routePublicApi = _.pick(currentRoute, 'name', 'pathDef', 'path'); + var omittingOptionFields = [ + 'triggersEnter', 'triggersExit', 'action', 'subscriptions', 'name' + ]; + routePublicApi.options = _.omit(currentRoute.options, omittingOptionFields); + + _.each(this._onRouteCallbacks, function(cb) { + cb(routePublicApi); + }); +}; + +Router.prototype._page = page; +Router.prototype._qs = qs; diff --git a/packages/kadira-flow-router/client/triggers.js b/packages/kadira-flow-router/client/triggers.js new file mode 100644 index 000000000..b1ae7197e --- /dev/null +++ b/packages/kadira-flow-router/client/triggers.js @@ -0,0 +1,116 @@ +// a set of utility functions for triggers + +Triggers = {}; + +// Apply filters for a set of triggers +// @triggers - a set of triggers +// @filter - filter with array fileds with `only` and `except` +// support only either `only` or `except`, but not both +Triggers.applyFilters = function(triggers, filter) { + if(!(triggers instanceof Array)) { + triggers = [triggers]; + } + + if(!filter) { + return triggers; + } + + if(filter.only && filter.except) { + throw new Error("Triggers don't support only and except filters at once"); + } + + if(filter.only && !(filter.only instanceof Array)) { + throw new Error("only filters needs to be an array"); + } + + if(filter.except && !(filter.except instanceof Array)) { + throw new Error("except filters needs to be an array"); + } + + if(filter.only) { + return Triggers.createRouteBoundTriggers(triggers, filter.only); + } + + if(filter.except) { + return Triggers.createRouteBoundTriggers(triggers, filter.except, true); + } + + throw new Error("Provided a filter but not supported"); +}; + +// create triggers by bounding them to a set of route names +// @triggers - a set of triggers +// @names - list of route names to be bound (trigger runs only for these names) +// @negate - negate the result (triggers won't run for above names) +Triggers.createRouteBoundTriggers = function(triggers, names, negate) { + var namesMap = {}; + _.each(names, function(name) { + namesMap[name] = true; + }); + + var filteredTriggers = _.map(triggers, function(originalTrigger) { + var modifiedTrigger = function(context, next) { + var routeName = context.route.name; + var matched = (namesMap[routeName])? 1: -1; + matched = (negate)? matched * -1 : matched; + + if(matched === 1) { + originalTrigger(context, next); + } + }; + return modifiedTrigger; + }); + + return filteredTriggers; +}; + +// run triggers and abort if redirected or callback stopped +// @triggers - a set of triggers +// @context - context we need to pass (it must have the route) +// @redirectFn - function which used to redirect +// @after - called after if only all the triggers runs +Triggers.runTriggers = function(triggers, context, redirectFn, after) { + var abort = false; + var inCurrentLoop = true; + var alreadyRedirected = false; + + for(var lc=0; lc 0)? firstRegexpChar: undefined); + // remove +?* + key = key.replace(/[\+\*\?]+/g, ""); + + return fields[key] || ""; + }); + + path = path.replace(/\/\/+/g, "/"); // Replace multiple slashes with single slash + + // remove trailing slash + // but keep the root slash if it's the only one + path = path.match(/^\/{1}$/) ? path: path.replace(/\/$/, ""); + + var strQueryParams = Qs.stringify(queryParams || {}); + if(strQueryParams) { + path += "?" + strQueryParams; + } + + return path; +}; + +Router.prototype.onRouteRegister = function(cb) { + this._onRouteCallbacks.push(cb); +}; + +Router.prototype._triggerRouteRegister = function(currentRoute) { + // We should only need to send a safe set of fields on the route + // object. + // This is not to hide what's inside the route object, but to show + // these are the public APIs + var routePublicApi = _.pick(currentRoute, 'name', 'pathDef', 'path'); + var omittingOptionFields = [ + 'triggersEnter', 'triggersExit', 'action', 'subscriptions', 'name' + ]; + routePublicApi.options = _.omit(currentRoute.options, omittingOptionFields); + + _.each(this._onRouteCallbacks, function(cb) { + cb(routePublicApi); + }); +}; + + +Router.prototype.go = function() { + // client only +}; + + +Router.prototype.current = function() { + // client only +}; + + +Router.prototype.triggers = { + enter: function() { + // client only + }, + exit: function() { + // client only + } +}; + +Router.prototype.middleware = function() { + // client only +}; + + +Router.prototype.getState = function() { + // client only +}; + + +Router.prototype.getAllStates = function() { + // client only +}; + + +Router.prototype.setState = function() { + // client only +}; + + +Router.prototype.removeState = function() { + // client only +}; + + +Router.prototype.clearStates = function() { + // client only +}; + + +Router.prototype.ready = function() { + // client only +}; + + +Router.prototype.initialize = function() { + // client only +}; + +Router.prototype.wait = function() { + // client only +}; diff --git a/packages/kadira-flow-router/test/client/_helpers.js b/packages/kadira-flow-router/test/client/_helpers.js new file mode 100644 index 000000000..94376f001 --- /dev/null +++ b/packages/kadira-flow-router/test/client/_helpers.js @@ -0,0 +1,10 @@ +GetSub = function (name) { + for(var id in Meteor.connection._subscriptions) { + var sub = Meteor.connection._subscriptions[id]; + if(name === sub.name) { + return sub; + } + } +}; + +FlowRouter.route('/'); diff --git a/packages/kadira-flow-router/test/client/group.spec.js b/packages/kadira-flow-router/test/client/group.spec.js new file mode 100644 index 000000000..06e793ba9 --- /dev/null +++ b/packages/kadira-flow-router/test/client/group.spec.js @@ -0,0 +1,113 @@ +Tinytest.add('Client - Group - validate path definition', function (test, next) { + // path & prefix must start with '/' + test.throws(function() { + new Group(null, {prefix: Random.id()}); + }); + + var group = FlowRouter.group({prefix: '/' + Random.id()}); + + test.throws(function() { + group.route(Random.id()); + }); +}); + +Tinytest.addAsync('Client - Group - define and go to route with prefix', function (test, next) { + var prefix = Random.id(); + var rand = Random.id(); + var rendered = 0; + + var group = FlowRouter.group({prefix: '/' + prefix}); + + group.route('/' + rand, { + action: function(_params) { + rendered++; + } + }); + + FlowRouter.go('/' + prefix + '/' + rand); + + setTimeout(function() { + test.equal(rendered, 1); + setTimeout(next, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Group - define and go to route without prefix', function (test, next) { + var rand = Random.id(); + var rendered = 0; + + var group = FlowRouter.group(); + + group.route('/' + rand, { + action: function(_params) { + rendered++; + } + }); + + FlowRouter.go('/' + rand); + + setTimeout(function() { + test.equal(rendered, 1); + setTimeout(next, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Group - subscribe', function (test, next) { + var rand = Random.id(); + + var group = FlowRouter.group({ + subscriptions: function (params) { + this.register('baz', Meteor.subscribe('baz')); + } + }); + + group.route('/' + rand); + + FlowRouter.go('/' + rand); + setTimeout(function() { + test.isTrue(!!GetSub('baz')); + next(); + }, 100); +}); + + +Tinytest.addAsync('Client - Group - set and retrieve group name', function (test, next) { + var rand = Random.id(); + var name = Random.id(); + + var group = FlowRouter.group({ + name: name + }); + + group.route('/' + rand); + + FlowRouter.go('/' + rand); + setTimeout(function() { + test.isTrue(FlowRouter.current().route.group.name === name); + next(); + }, 100); +}); + +Tinytest.add('Client - Group - expose group options on a route', function (test) { + var pathDef = "/" + Random.id(); + var name = Random.id(); + var groupName = Random.id(); + var data = {aa: 10}; + var layout = 'blah'; + + var group = FlowRouter.group({ + name: groupName, + prefix: '/admin', + layout: layout, + someData: data + }); + + group.route(pathDef, { + name: name + }); + + var route = FlowRouter._routesMap[name]; + + test.equal(route.group.options.someData, data); + test.equal(route.group.options.layout, layout); +}); diff --git a/packages/kadira-flow-router/test/client/loader.spec.js b/packages/kadira-flow-router/test/client/loader.spec.js new file mode 100644 index 000000000..091c2e021 --- /dev/null +++ b/packages/kadira-flow-router/test/client/loader.spec.js @@ -0,0 +1,17 @@ +Router = FlowRouter.Router; + + +Tinytest.add('Client - import page.js', function (test) { + test.isTrue(!!Router.prototype._page); + test.isFalse(!!window.page); +}); + + +Tinytest.add('Client - import query.js', function (test) { + test.isTrue(!!Router.prototype._qs); +}); + + +Tinytest.add('Client - create FlowRouter', function (test) { + test.isTrue(!!FlowRouter); +}); diff --git a/packages/kadira-flow-router/test/client/route.reactivity.spec.js b/packages/kadira-flow-router/test/client/route.reactivity.spec.js new file mode 100644 index 000000000..c6c441839 --- /dev/null +++ b/packages/kadira-flow-router/test/client/route.reactivity.spec.js @@ -0,0 +1,158 @@ +Route = FlowRouter.Route; + + +Tinytest.addAsync('Client - Route - Reactivity - getParam', function (test, done) { + var r = new Route(); + Tracker.autorun(function(c) { + var param = r.getParam("id"); + if(param) { + test.equal(param, "hello"); + c.stop(); + Meteor.defer(done); + } + }); + + setTimeout(function() { + var context = { + params: {id: "hello"}, + queryParams: {} + }; + r.registerRouteChange(context); + }, 10); +}); + +Tinytest.addAsync('Client - Route - Reactivity - getParam on route close', function (test, done) { + var r = new Route(); + var closeTriggered = false; + Tracker.autorun(function(c) { + var param = r.getParam("id"); + if(closeTriggered) { + test.equal(param, undefined); + c.stop(); + Meteor.defer(done); + } + }); + + setTimeout(function() { + closeTriggered = true; + r.registerRouteClose(); + }, 10); +}); + +Tinytest.addAsync('Client - Route - Reactivity - getQueryParam', function (test, done) { + var r = new Route(); + Tracker.autorun(function(c) { + var param = r.getQueryParam("id"); + if(param) { + test.equal(param, "hello"); + c.stop(); + Meteor.defer(done); + } + }); + + setTimeout(function() { + var context = { + params: {}, + queryParams: {id: "hello"} + }; + r.registerRouteChange(context); + }, 10); +}); + +Tinytest.addAsync('Client - Route - Reactivity - getQueryParam on route close', function (test, done) { + var r = new Route(); + var closeTriggered = false; + Tracker.autorun(function(c) { + var param = r.getQueryParam("id"); + if(closeTriggered) { + test.equal(param, undefined); + c.stop(); + Meteor.defer(done); + } + }); + + setTimeout(function() { + closeTriggered = true; + r.registerRouteClose(); + }, 10); +}); + +Tinytest.addAsync('Client - Route - Reactivity - getRouteName rerun when route closed', function (test, done) { + var r = new Route(); + r.name = "my-route"; + var closeTriggered = false; + + Tracker.autorun(function(c) { + var name = r.getRouteName(); + test.equal(name, r.name); + + if(closeTriggered) { + c.stop(); + Meteor.defer(done); + } + }); + + setTimeout(function() { + closeTriggered = true; + r.registerRouteClose(); + }, 10); +}); + +Tinytest.addAsync('Client - Route - Reactivity - watchPathChange when routeChange', function (test, done) { + var r = new Route(); + var pathChangeCounts = 0; + + var c = Tracker.autorun(function() { + r.watchPathChange(); + pathChangeCounts++; + }); + + var context = { + params: {}, + queryParams: {} + }; + + setTimeout(function() { + r.registerRouteChange(context); + setTimeout(checkAfterNormalRouteChange, 50); + }, 10); + + function checkAfterNormalRouteChange() { + test.equal(pathChangeCounts, 2); + var lastRouteChange = true; + r.registerRouteChange(context, lastRouteChange); + setTimeout(checkAfterLastRouteChange, 10); + } + + function checkAfterLastRouteChange() { + test.equal(pathChangeCounts, 2); + c.stop(); + Meteor.defer(done); + } +}); + +Tinytest.addAsync('Client - Route - Reactivity - watchPathChange when routeClose', function (test, done) { + var r = new Route(); + var pathChangeCounts = 0; + + var c = Tracker.autorun(function() { + r.watchPathChange(); + pathChangeCounts++; + }); + + var context = { + params: {}, + queryParams: {} + }; + + setTimeout(function() { + r.registerRouteClose(); + setTimeout(checkAfterRouteClose, 10); + }, 10); + + function checkAfterRouteClose() { + test.equal(pathChangeCounts, 2); + c.stop(); + Meteor.defer(done); + } +}); \ No newline at end of file diff --git a/packages/kadira-flow-router/test/client/router.core.spec.js b/packages/kadira-flow-router/test/client/router.core.spec.js new file mode 100644 index 000000000..160c9112e --- /dev/null +++ b/packages/kadira-flow-router/test/client/router.core.spec.js @@ -0,0 +1,632 @@ +Router = FlowRouter.Router; + +Tinytest.addAsync('Client - Router - define and go to route', function (test, next) { + var rand = Random.id(); + var rendered = 0; + + FlowRouter.route('/' + rand, { + action: function(_params) { + rendered++; + } + }); + + FlowRouter.go('/' + rand); + + setTimeout(function() { + test.equal(rendered, 1); + setTimeout(next, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Router - define and go to route with fields', +function (test, next) { + var rand = Random.id(); + var pathDef = "/" + rand + "/:key"; + var rendered = 0; + + FlowRouter.route(pathDef, { + action: function(params) { + test.equal(params.key, "abc +@%"); + rendered++; + } + }); + + FlowRouter.go(pathDef, {key: "abc +@%"}); + + setTimeout(function() { + test.equal(rendered, 1); + setTimeout(next, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Router - parse params and query', function (test, next) { + var rand = Random.id(); + var rendered = 0; + var params = null; + + FlowRouter.route('/' + rand + '/:foo', { + action: function(_params) { + rendered++; + params = _params; + } + }); + + FlowRouter.go('/' + rand + '/bar'); + + setTimeout(function() { + test.equal(rendered, 1); + test.equal(params.foo, 'bar'); + setTimeout(next, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Router - redirect using FlowRouter.go', function (test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + var paths = ['/' + rand2, '/' + rand]; + var done = false; + + FlowRouter.route(paths[0], { + action: function(_params) { + log.push(1); + FlowRouter.go(paths[1]); + } + }); + + FlowRouter.route(paths[1], { + action: function(_params) { + log.push(2); + } + }); + + FlowRouter.go(paths[0]); + + setTimeout(function() { + test.equal(log, [1, 2]); + done = true; + next(); + }, 100); +}); + +Tinytest.addAsync('Client - Router - get current route path', function (test, next) { + var value = Random.id(); + var randomValue = Random.id(); + var pathDef = "/" + randomValue + '/:_id'; + var path = "/" + randomValue + "/" + value; + + var detectedValue = null; + + FlowRouter.route(pathDef, { + action: function(params) { + detectedValue = params._id; + } + }); + + FlowRouter.go(path); + + Meteor.setTimeout(function() { + test.equal(detectedValue, value); + test.equal(FlowRouter.current().path, path); + next(); + }, 50); +}); + +Tinytest.addAsync('Client - Router - subscribe to global subs', function (test, next) { + var rand = Random.id(); + FlowRouter.route('/' + rand); + + FlowRouter.subscriptions = function (path) { + test.equal(path, '/' + rand); + this.register('baz', Meteor.subscribe('baz')); + }; + + FlowRouter.go('/' + rand); + setTimeout(function() { + test.isTrue(!!GetSub('baz')); + FlowRouter.subscriptions = Function.prototype; + next(); + }, 100); +}); + +Tinytest.addAsync('Client - Router - setParams - generic', function (test, done) { + var randomKey = Random.id(); + var pathDef = "/" + randomKey + "/:cat/:id"; + var paramsList = []; + FlowRouter.route(pathDef, { + action: function(params) { + paramsList.push(params); + } + }); + + FlowRouter.go(pathDef, {cat: "meteor", id: "200"}); + setTimeout(function() { + // return done(); + var success = FlowRouter.setParams({id: "700"}); + test.isTrue(success); + setTimeout(validate, 50); + }, 50); + + function validate() { + test.equal(paramsList.length, 2); + test.equal(_.pick(paramsList[0], "id", "cat"), {cat: "meteor", id: "200"}); + test.equal(_.pick(paramsList[1], "id", "cat"), {cat: "meteor", id: "700"}); + done(); + } +}); + +Tinytest.addAsync('Client - Router - setParams - preserve query strings', function (test, done) { + var randomKey = Random.id(); + var pathDef = "/" + randomKey + "/:cat/:id"; + var paramsList = []; + var queryParamsList = []; + + FlowRouter.route(pathDef, { + action: function(params, queryParams) { + paramsList.push(params); + queryParamsList.push(queryParams); + } + }); + + FlowRouter.go(pathDef, {cat: "meteor", id: "200 +% / ad"}, {aa: "20 +%"}); + setTimeout(function() { + // return done(); + var success = FlowRouter.setParams({id: "700 +% / ad"}); + test.isTrue(success); + setTimeout(validate, 50); + }, 50); + + function validate() { + test.equal(paramsList.length, 2); + test.equal(queryParamsList.length, 2); + + test.equal(_.pick(paramsList[0], "id", "cat"), {cat: "meteor", id: "200 +% / ad"}); + test.equal(_.pick(paramsList[1], "id", "cat"), {cat: "meteor", id: "700 +% / ad"}); + test.equal(queryParamsList, [{aa: "20 +%"}, {aa: "20 +%"}]); + done(); + } +}); + +Tinytest.add('Client - Router - setParams - no route selected', function (test) { + var originalRoute = FlowRouter._current.route; + FlowRouter._current.route = undefined; + var success = FlowRouter.setParams({id: "800"}); + test.isFalse(success); + FlowRouter._current.route = originalRoute; +}); + +Tinytest.addAsync('Client - Router - setQueryParams - using check', function (test, done) { + var randomKey = Random.id(); + var pathDef = "/" + randomKey + ""; + var queryParamsList = []; + FlowRouter.route(pathDef, { + action: function(params, queryParams) { + queryParamsList.push(queryParams); + } + }); + + FlowRouter.go(pathDef, {}, {cat: "meteor", id: "200"}); + setTimeout(function() { + check(FlowRouter.current().queryParams, {cat: String, id: String}); + done(); + }, 50); +}); + +Tinytest.addAsync('Client - Router - setQueryParams - generic', function (test, done) { + var randomKey = Random.id(); + var pathDef = "/" + randomKey + ""; + var queryParamsList = []; + FlowRouter.route(pathDef, { + action: function(params, queryParams) { + queryParamsList.push(queryParams); + } + }); + + FlowRouter.go(pathDef, {}, {cat: "meteor", id: "200"}); + setTimeout(function() { + // return done(); + var success = FlowRouter.setQueryParams({id: "700"}); + test.isTrue(success); + setTimeout(validate, 50); + }, 50); + + function validate() { + test.equal(queryParamsList.length, 2); + test.equal(_.pick(queryParamsList[0], "id", "cat"), {cat: "meteor", id: "200"}); + test.equal(_.pick(queryParamsList[1], "id", "cat"), {cat: "meteor", id: "700"}); + done(); + } +}); + +Tinytest.addAsync('Client - Router - setQueryParams - remove query param null', function (test, done) { + var randomKey = Random.id(); + var pathDef = "/" + randomKey + ""; + var queryParamsList = []; + FlowRouter.route(pathDef, { + action: function(params, queryParams) { + queryParamsList.push(queryParams); + } + }); + + FlowRouter.go(pathDef, {}, {cat: "meteor", id: "200"}); + setTimeout(function() { + var success = FlowRouter.setQueryParams({id: "700", cat: null}); + test.isTrue(success); + setTimeout(validate, 50); + }, 50); + + function validate() { + test.equal(queryParamsList.length, 2); + test.equal(_.pick(queryParamsList[0], "id", "cat"), {cat: "meteor", id: "200"}); + test.equal(queryParamsList[1], {id: "700"}); + done(); + } +}); + +Tinytest.addAsync('Client - Router - setQueryParams - remove query param undefined', function (test, done) { + var randomKey = Random.id(); + var pathDef = "/" + randomKey + ""; + var queryParamsList = []; + FlowRouter.route(pathDef, { + action: function(params, queryParams) { + queryParamsList.push(queryParams); + } + }); + + FlowRouter.go(pathDef, {}, {cat: "meteor", id: "200"}); + setTimeout(function() { + var success = FlowRouter.setQueryParams({id: "700", cat: undefined}); + test.isTrue(success); + setTimeout(validate, 50); + }, 50); + + function validate() { + test.equal(queryParamsList.length, 2); + test.equal(_.pick(queryParamsList[0], "id", "cat"), {cat: "meteor", id: "200"}); + test.equal(queryParamsList[1], {id: "700"}); + done(); + } +}); + +Tinytest.addAsync('Client - Router - setQueryParams - preserve params', function (test, done) { + var randomKey = Random.id(); + var pathDef = "/" + randomKey + "/:abc"; + var queryParamsList = []; + var paramsList = []; + FlowRouter.route(pathDef, { + action: function(params, queryParams) { + paramsList.push(params); + queryParamsList.push(queryParams); + } + }); + + FlowRouter.go(pathDef, {abc: "20"}, {cat: "meteor", id: "200"}); + setTimeout(function() { + // return done(); + var success = FlowRouter.setQueryParams({id: "700"}); + test.isTrue(success); + setTimeout(validate, 50); + }, 50); + + function validate() { + test.equal(queryParamsList.length, 2); + test.equal(queryParamsList, [ + {cat: "meteor", id: "200"}, {cat: "meteor", id: "700"} + ]); + + test.equal(paramsList.length, 2); + test.equal(_.pick(paramsList[0], "abc"), {abc: "20"}); + test.equal(_.pick(paramsList[1], "abc"), {abc: "20"}); + done(); + } +}); + +Tinytest.add('Client - Router - setQueryParams - no route selected', function (test) { + var originalRoute = FlowRouter._current.route; + FlowRouter._current.route = undefined; + var success = FlowRouter.setQueryParams({id: "800"}); + test.isFalse(success); + FlowRouter._current.route = originalRoute; +}); + +Tinytest.addAsync('Client - Router - notFound', function (test, done) { + var data = []; + FlowRouter.notFound = { + subscriptions: function() { + data.push("subscriptions"); + }, + action: function() { + data.push("action"); + } + }; + + FlowRouter.go("/" + Random.id()); + setTimeout(function() { + test.equal(data, ["subscriptions", "action"]); + done(); + }, 50); +}); + +Tinytest.addAsync('Client - Router - withReplaceState - enabled', +function (test, done) { + var pathDef = "/" + Random.id() + "/:id"; + var originalRedirect = FlowRouter._page.replace; + var callCount = 0; + FlowRouter._page.replace = function(path) { + callCount++; + originalRedirect.call(FlowRouter._page, path); + }; + + FlowRouter.route(pathDef, { + name: name, + action: function(params) { + test.equal(params.id, "awesome"); + test.equal(callCount, 1); + FlowRouter._page.replace = originalRedirect; + // We don't use Meteor.defer here since it carries + // Meteor.Environment vars too + // Which breaks our test below + setTimeout(done, 0); + } + }); + + FlowRouter.withReplaceState(function() { + FlowRouter.go(pathDef, {id: "awesome"}); + }); +}); + +Tinytest.addAsync('Client - Router - withReplaceState - disabled', +function (test, done) { + var pathDef = "/" + Random.id() + "/:id"; + var originalRedirect = FlowRouter._page.replace; + var callCount = 0; + FlowRouter._page.replace = function(path) { + callCount++; + originalRedirect.call(FlowRouter._page, path); + }; + + FlowRouter.route(pathDef, { + name: name, + action: function(params) { + test.equal(params.id, "awesome"); + test.equal(callCount, 0); + FlowRouter._page.replace = originalRedirect; + Meteor.defer(done); + } + }); + + FlowRouter.go(pathDef, {id: "awesome"}); +}); + +Tinytest.addAsync('Client - Router - withTrailingSlash - enabled', function (test, next) { + var rand = Random.id(); + var rendered = 0; + + FlowRouter.route('/' + rand, { + action: function(_params) { + rendered++; + } + }); + + FlowRouter.withTrailingSlash(function() { + FlowRouter.go('/' + rand); + }); + + setTimeout(function() { + test.equal(rendered, 1); + test.equal(_.last(location.href), '/'); + setTimeout(next, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Router - idempotent routing - action', +function (test, done) { + var rand = Random.id(); + var pathDef = "/" + rand; + var rendered = 0; + + FlowRouter.route(pathDef, { + action: function(params) { + rendered++; + } + }); + + FlowRouter.go(pathDef); + + Meteor.defer(function() { + FlowRouter.go(pathDef); + + Meteor.defer(function() { + test.equal(rendered, 1); + done(); + }); + }); +}); + +Tinytest.addAsync('Client - Router - idempotent routing - triggers', +function (test, next) { + var rand = Random.id(); + var pathDef = "/" + rand; + var runnedTriggers = 0; + var done = false; + + var triggerFns = [function(params) { + if (done) return; + + runnedTriggers++; + }]; + + FlowRouter.triggers.enter(triggerFns); + + FlowRouter.route(pathDef, { + triggersEnter: triggerFns, + triggersExit: triggerFns + }); + + FlowRouter.go(pathDef); + + FlowRouter.triggers.exit(triggerFns); + + Meteor.defer(function() { + FlowRouter.go(pathDef); + + Meteor.defer(function() { + test.equal(runnedTriggers, 2); + done = true; + next(); + }); + }); +}); + +Tinytest.addAsync('Client - Router - reload - action', +function (test, done) { + var rand = Random.id(); + var pathDef = "/" + rand; + var rendered = 0; + + FlowRouter.route(pathDef, { + action: function(params) { + rendered++; + } + }); + + FlowRouter.go(pathDef); + + Meteor.defer(function() { + FlowRouter.reload(); + + Meteor.defer(function() { + test.equal(rendered, 2); + done(); + }); + }); +}); + +Tinytest.addAsync('Client - Router - reload - triggers', +function (test, next) { + var rand = Random.id(); + var pathDef = "/" + rand; + var runnedTriggers = 0; + var done = false; + + var triggerFns = [function(params) { + if (done) return; + + runnedTriggers++; + }]; + + FlowRouter.triggers.enter(triggerFns); + + FlowRouter.route(pathDef, { + triggersEnter: triggerFns, + triggersExit: triggerFns + }); + + FlowRouter.go(pathDef); + + FlowRouter.triggers.exit(triggerFns); + + Meteor.defer(function() { + FlowRouter.reload(); + + Meteor.defer(function() { + test.equal(runnedTriggers, 6); + done = true; + next(); + }); + }); +}); + +Tinytest.addAsync( +'Client - Router - wait - before initialize', +function(test, done) { + FlowRouter._initialized = false; + FlowRouter.wait(); + test.equal(FlowRouter._askedToWait, true); + + FlowRouter._initialized = true; + FlowRouter._askedToWait = false; + done(); +}); + +Tinytest.addAsync( +'Client - Router - wait - after initialized', +function(test, done) { + try { + FlowRouter.wait(); + } catch(ex) { + test.isTrue(/can't wait/.test(ex.message)); + done(); + } +}); + +Tinytest.addAsync( +'Client - Router - initialize - after initialized', +function(test, done) { + try { + FlowRouter.initialize(); + } catch(ex) { + test.isTrue(/already initialized/.test(ex.message)); + done(); + } +}); + +Tinytest.addAsync( +'Client - Router - base path - url updated', +function(test, done) { + var simulatedBasePath = '/flow'; + var rand = Random.id(); + FlowRouter.route('/' + rand, { action: function() {} }); + + setBasePath(simulatedBasePath); + FlowRouter.go('/' + rand); + setTimeout(function() { + test.equal(location.pathname, simulatedBasePath + '/' + rand); + resetBasePath(); + done(); + }, 100); +}); + +Tinytest.addAsync( +'Client - Router - base path - route action called', +function(test, done) { + var simulatedBasePath = '/flow'; + var rand = Random.id(); + FlowRouter.route('/' + rand, { + action: function() { + resetBasePath(); + done(); + } + }); + + setBasePath(simulatedBasePath); + FlowRouter.go('/' + rand); +}); + +Tinytest.add( +'Client - Router - base path - path generation', +function(test, done) { + _.each(['/flow', '/flow/', 'flow/', 'flow'], function(simulatedBasePath) { + var rand = Random.id(); + setBasePath(simulatedBasePath); + test.equal(FlowRouter.path('/' + rand), '/flow/' + rand); + }); + resetBasePath(); +}); + + +function setBasePath(path) { + FlowRouter._initialized = false; + FlowRouter._basePath = path; + FlowRouter.initialize(); +} + +var defaultBasePath = FlowRouter._basePath; +function resetBasePath() { + setBasePath(defaultBasePath); +} + +function bind(obj, method) { + return function() { + obj[method].apply(obj, arguments); + }; +} diff --git a/packages/kadira-flow-router/test/client/router.reactivity.spec.js b/packages/kadira-flow-router/test/client/router.reactivity.spec.js new file mode 100644 index 000000000..b06deedae --- /dev/null +++ b/packages/kadira-flow-router/test/client/router.reactivity.spec.js @@ -0,0 +1,208 @@ +Tinytest.addAsync( +'Client - Router - Reactivity - detectChange only once', +function (test, done) { + var route = "/" + Random.id(); + var name = Random.id(); + FlowRouter.route(route, {name: name}); + + var ranCount = 0; + var pickedId = null; + var c = Tracker.autorun(function() { + ranCount++; + pickedId = FlowRouter.getQueryParam("id"); + if(pickedId) { + test.equal(pickedId, "hello"); + test.equal(ranCount, 2); + c.stop(); + Meteor.defer(done); + } + }); + + setTimeout(function() { + FlowRouter.go(name, {}, {id: "hello"}); + }, 2); +}); + +Tinytest.addAsync( +'Client - Router - Reactivity - detectChange in the action', +function (test, done) { + var route = "/" + Random.id(); + var name = Random.id(); + FlowRouter.route(route, { + name: name, + action: function() { + var id = FlowRouter.getQueryParam("id"); + test.equal(id, "hello"); + Meteor.defer(done); + } + }); + + setTimeout(function() { + FlowRouter.go(name, {}, {id: "hello"}); + }, 2); +}); + +Tinytest.addAsync( +'Client - Router - Reactivity - detect prev routeChange after new action', +function (test, done) { + var route1 = "/" + Random.id(); + var name1 = Random.id(); + var pickedName1 = null; + + var route2 = "/" + Random.id(); + var name2 = Random.id(); + var pickedName2 = Random.id(); + + FlowRouter.route(route1, { + name: name1, + action: function() { + Tracker.autorun(function(c) { + pickedName1 = FlowRouter.getRouteName(); + if(pickedName1 == name2) { + test.equal(pickedName1, pickedName2); + c.stop(); + Meteor.defer(done); + } + }); + } + }); + + FlowRouter.route(route2, { + name: name2, + action: function() { + pickedName2 = FlowRouter.getRouteName(); + test.equal(pickedName1, name1); + test.equal(pickedName2, name2); + } + }); + + FlowRouter.go(name1); + Meteor.setTimeout(function() { + FlowRouter.go(name2); + }, 10); +}); + +Tinytest.addAsync( +'Client - Router - Reactivity - defer watchPathChange until new route rendered', +function(test, done) { + var route1 = "/" + Random.id(); + var name1 = Random.id(); + var pickedName1 = null; + + var route2 = "/" + Random.id(); + var name2 = Random.id(); + var pickedName2 = Random.id(); + + FlowRouter.route(route1, { + name: name1, + action: function() { + Tracker.autorun(function(c) { + FlowRouter.watchPathChange(); + pickedName1 = FlowRouter.current().route.name; + if(pickedName1 == name2) { + test.equal(pickedName1, pickedName2); + c.stop(); + Meteor.defer(done); + } + }); + } + }); + + FlowRouter.route(route2, { + name: name2, + action: function() { + pickedName2 = FlowRouter.current().route.name; + test.equal(pickedName1, name1); + test.equal(pickedName2, name2); + } + }); + + FlowRouter.go(name1); + Meteor.setTimeout(function() { + FlowRouter.go(name2); + }, 10); +}); + +Tinytest.addAsync( +'Client - Router - Reactivity - reactive changes and trigger redirects', +function(test, done) { + var name1 = Random.id(); + var route1 = "/" + name1; + FlowRouter.route(route1, { + name: name1 + }); + + var name2 = Random.id(); + var route2 = "/" + name2; + FlowRouter.route(route2, { + name: name2, + triggersEnter: [function(context, redirect) { + redirect(name3); + }] + }); + + + var name3 = Random.id(); + var route3 = "/" + name3; + FlowRouter.route(route3, { + name: name3 + }); + + var routeNamesFired = []; + FlowRouter.go(name1); + + var c = null; + setTimeout(function() { + c = Tracker.autorun(function(c) { + routeNamesFired.push(FlowRouter.getRouteName()); + }); + FlowRouter.go(name2); + }, 50); + + setTimeout(function() { + c.stop(); + test.equal(routeNamesFired, [name1, name3]); + Meteor.defer(done); + }, 250); +}); + +Tinytest.addAsync( +'Client - Router - Reactivity - watchPathChange for every route change', +function(test, done) { + var route1 = "/" + Random.id(); + var name1 = Random.id(); + var pickedName1 = null; + + var route2 = "/" + Random.id(); + var name2 = Random.id(); + var pickedName2 = Random.id(); + + FlowRouter.route(route1, { + name: name1 + }); + + FlowRouter.route(route2, { + name: name2 + }); + + var ids = []; + var c = Tracker.autorun(function() { + FlowRouter.watchPathChange(); + ids.push(FlowRouter.current().queryParams['id']); + }); + + FlowRouter.go(name1, {}, {id: "one"}); + Meteor.setTimeout(function() { + FlowRouter.go(name1, {}, {id: "two"}); + }, 10); + + Meteor.setTimeout(function() { + FlowRouter.go(name2, {}, {id: "three"}); + }, 20); + + Meteor.setTimeout(function() { + test.equal(ids, [undefined, "one", "two", "three"]); + c.stop(); + done(); + }, 40); +}); \ No newline at end of file diff --git a/packages/kadira-flow-router/test/client/router.subs_ready.spec.js b/packages/kadira-flow-router/test/client/router.subs_ready.spec.js new file mode 100644 index 000000000..8a20077a1 --- /dev/null +++ b/packages/kadira-flow-router/test/client/router.subs_ready.spec.js @@ -0,0 +1,225 @@ +Tinytest.addAsync('Client - Router - subsReady - with no args - all subscriptions ready', function (test, next) { + var rand = Random.id(); + FlowRouter.route('/' + rand, { + subscriptions: function(params) { + this.register('bar', Meteor.subscribe('bar')); + this.register('foo', Meteor.subscribe('foo')); + } + }); + + FlowRouter.subscriptions = function () { + this.register('baz', Meteor.subscribe('baz')); + }; + + FlowRouter.go('/' + rand); + + Tracker.autorun(function(c) { + if(FlowRouter.subsReady()) { + FlowRouter.subscriptions = Function.prototype; + next(); + c.stop(); + } + }); +}); + +Tinytest.addAsync('Client - Router - subsReady - with no args - all subscriptions does not ready', function (test, next) { + var rand = Random.id(); + FlowRouter.route('/' + rand, { + subscriptions: function(params) { + this.register('fooNotReady', Meteor.subscribe('fooNotReady')); + } + }); + + FlowRouter.subscriptions = function () { + this.register('bazNotReady', Meteor.subscribe('bazNotReady')); + }; + + FlowRouter.go('/' + rand); + setTimeout(function() { + test.isTrue(!FlowRouter.subsReady()); + FlowRouter.subscriptions = Function.prototype; + next(); + }, 100); +}); + +Tinytest.addAsync('Client - Router - subsReady - with no args - global subscriptions does not ready', function (test, next) { + var rand = Random.id(); + FlowRouter.route('/' + rand, { + subscriptions: function(params) { + this.register('bar', Meteor.subscribe('bar')); + this.register('foo', Meteor.subscribe('foo')); + } + }); + + FlowRouter.subscriptions = function () { + this.register('bazNotReady', Meteor.subscribe('bazNotReady')); + }; + + FlowRouter.go('/' + rand); + setTimeout(function() { + test.isTrue(!FlowRouter.subsReady()); + FlowRouter.subscriptions = Function.prototype; + next(); + }, 100); +}); + +Tinytest.addAsync('Client - Router - subsReady - with no args - current subscriptions does not ready', function (test, next) { + var rand = Random.id(); + FlowRouter.route('/' + rand, { + subscriptions: function(params) { + this.register('bar', Meteor.subscribe('bar')); + this.register('fooNotReady', Meteor.subscribe('fooNotReady')); + } + }); + + FlowRouter.subscriptions = function () { + this.register('baz', Meteor.subscribe('baz')); + }; + + FlowRouter.go('/' + rand); + setTimeout(function() { + test.isTrue(!FlowRouter.subsReady()); + FlowRouter.subscriptions = Function.prototype; + next(); + }, 100); +}); + +Tinytest.addAsync('Client - Router - subsReady - with args - all subscriptions ready', function (test, next) { + var rand = Random.id(); + FlowRouter.route('/' + rand, { + subscriptions: function(params) { + this.register('bar', Meteor.subscribe('bar')); + this.register('foo', Meteor.subscribe('foo')); + } + }); + + FlowRouter.subscriptions = function () { + this.register('baz', Meteor.subscribe('baz')); + }; + + FlowRouter.go('/' + rand); + Tracker.autorun(function(c) { + if(FlowRouter.subsReady('foo', 'baz')) { + FlowRouter.subscriptions = Function.prototype; + next(); + c.stop(); + } + }); +}); + +Tinytest.addAsync('Client - Router - subsReady - with args - all subscriptions does not ready', function (test, next) { + var rand = Random.id(); + FlowRouter.route('/' + rand, { + subscriptions: function(params) { + this.register('fooNotReady', Meteor.subscribe('fooNotReady')); + } + }); + + FlowRouter.subscriptions = function () { + this.register('bazNotReady', Meteor.subscribe('bazNotReady')); + }; + + FlowRouter.go('/' + rand); + setTimeout(function() { + test.isTrue(!FlowRouter.subsReady('fooNotReady', 'bazNotReady')); + FlowRouter.subscriptions = Function.prototype; + next(); + }, 100); +}); + +Tinytest.addAsync('Client - Router - subsReady - with args - global subscriptions does not ready', function (test, next) { + var rand = Random.id(); + FlowRouter.route('/' + rand, { + subscriptions: function(params) { + this.register('bar', Meteor.subscribe('bar')); + this.register('foo', Meteor.subscribe('foo')); + } + }); + + FlowRouter.subscriptions = function () { + this.register('bazNotReady', Meteor.subscribe('bazNotReady')); + }; + + FlowRouter.go('/' + rand); + setTimeout(function() { + test.isTrue(!FlowRouter.subsReady('foo', 'bazNotReady')); + FlowRouter.subscriptions = Function.prototype; + next(); + }, 100); +}); + +Tinytest.addAsync('Client - Router - subsReady - with args - current subscriptions does not ready', function (test, next) { + var rand = Random.id(); + FlowRouter.route('/' + rand, { + subscriptions: function(params) { + this.register('bar', Meteor.subscribe('bar')); + this.register('fooNotReady', Meteor.subscribe('fooNotReady')); + } + }); + + FlowRouter.subscriptions = function () { + this.register('baz', Meteor.subscribe('baz')); + }; + + FlowRouter.go('/' + rand); + setTimeout(function() { + test.isTrue(!FlowRouter.subsReady('fooNotReady', 'baz')); + FlowRouter.subscriptions = Function.prototype; + next(); + }, 100); +}); + +Tinytest.addAsync('Client - Router - subsReady - with args - subscribe with wrong name', function (test, next) { + var rand = Random.id(); + FlowRouter.route('/' + rand, { + subscriptions: function(params) { + this.register('bar', Meteor.subscribe('bar')); + } + }); + + FlowRouter.subscriptions = function () { + this.register('baz', Meteor.subscribe('baz')); + }; + + FlowRouter.go('/' + rand); + setTimeout(function() { + test.isTrue(!FlowRouter.subsReady('baz', 'xxx', 'baz')); + FlowRouter.subscriptions = Function.prototype; + next(); + }, 100); +}); + +Tinytest.addAsync('Client - Router - subsReady - with args - same route two different subs', function (test, next) { + var rand = Random.id(); + var count = 0; + FlowRouter.route('/' + rand, { + subscriptions: function(params) { + if(++count == 1) { + this.register('not-exisitng', Meteor.subscribe('not-exisitng')); + } + } + }); + + FlowRouter.subscriptions = Function.prototype; + FlowRouter.go('/' + rand); + setTimeout(function() { + test.isFalse(FlowRouter.subsReady()); + FlowRouter.go('/' + rand, {}, {param: "111"}); + setTimeout(function() { + test.isTrue(FlowRouter.subsReady()); + next(); + }, 100) + }, 100); +}); + +Tinytest.addAsync('Client - Router - subsReady - no subscriptions - simple', function (test, next) { + var rand = Random.id(); + FlowRouter.route('/' + rand, {}); + FlowRouter.subscriptions = Function.prototype; + + FlowRouter.go('/' + rand); + setTimeout(function() { + test.isTrue(FlowRouter.subsReady()); + next(); + }, 100); +}); \ No newline at end of file diff --git a/packages/kadira-flow-router/test/client/trigger.spec.js b/packages/kadira-flow-router/test/client/trigger.spec.js new file mode 100644 index 000000000..319c6bd28 --- /dev/null +++ b/packages/kadira-flow-router/test/client/trigger.spec.js @@ -0,0 +1,570 @@ +Tinytest.addAsync('Client - Triggers - global enter triggers', function(test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + var paths = ['/' + rand2, '/' + rand]; + var done = false; + + FlowRouter.route('/' + rand, { + action: function(_params) { + log.push(1); + } + }); + + FlowRouter.route('/' + rand2, { + action: function(_params) { + log.push(2); + } + }); + + FlowRouter.triggers.enter([function(context) { + if(done) return; + test.equal(context.path, paths.pop()); + log.push(0); + }]); + + FlowRouter.go('/' + rand); + + setTimeout(function() { + FlowRouter.go('/' + rand2); + + setTimeout(function() { + test.equal(log, [0, 1, 0, 2]); + done = true; + setTimeout(next, 100); + }, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Triggers - global enter triggers with "only"', function (test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + var done = false; + + FlowRouter.route('/' + rand, { + action: function(_params) { + log.push(1); + } + }); + + FlowRouter.route('/' + rand2, { + name: 'foo', + action: function(_params) { + log.push(2); + } + }); + + FlowRouter.triggers.enter([function(context) { + if(done) return; + test.equal(context.path, '/' + rand2); + log.push(8); + }], {only: ['foo']}); + + FlowRouter.go('/' + rand); + + setTimeout(function() { + FlowRouter.go('/' + rand2); + + setTimeout(function() { + test.equal(log, [1, 8, 2]); + done = true; + setTimeout(next, 100); + }, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Triggers - global enter triggers with "except"', function (test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + var done = false; + + FlowRouter.route('/' + rand, { + action: function(_params) { + log.push(1); + } + }); + + FlowRouter.route('/' + rand2, { + name: 'foo', + action: function(_params) { + log.push(2); + } + }); + + FlowRouter.triggers.enter([function(context) { + if(done) return; + test.equal(context.path, '/' + rand); + log.push(8); + }], {except: ['foo']}); + + FlowRouter.go('/' + rand); + + setTimeout(function() { + FlowRouter.go('/' + rand2); + + setTimeout(function() { + test.equal(log, [8, 1, 2]); + done = true; + setTimeout(next, 100); + }, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Triggers - global exit triggers', function (test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + var done =false; + + FlowRouter.route('/' + rand, { + action: function(_params) { + log.push(1); + } + }); + + FlowRouter.route('/' + rand2, { + action: function(_params) { + log.push(2); + } + }); + + FlowRouter.go('/' + rand); + + FlowRouter.triggers.exit([function(context) { + if(done) return; + test.equal(context.path, '/' + rand); + log.push(0); + }]); + + setTimeout(function() { + FlowRouter.go('/' + rand2); + + setTimeout(function() { + test.equal(log, [1, 0, 2]); + done = true; + setTimeout(next, 100); + }, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Triggers - global exit triggers with "only"', function (test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + var done = false; + + FlowRouter.route('/' + rand, { + action: function(_params) { + log.push(1); + } + }); + + FlowRouter.route('/' + rand2, { + name: 'foo', + action: function(_params) { + log.push(2); + } + }); + + FlowRouter.triggers.exit([function(context) { + if(done) return; + test.equal(context.path, '/' + rand2); + log.push(8); + }], {only: ['foo']}); + + FlowRouter.go('/' + rand); + + setTimeout(function() { + FlowRouter.go('/' + rand2); + + setTimeout(function() { + FlowRouter.go('/' + rand); + + setTimeout(function() { + test.equal(log, [1, 2, 8, 1]); + done = true; + setTimeout(next, 100); + }, 100); + }, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Triggers - global exit triggers with "except"', function (test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + var done = false; + + FlowRouter.route('/' + rand, { + action: function(_params) { + log.push(1); + } + }); + + FlowRouter.route('/' + rand2, { + name: 'foo', + action: function(_params) { + log.push(2); + } + }); + + FlowRouter.go('/' + rand); + + FlowRouter.triggers.exit([function(context) { + if(done) return; + test.equal(context.path, '/' + rand); + log.push(9); + }], {except: ['foo']}); + + + setTimeout(function() { + FlowRouter.go('/' + rand2); + + setTimeout(function() { + FlowRouter.go('/' + rand); + + setTimeout(function() { + test.equal(log, [1, 9, 2, 1]); + done = true; + setTimeout(next, 100); + }, 100); + }, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Triggers - route enter triggers', function (test, next) { + var rand = Random.id(); + var log = []; + + var triggerFn = function (context) { + test.equal(context.path, '/' + rand); + log.push(5); + }; + + FlowRouter.route('/' + rand, { + triggersEnter: [triggerFn], + action: function(_params) { + log.push(1); + } + }); + + FlowRouter.go('/' + rand); + + setTimeout(function() { + test.equal(log, [5, 1]); + setTimeout(next, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Triggers - router exit triggers', function (test, next) { + var rand = Random.id(); + var log = []; + + var triggerFn = function (context) { + test.equal(context.path, '/' + rand); + log.push(6); + }; + + FlowRouter.route('/' + rand, { + triggersExit: [triggerFn], + action: function(_params) { + log.push(1); + } + }); + + FlowRouter.go('/' + rand); + + setTimeout(function() { + FlowRouter.go('/' + Random.id()); + + setTimeout(function() { + test.equal(log, [1, 6]); + setTimeout(next, 100); + }, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Triggers - group enter triggers', function (test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + var paths = ['/' + rand2, '/' + rand]; + + var triggerFn = function (context) { + test.equal(context.path, paths.pop()); + log.push(3); + }; + + var group = FlowRouter.group({ + triggersEnter: [triggerFn] + }); + + group.route('/' + rand, { + action: function(_params) { + log.push(1); + } + }); + + group.route('/' + rand2, { + action: function(_params) { + log.push(2); + } + }); + + FlowRouter.go('/' + rand); + + setTimeout(function() { + FlowRouter.go('/' + rand2); + + setTimeout(function() { + test.equal(log, [3, 1, 3, 2]); + setTimeout(next, 100); + }, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Triggers - group exit triggers', function (test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + + var triggerFn = function (context) { + log.push(4); + }; + + var group = FlowRouter.group({ + triggersExit: [triggerFn] + }); + + group.route('/' + rand, { + action: function(_params) { + log.push(1); + } + }); + + group.route('/' + rand2, { + action: function(_params) { + log.push(2); + } + }); + + FlowRouter.go('/' + rand); + + setTimeout(function() { + FlowRouter.go('/' + rand2); + + setTimeout(function() { + test.equal(log, [1, 4, 2]); + setTimeout(next, 100); + }, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Triggers - redirect from enter', function(test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + + FlowRouter.route('/' + rand, { + triggersEnter: [function(context, redirect) { + redirect("/" + rand2); + }, function() { + throw new Error("should not execute this trigger"); + }], + action: function(_params) { + log.push(1); + }, + name: rand + }); + + FlowRouter.route('/' + rand2, { + action: function(_params) { + log.push(2); + }, + name: rand2 + }); + + FlowRouter.go('/'); + FlowRouter.go('/' + rand); + + setTimeout(function() { + test.equal(log, [2]); + next(); + }, 300); +}); + +Tinytest.addAsync('Client - Triggers - redirect by routeName', function(test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + + FlowRouter.route('/' + rand, { + name: rand, + triggersEnter: [function(context, redirect) { + redirect(rand2, null, {aa: "bb"}); + }, function() { + throw new Error("should not execute this trigger"); + }], + action: function(_params) { + log.push(1); + }, + name: rand + }); + + FlowRouter.route('/' + rand2, { + name: rand2, + action: function(_params, queryParams) { + log.push(2); + test.equal(queryParams, {aa: "bb"}); + }, + name: rand2 + }); + + FlowRouter.go('/'); + FlowRouter.go('/' + rand); + + setTimeout(function() { + test.equal(log, [2]); + next(); + }, 300); +}); + +Tinytest.addAsync('Client - Triggers - redirect from exit', function(test, next) { + var rand = Random.id(), rand2 = Random.id(), rand3 = Random.id(); + var log = []; + + FlowRouter.route('/' + rand, { + action: function() { + log.push(1); + }, + triggersExit: [ + function(context, redirect) { + redirect('/' + rand3); + }, + function() { + throw new Error("should not call this trigger"); + } + ] + }); + + FlowRouter.route('/' + rand2, { + action: function() { + log.push(2); + } + }); + + FlowRouter.route('/' + rand3, { + action: function() { + log.push(3); + } + }); + + FlowRouter.go('/' + rand); + + setTimeout(function() { + FlowRouter.go('/' + rand2); + + setTimeout(function() { + test.equal(log, [1, 3]); + next(); + }, 100); + }, 100); +}); + +Tinytest.addAsync('Client - Triggers - redirect to external URL fails', function(test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + + // testing "http://" URLs + FlowRouter.route('/' + rand, { + triggersEnter: [function(context, redirect) { + test.throws(function() { + redirect("http://example.com/") + }, "Redirects to URLs outside of the app are not supported") + }], + action: function(_params) { + log.push(1); + }, + name: rand + }); + + // testing "https://" URLs + FlowRouter.route('/' + rand2, { + triggersEnter: [function(context, redirect) { + test.throws(function() { + redirect("https://example.com/") + }) + }], + action: function(_params) { + log.push(2); + }, + name: rand2 + }); + + FlowRouter.go('/'); + FlowRouter.go('/' + rand); + FlowRouter.go('/' + rand2); + + setTimeout(function() { + test.equal(log, []); + next(); + }, 300); +}); + +Tinytest.addAsync('Client - Triggers - stop callback from enter', function(test, next) { + var rand = Random.id(); + var log = []; + + FlowRouter.route('/' + rand, { + triggersEnter: [function(context, redirect, stop) { + log.push(10); + stop(); + }, function() { + throw new Error("should not execute this trigger"); + }], + action: function(_params) { + throw new Error("should not execute the action"); + } + }); + + FlowRouter.go('/'); + FlowRouter.go('/' + rand); + + setTimeout(function() { + test.equal(log, [10]); + next(); + }, 100); +}); + +Tinytest.addAsync( +'Client - Triggers - invalidate inside an autorun', +function(test, next) { + var rand = Random.id(), rand2 = Random.id(); + var log = []; + var paths = ['/' + rand2, '/' + rand]; + var done = false; + + FlowRouter.route('/' + rand, { + action: function(_params) { + log.push(1); + } + }); + + FlowRouter.route('/' + rand2, { + action: function(_params) { + log.push(2); + } + }); + + FlowRouter.triggers.enter([function(context) { + if(done) return; + test.equal(context.path, paths.pop()); + log.push(0); + }]); + + Tracker.autorun(function(c) { + FlowRouter.go('/' + rand); + }); + + setTimeout(function() { + FlowRouter.go('/' + rand2); + + setTimeout(function() { + test.equal(log, [0, 1, 0, 2]); + done = true; + setTimeout(next, 100); + }, 100); + }, 100); +}); diff --git a/packages/kadira-flow-router/test/client/triggers.js b/packages/kadira-flow-router/test/client/triggers.js new file mode 100644 index 000000000..7eb9a99cf --- /dev/null +++ b/packages/kadira-flow-router/test/client/triggers.js @@ -0,0 +1,297 @@ +Tinytest.addAsync( +'Triggers - runTriggers - run all and after', +function(test, done) { + var store = []; + var triggers = MakeTriggers(2, store); + Triggers.runTriggers(triggers, null, null, function() { + test.equal(store, [0, 1]); + done(); + }); +}); + +Tinytest.addAsync( +'Triggers - runTriggers - redirect with url', +function(test, done) { + var store = []; + var url = "http://google.com"; + var triggers = MakeTriggers(2, store); + triggers.splice(1, 0, function(context, redirect) { + redirect(url); + }); + + Triggers.runTriggers(triggers, null, function(u) { + test.equal(store, [0]); + test.equal(u, url); + done(); + }, null); +}); + +Tinytest.addAsync( +'Triggers - runTriggers - redirect without url', +function(test, done) { + var store = []; + var url = "http://google.com"; + var triggers = MakeTriggers(2, store); + triggers.splice(1, 0, function(context, redirect) { + try { + redirect(); + } catch(ex) { + test.isTrue(/requires an URL/.test(ex.message)); + test.equal(store, [0]); + done(); + } + }); + + Triggers.runTriggers(triggers, null, null, null); +}); + +Tinytest.addAsync( +'Triggers - runTriggers - redirect in a different event loop', +function(test, done) { + var store = []; + var url = "http://google.com"; + var triggers = MakeTriggers(2, store); + var doneCalled = false; + + triggers.splice(1, 0, function(context, redirect) { + setTimeout(function() { + try { + redirect(url); + } catch(ex) { + test.isTrue(/sync/.test(ex.message)); + test.equal(store, [0, 1]); + test.isTrue(doneCalled); + done(); + } + }, 0); + }); + + Triggers.runTriggers(triggers, null, null, function() { + doneCalled = true; + }); +}); + +Tinytest.addAsync( +'Triggers - runTriggers - redirect called multiple times', +function(test, done) { + var store = []; + var url = "http://google.com"; + var triggers = MakeTriggers(2, store); + var redirectCalled = false; + + triggers.splice(1, 0, function(context, redirect) { + redirect(url); + try { + redirect(url); + } catch(ex) { + test.isTrue(/already redirected/.test(ex.message)); + test.equal(store, [0]); + test.isTrue(redirectCalled); + done(); + } + }); + + Triggers.runTriggers(triggers, null, function() { + redirectCalled = true; + }, null); +}); + +Tinytest.addAsync( +'Triggers - runTriggers - stop callback', +function(test, done) { + var store = []; + var triggers = MakeTriggers(2, store); + triggers.splice(1, 0, function(context, redirect, stop) { + stop(); + }); + + Triggers.runTriggers(triggers, null, null, function() { + store.push(2); + }); + + test.equal(store, [0]); + done(); +}); + + +Tinytest.addAsync( +'Triggers - runTriggers - get context', +function(test, done) { + var context = {}; + var trigger = function(c) { + test.equal(c, context); + done(); + }; + + Triggers.runTriggers([trigger], context, function() {}, function() {}); +}); + +Tinytest.addAsync( +'Triggers - createRouteBoundTriggers - matching trigger', +function(test, done) { + var context = {route: {name: "abc"}}; + var redirect = function() {}; + + var trigger = function(c, r) { + test.equal(c, context); + test.equal(r, redirect); + done(); + }; + + var triggers = Triggers.createRouteBoundTriggers([trigger], ["abc"]); + triggers[0](context, redirect); +}); + +Tinytest.addAsync( +'Triggers - createRouteBoundTriggers - multiple matching triggers', +function(test, done) { + var context = {route: {name: "abc"}}; + var redirect = function() {}; + var doneCount = 0; + + var trigger = function(c, r) { + test.equal(c, context); + test.equal(r, redirect); + doneCount++; + }; + + var triggers = Triggers.createRouteBoundTriggers([trigger, trigger], ["abc"]); + triggers[0](context, redirect); + triggers[1](context, redirect); + + test.equal(doneCount, 2); + done(); +}); + +Tinytest.addAsync( +'Triggers - createRouteBoundTriggers - no matching trigger', +function(test, done) { + var context = {route: {name: "some-other-route"}}; + var redirect = function() {}; + var doneCount = 0; + + var trigger = function(c, r) { + test.equal(c, context); + test.equal(r, redirect); + doneCount++; + }; + + var triggers = Triggers.createRouteBoundTriggers([trigger], ["abc"]); + triggers[0](context, redirect); + + test.equal(doneCount, 0); + done(); +}); + +Tinytest.addAsync( +'Triggers - createRouteBoundTriggers - negate logic', +function(test, done) { + var context = {route: {name: "some-other-route"}}; + var redirect = function() {}; + var doneCount = 0; + + var trigger = function(c, r) { + test.equal(c, context); + test.equal(r, redirect); + doneCount++; + }; + + var triggers = Triggers.createRouteBoundTriggers([trigger], ["abc"], true); + triggers[0](context, redirect); + + test.equal(doneCount, 1); + done(); +}); + +Tinytest.addAsync( +'Triggers - applyFilters - no filters', +function(test, done) { + var original = []; + test.equal(Triggers.applyFilters(original), original); + done(); +}); + +Tinytest.addAsync( +'Triggers - applyFilters - single trigger to array', +function(test, done) { + var original = function() {}; + test.equal(Triggers.applyFilters(original)[0], original); + done(); +}); + +Tinytest.addAsync( +'Triggers - applyFilters - only and except both', +function(test, done) { + var original = []; + try { + Triggers.applyFilters(original, {only: [], except: []}); + } catch(ex) { + test.isTrue(/only and except/.test(ex.message)); + done(); + } +}); + +Tinytest.addAsync( +'Triggers - applyFilters - only is not an array', +function(test, done) { + var original = []; + try { + Triggers.applyFilters(original, {only: "name"}); + } catch(ex) { + test.isTrue(/to be an array/.test(ex.message)); + done(); + } +}); + +Tinytest.addAsync( +'Triggers - applyFilters - except is not an array', +function(test, done) { + var original = []; + try { + Triggers.applyFilters(original, {except: "name"}); + } catch(ex) { + test.isTrue(/to be an array/.test(ex.message)); + done(); + } +}); + +Tinytest.addAsync( +'Triggers - applyFilters - unsupported filter', +function(test, done) { + var original = []; + try { + Triggers.applyFilters(original, {wowFilter: []}); + } catch(ex) { + test.isTrue(/not supported/.test(ex.message)); + done(); + } +}); + +Tinytest.addAsync( +'Triggers - applyFilters - just only filter', +function(test, done) { + var bounded = Triggers.applyFilters(done, {only: ["abc"]}); + bounded[0]({route: {name: "abc"}}); +}); + +Tinytest.addAsync( +'Triggers - applyFilters - just except filter', +function(test, done) { + var bounded = Triggers.applyFilters(done, {except: ["abc"]}); + bounded[0]({route: {name: "some-other"}}); +}); + +function MakeTriggers(count, store) { + var triggers = []; + + function addTrigger(no) { + triggers.push(function() { + store.push(no); + }); + } + + for(var lc=0; lc(.*)<\/script/)[1]; + return InjectData._decode(encodedData)['fast-render-data']; +} \ No newline at end of file diff --git a/packages/kadira-flow-router/test/server/plugins/fast_render.js b/packages/kadira-flow-router/test/server/plugins/fast_render.js new file mode 100644 index 000000000..1ec77866a --- /dev/null +++ b/packages/kadira-flow-router/test/server/plugins/fast_render.js @@ -0,0 +1,35 @@ +Tinytest.add('Server - Fast Render - fast render supported route', function (test) { + var expectedFastRenderCollData = [ + [{_id: "two", aa: 20}, {_id: "one", aa: 10}] + ]; + + var data = GetFRData('/the-fast-render-route'); + test.equal(data.collectionData['fast-render-coll'], expectedFastRenderCollData); +}); + +Tinytest.add('Server - Fast Render - fast render supported route with params', function (test) { + var expectedFastRenderCollData = [ + [{ + _id: "one", + params: {id: 'the-id'}, + queryParams: {aa: "20"} + }] + ]; + + var data = GetFRData('/the-fast-render-route-params/the-id?aa=20'); + test.equal(data.collectionData['fast-render-coll'], expectedFastRenderCollData); +}); + +Tinytest.add('Server - Fast Render - no fast render supported route', function (test) { + var data = GetFRData('/no-fast-render'); + test.equal(data.collectionData, {}); +}); + +Tinytest.add('Server - Fast Render - with group routes', function (test) { + var expectedFastRenderCollData = [ + [{_id: "two", aa: 20}, {_id: "one", aa: 10}] + ]; + + var data = GetFRData('/fr/have-fr'); + test.equal(data.collectionData['fast-render-coll'], expectedFastRenderCollData); +}); \ No newline at end of file diff --git a/sandstorm.js b/sandstorm.js index d82e945ab..aa94fb508 100644 --- a/sandstorm.js +++ b/sandstorm.js @@ -1,7 +1,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { Meteor } from 'meteor/meteor'; import { Picker } from 'meteor/communitypackages:picker'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; // Sandstorm context is detected using the METEOR_SETTINGS environment variable // in the package definition. From 90a64a74038331f3d340f923c0d0a8e7458f58d3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 23 Oct 2024 00:51:43 +0300 Subject: [PATCH 033/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2ded1dd7..3417d7f7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,8 @@ and fixes the following bugs: 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. From 9d92a79a284147380eb08a0c011a8815dae5209b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 23 Oct 2024 01:02:48 +0300 Subject: [PATCH 034/356] Updated to MongoDB 6.0.18 at Snap Candidate. Thanks to MongoDB developers ! --- snapcraft.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/snapcraft.yaml b/snapcraft.yaml index 4b5173bfc..14dc7f919 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.60' +version: '7.61' 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.17.tgz + source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.18.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.60/wekan-7.60-amd64.zip - unzip wekan-7.60-amd64.zip - rm wekan-7.60-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.61/wekan-7.61-amd64.zip + unzip wekan-7.61-amd64.zip + rm wekan-7.61-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 23396d1bd69c91e9bae72ba561ae7d1a397bc0b1 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 23 Oct 2024 01:05:15 +0300 Subject: [PATCH 035/356] v7.61 --- CHANGELOG.md | 4 +++- Stackerfile.yml | 2 +- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- 7 files changed, 12 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3417d7f7b..a4c5c2f4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,12 +15,14 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# 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: diff --git a/Stackerfile.yml b/Stackerfile.yml index 6758fc50e..ef18cebe6 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.60.0" +appVersion: "v7.61.0" files: userUploads: - README.md diff --git a/package-lock.json b/package-lock.json index 00b101d74..a934dcdcc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.60.0", + "version": "v7.61.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index fd0d6a71c..6356e2573 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.60.0", + "version": "v7.61.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 127697223..72b21f761 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.60 + Wekan REST API v7.61 @@ -1548,7 +1548,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
        • - Wekan REST API v7.60 + Wekan REST API v7.61
        • @@ -2067,7 +2067,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
          -

          Wekan REST API v7.60

          +

          Wekan REST API v7.61

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

          diff --git a/public/api/wekan.yml b/public/api/wekan.yml index e83547e97..5b58780dc 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.60 + version: v7.61 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 782d2d442..0895a85d5 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 = 760, + appVersion = 761, # Increment this for every release. - appMarketingVersion = (defaultText = "7.60.0~2024-09-23"), + appMarketingVersion = (defaultText = "7.61.0~2024-10-23"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, From 559251eb0d8aea6a714f14224497d0a25c7a3864 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 23 Oct 2024 02:04:30 +0300 Subject: [PATCH 036/356] Copied updated Docs from wiki to WeKan repo. Thanks to xet7 ! --- docs/DeveloperDocs/Design-Principles.md | 46 ++++++++++------- docs/DeveloperDocs/Meteor.md | 38 ++++++++++++++ .../DeveloperDocs/WeKan-Multiverse-Roadmap.md | 23 ++++++++- docs/DragDrop/Drag-Drop.md | 7 ++- docs/Email/Troubleshooting-Mail.md | 2 + docs/Features/Linked-Cards.md | 11 ++++ docs/Login/SAML.md | 16 +++--- docs/Platforms/FOSS/Cloud/CloudFlare.md | 5 ++ docs/Platforms/FOSS/Docker/Docker.md | 2 +- docs/Platforms/FOSS/Sandstorm/Sandstorm.md | 50 ++++++++++++++++++- docs/Platforms/FOSS/s390x.md | 3 ++ docs/Platforms/Propietary/Windows/Offline.md | 8 +-- docs/_Sidebar.md | 1 + 13 files changed, 180 insertions(+), 32 deletions(-) create mode 100644 docs/Features/Linked-Cards.md create mode 100644 docs/Platforms/FOSS/Cloud/CloudFlare.md diff --git a/docs/DeveloperDocs/Design-Principles.md b/docs/DeveloperDocs/Design-Principles.md index c94995b5e..04ba5d308 100644 --- a/docs/DeveloperDocs/Design-Principles.md +++ b/docs/DeveloperDocs/Design-Principles.md @@ -1,23 +1,35 @@ ## 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: +- 2024-08 Design discussion here: https://github.com/wekan/wekan/discussions/5507 +- Original WeKan Design: + - 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. + - 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 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 +- Some good parts of Jira: + - Multiple assignees \ No newline at end of file diff --git a/docs/DeveloperDocs/Meteor.md b/docs/DeveloperDocs/Meteor.md index a16f03e71..8bda65362 100644 --- a/docs/DeveloperDocs/Meteor.md +++ b/docs/DeveloperDocs/Meteor.md @@ -1,11 +1,49 @@ +## 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/ diff --git a/docs/DeveloperDocs/WeKan-Multiverse-Roadmap.md b/docs/DeveloperDocs/WeKan-Multiverse-Roadmap.md index ee774d38c..da4a15c13 100644 --- a/docs/DeveloperDocs/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/DragDrop/Drag-Drop.md b/docs/DragDrop/Drag-Drop.md index b0b65a8e7..4da4c6b5f 100644 --- a/docs/DragDrop/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/Email/Troubleshooting-Mail.md b/docs/Email/Troubleshooting-Mail.md index a845436d8..27d1c0f61 100644 --- a/docs/Email/Troubleshooting-Mail.md +++ b/docs/Email/Troubleshooting-Mail.md @@ -141,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/Features/Linked-Cards.md b/docs/Features/Linked-Cards.md new file mode 100644 index 000000000..40767613f --- /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, and link cards from other boards to current board, seeing realtimes changes from all those cards at dashboard. + +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/Login/SAML.md b/docs/Login/SAML.md index 55ddce08c..f6fe2a4d7 100644 --- a/docs/Login/SAML.md +++ b/docs/Login/SAML.md @@ -9,20 +9,24 @@ Sandstorm has SAML login, and old WeKan that will be updated someday: How SAML works: -- https://ssoready.com/blog/engineering/a-gentle-intro-to-saml/ +- 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 - -SAML at SSOReady: - -- https://github.com/ssoready/ssoready -- https://news.ycombinator.com/item?id=41110850 +- Recent SAML issue https://news.ycombinator.com/item?id=41586031 The SSO Wall of Shame: 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/Platforms/FOSS/Docker/Docker.md b/docs/Platforms/FOSS/Docker/Docker.md index 5ca41dcb9..2cbf68987 100644 --- a/docs/Platforms/FOSS/Docker/Docker.md +++ b/docs/Platforms/FOSS/Docker/Docker.md @@ -283,4 +283,4 @@ sudo docker compose up -d --build * [Caddy Webserver Config](Caddy-Webserver-Config) * [Nginx Webserver Config](Nginx-Webserver-Config) -* [Apache Webserver Config](Apache) +* [Apache Webserver Config](Apache) \ No newline at end of file diff --git a/docs/Platforms/FOSS/Sandstorm/Sandstorm.md b/docs/Platforms/FOSS/Sandstorm/Sandstorm.md index efeed0273..b419d60a1 100644 --- a/docs/Platforms/FOSS/Sandstorm/Sandstorm.md +++ b/docs/Platforms/FOSS/Sandstorm/Sandstorm.md @@ -1,6 +1,54 @@ +# Sandstorm at Debian and Ubuntu + +### Sandstorm CloudFlare DNS settings + +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: +``` +*.example.com example.com { + tls { + load /etc/caddy/certs + alpn http/1.1 + } + + reverse_proxy 123.123.123.123:80 +} +``` +At /opt/sandstorm/sandstorm.conf is domain, http port etc. + +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 + +How to install Sandstorm: 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/Platforms/FOSS/s390x.md b/docs/Platforms/FOSS/s390x.md index bab1345e7..4041afbab 100644 --- a/docs/Platforms/FOSS/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/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index a584a6946..39adb0d1a 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -8,19 +8,19 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.59-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.59/wekan-7.59-amd64-windows.zip) +1. [wekan-7.61-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.61/wekan-7.61-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) -3. [mongodb-windows-x86_64-6.0.17-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.17-signed.msi) +3. [mongodb-windows-x86_64-6.0.18-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.18-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.17-signed.msi` . In installer, uncheck downloading MongoDB compass. +6. Double click `mongodb-windows-x86_64-6.0.18-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.59-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.61-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/docs/_Sidebar.md b/docs/_Sidebar.md index f6cb0ac4b..67c8a8431 100644 --- a/docs/_Sidebar.md +++ b/docs/_Sidebar.md @@ -128,6 +128,7 @@ # Features +* [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) From db6ebe04701f0a1ec3e416eee0084705d7477e2a Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 23 Oct 2024 02:06:35 +0300 Subject: [PATCH 037/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4c5c2f4e..610d13d31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ 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: + +- [Copied updated Docs from wiki to WeKan repo](https://github.com/wekan/wekan/commit/559251eb0d8aea6a714f14224497d0a25c7a3864). + 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: From 96627540da0b6e12890ee1660f4ff0f469bb0e25 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 30 Oct 2024 22:34:53 +0200 Subject: [PATCH 038/356] Updated docs about Linked Cards. Thanks to xet7 ! --- docs/Features/Linked-Cards.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Features/Linked-Cards.md b/docs/Features/Linked-Cards.md index 40767613f..36575a292 100644 --- a/docs/Features/Linked-Cards.md +++ b/docs/Features/Linked-Cards.md @@ -1,6 +1,6 @@ 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, and link cards from other boards to current board, seeing realtimes changes from all those cards at dashboard. +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. From a90fc396a9343443915d80683f72fd258f6beafe Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 30 Oct 2024 22:36:26 +0200 Subject: [PATCH 039/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 610d13d31..b43b68f51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ This release 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. Thanks to above GitHub users for their contributions and translators for their translations. From 508bbb37ce960c88c2a7d0b2cb35e5d8790df19f Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 31 Oct 2024 00:11:15 +0200 Subject: [PATCH 040/356] Add docs about how at LXC/LXD Fix: System does not fully support snapd. Thanks to xet7 ! --- docs/Platforms/FOSS/Snap/Many-Snaps-on-LXC.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/Platforms/FOSS/Snap/Many-Snaps-on-LXC.md b/docs/Platforms/FOSS/Snap/Many-Snaps-on-LXC.md index cb8cac0ca..6814d3471 100644 --- a/docs/Platforms/FOSS/Snap/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 +``` From 1557970170fce6b5a86c2f210b8afe3688c7b190 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 31 Oct 2024 00:13:33 +0200 Subject: [PATCH 041/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b43b68f51..1dc7b2058 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ This release adds the following updates: 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. Thanks to above GitHub users for their contributions and translators for their translations. From 8ac9353c5313402e00160843ca57405ebeb128cb Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 31 Oct 2024 00:22:33 +0200 Subject: [PATCH 042/356] Copied from Sandstorm developer discussions to docs fix for running Sandstorm at Ubuntu 24.04. Thanks to xet7 ! --- docs/Platforms/FOSS/Sandstorm/Sandstorm.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/Platforms/FOSS/Sandstorm/Sandstorm.md b/docs/Platforms/FOSS/Sandstorm/Sandstorm.md index b419d60a1..f01edb0d3 100644 --- a/docs/Platforms/FOSS/Sandstorm/Sandstorm.md +++ b/docs/Platforms/FOSS/Sandstorm/Sandstorm.md @@ -44,7 +44,17 @@ Installing Sandstorm works normally ### Ubuntu 24.04 amd64 -How to install Sandstorm: https://groups.google.com/g/sandstorm-dev/c/4JFhr7B7QZU +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 From 1e86d67bfefa6e1f1de82444582a2eeb507e7a20 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 31 Oct 2024 00:25:30 +0200 Subject: [PATCH 043/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1dc7b2058..d45a8971a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ This release adds the following updates: 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. Thanks to above GitHub users for their contributions and translators for their translations. From d5635c3a8914c1fe40367df7be7e5f440bb1b643 Mon Sep 17 00:00:00 2001 From: Emmanuel Ferdman Date: Fri, 1 Nov 2024 23:09:16 -0700 Subject: [PATCH 044/356] Update `ldap-sync.py` reference Signed-off-by: Emmanuel Ferdman --- docs/Login/LDAP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Login/LDAP.md b/docs/Login/LDAP.md index d2671fe89..ba9d299e0 100644 --- a/docs/Login/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): ``` From 751b51916769cc7facc31d77ea5e2d60ea167cb4 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 2 Nov 2024 18:17:34 +0200 Subject: [PATCH 045/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d45a8971a..809e00301 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,8 @@ This release adds the following updates: 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. Thanks to above GitHub users for their contributions and translators for their translations. From b24acefa6f6696b702f2c3ceb28d6d6290017bb2 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 2 Nov 2024 18:18:14 +0200 Subject: [PATCH 046/356] Updated dependencies. Thanks to developers of dependencies! --- package-lock.json | 10 +++++----- package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index a934dcdcc..d2f7e6f0d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1373,9 +1373,9 @@ "integrity": "sha512-SBbbYWvFYvsxHVL+q6ZB8lT3rp2LSvfALD2V52H+MGH2IgJsevy0VtXRkRG0EsUewwOaDTIKBn9DlD8HQ3GSwg==" }, "meteor-node-stubs": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.10.tgz", - "integrity": "sha512-zP1AVg8sOATz15yfy11R2VTx+IZFfAOXi8GuZa8tOfeVT1tKaqDooAbFylnIXwpStSu6HRBUhQqHtR06Qr9aEA==", + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.12.tgz", + "integrity": "sha512-mzp3KI2aGNDhFlCVXPd0pfMr2z9A5vl1AqEgV13/z7AgKwcbd2X+ymE6tpSAMkrrQb40PU9PC2B59bCb6XkAaw==", "requires": { "@meteorjs/crypto-browserify": "^3.12.1", "assert": "^2.1.0", @@ -1384,7 +1384,7 @@ "console-browserify": "^1.2.0", "constants-browserify": "^1.0.0", "domain-browser": "^4.23.0", - "elliptic": "^6.5.7", + "elliptic": "^6.6.0", "events": "^3.3.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", @@ -1711,7 +1711,7 @@ "bundled": true }, "elliptic": { - "version": "6.5.7", + "version": "6.6.0", "bundled": true, "requires": { "bn.js": "^4.11.9", diff --git a/package.json b/package.json index 6356e2573..aa9e36106 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "markdown-it-emoji": "^2.0.0", "markdown-it-mathjax3": "^4.3.2", "meteor-accounts-t9n": "^2.6.0", - "meteor-node-stubs": "^1.2.10", + "meteor-node-stubs": "^1.2.12", "minio": "^7.1.3", "moment": "^2.29.4", "os": "^0.1.2", From 282a5b30f9575347bc632552b34dd96e466473ee Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 2 Nov 2024 18:19:50 +0200 Subject: [PATCH 047/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 809e00301..68d796e5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,8 @@ This release adds the following updates: 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. Thanks to above GitHub users for their contributions and translators for their translations. From 324be07b859937966f98feb2aeea8f344c689bb0 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 2 Nov 2024 18:34:51 +0200 Subject: [PATCH 048/356] Add more stack size. Thanks to xet7 ! --- Dockerfile | 2 +- Dockerfile.arm64v8 | 2 +- releases/virtualbox/start-wekan.sh | 2 +- snap-src/bin/wekan-control | 2 +- stacksmith/user-scripts/run.sh | 4 ++-- start-wekan.sh | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 28d9cada4..bdb6da3f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -272,4 +272,4 @@ WORKDIR /home/wekan/app # # CMD ["node", "/build/main.js"] # CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 /build/main.js"] -CMD ["bash", "-c", "ulimit -s 65500; exec node /build/main.js"] +CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 --max-old-space-size=8192 /build/main.js"] diff --git a/Dockerfile.arm64v8 b/Dockerfile.arm64v8 index f4fb3325e..6731b1380 100644 --- a/Dockerfile.arm64v8 +++ b/Dockerfile.arm64v8 @@ -88,5 +88,5 @@ RUN \ EXPOSE $PORT USER wekan -CMD ["bash", "-c", "ulimit -s 65500; exec node /home/wekan/bundle/main.js"] +CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 --max-old-space-size=8192 /home/wekan/bundle/main.js"] diff --git a/releases/virtualbox/start-wekan.sh b/releases/virtualbox/start-wekan.sh index 09ec12765..ee0ca3265 100755 --- a/releases/virtualbox/start-wekan.sh +++ b/releases/virtualbox/start-wekan.sh @@ -411,6 +411,6 @@ #export WAIT_SPINNER=Bounce #--------------------------------------------------------------------- - node main.js & >> ~/repos/wekan.log + node --stack-size=65500 --max-old-space-size=8192 main.js & >> ~/repos/wekan.log cd ~/repos #done diff --git a/snap-src/bin/wekan-control b/snap-src/bin/wekan-control index e4260851d..900a81b2f 100755 --- a/snap-src/bin/wekan-control +++ b/snap-src/bin/wekan-control @@ -36,4 +36,4 @@ 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 $APPLICATION_START" +bash -c "ulimit -s 65500; exec $NODE_PATH/node --stack-size=65500 --max-old-space-size=8192 $APPLICATION_START" diff --git a/stacksmith/user-scripts/run.sh b/stacksmith/user-scripts/run.sh index 1e9d3b460..84741eabc 100755 --- a/stacksmith/user-scripts/run.sh +++ b/stacksmith/user-scripts/run.sh @@ -20,9 +20,9 @@ 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 node main.js" +bash -c "ulimit -s 65500; exec --stack-size=65500 --max-old-space-size=8192 node main.js" #--------------------------------------------------------------------- #node main.js diff --git a/start-wekan.sh b/start-wekan.sh index c51c8ff45..8f5210385 100755 --- a/start-wekan.sh +++ b/start-wekan.sh @@ -555,7 +555,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 main.js" + bash -c "ulimit -s 65500; exec node --stack-size=65500 --max-old-space-size=8192 main.js" #node main.js #--------------------------------------------------------------------- # & >> ../../wekan.log From 75ca4920c5ff2a6db31136a98f4d4c58b6eee418 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 2 Nov 2024 18:36:10 +0200 Subject: [PATCH 049/356] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68d796e5e..64ca59e77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,11 @@ This release adds the following updates: - [Updated dependencies](https://github.com/wekan/wekan/commit/b24acefa6f6696b702f2c3ceb28d6d6290017bb2). Thanks to developers of dependencies. +and fixes the following bugs: + +- [Add more stack size](https://github.com/wekan/wekan/commit/324be07b859937966f98feb2aeea8f344c689bb0). + Thanks to xet7. + Thanks to above GitHub users for their contributions and translators for their translations. # v7.61 2024-10-23 WeKan ® release From a27f8ecfa9971740a019a955d3f8d0e5a5dd8dab Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 2 Nov 2024 18:55:33 +0200 Subject: [PATCH 050/356] Fix Warning: missing space before text for line 210 of jade file client/components/activities/activities.jade Thanks to xet7 ! --- client/components/activities/activities.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/activities/activities.jade b/client/components/activities/activities.jade index 0c3c175b8..f725ff1c8 100644 --- a/client/components/activities/activities.jade +++ b/client/components/activities/activities.jade @@ -207,7 +207,7 @@ template(name="activity") | {{_ 'activity-archived' (sanitize listLabel)}}. if($eq activity.activityType 'changedListTitle') - {{_ 'activity-changedListTitle' (sanitize listLabel) boardLabelLink}} + | {{_ 'activity-changedListTitle' (sanitize listLabel) boardLabelLink}} //- member activity ---------------------------------------------------- if($eq activity.activityType 'joinMember') From 89347abf53af86a1cb58ab249b1051f0f9046db6 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 2 Nov 2024 18:56:52 +0200 Subject: [PATCH 051/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 64ca59e77..27ff54e32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,8 @@ 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. From bd83b3bc8ec6b0a803f56733253d5c98e0d03aeb Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 11 Nov 2024 17:46:09 +0200 Subject: [PATCH 052/356] Add info about if Snap slow --- .github/ISSUE_TEMPLATE.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index eb98d15dd..9bbe942fd 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -5,6 +5,8 @@ Please report these issues elsewhere: - SECURITY ISSUES, PGP EMAIL: https://github.com/wekan/wekan/blob/main/SECURITY.md - UCS: https://github.com/wekan/univention/issues +If WeKan Snap is slow, try this: https://github.com/wekan/wekan/wiki/Cron + **[PLEASE UPGRADE](https://github.com/wekan/wekan/wiki/Backup)** to the newest WeKan ® before reporting an issue, if possible. From 8a446de3e93e326725280e64e86fd2885dc29a3e Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Fri, 17 Mar 2023 21:26:40 +0100 Subject: [PATCH 053/356] added comment section on card details to avoid loading the card comment activities from the server - and added to show only the activities a card - to display the card comments a connection to the server was needed to get the activities of the card comments, now, it's not necessary - also performance relevant. until now there were a lot of activities loaded, now only of the current card --- client/components/activities/activities.css | 37 --------- client/components/activities/activities.jade | 79 +++++--------------- client/components/activities/activities.js | 58 ++++++-------- client/components/activities/comments.css | 75 +++++++++++++++++++ client/components/activities/comments.jade | 56 ++++++++++++++ client/components/activities/comments.js | 35 +++++++++ client/components/cards/cardDetails.jade | 31 +++++--- client/components/cards/cardDetails.js | 8 +- client/components/settings/settingBody.jade | 4 +- client/components/settings/settingBody.js | 16 ++-- client/components/sidebar/sidebar.jade | 9 ++- client/components/sidebar/sidebar.js | 17 ++++- client/components/users/userHeader.jade | 6 -- client/components/users/userHeader.js | 20 ----- imports/i18n/data/de.i18n.json | 7 +- imports/i18n/data/en.i18n.json | 7 +- models/boards.js | 28 +++++++ models/cards.js | 12 +++ models/users.js | 61 --------------- server/migrations.js | 16 ++++ server/publications/activities.js | 13 ++-- 21 files changed, 329 insertions(+), 266 deletions(-) diff --git a/client/components/activities/activities.css b/client/components/activities/activities.css index 4d630d098..febd43e56 100644 --- a/client/components/activities/activities.css +++ b/client/components/activities/activities.css @@ -49,43 +49,6 @@ margin-top: 5px; padding: 5px; } -.activities .activity .activity-desc .reactions { - display: flex; - margin-top: 5px; - gap: 5px; -} -.activities .activity .activity-desc .reactions .open-comment-reaction-popup { - display: flex; - align-items: center; - text-decoration: none; - height: 24px; -} -.activities .activity .activity-desc .reactions .open-comment-reaction-popup i.fa.fa-smile-o { - font-size: 17px; - font-weight: 500; - margin-left: 2px; -} -.activities .activity .activity-desc .reactions .open-comment-reaction-popup i.fa.fa-plus { - font-size: 8px; - margin-top: -7px; - margin-left: 1px; -} -.activities .activity .activity-desc .reactions .reaction { - cursor: pointer; - border: 1px solid #808080; - border-radius: 15px; - display: flex; - padding: 2px 5px; -} -.activities .activity .activity-desc .reactions .reaction.selected { - background-color: #b0c4de; -} -.activities .activity .activity-desc .reactions .reaction:hover { - background-color: #b0c4de; -} -.activities .activity .activity-desc .reactions .reaction .reaction-count { - font-size: 12px; -} .activities .activity .activity-desc .activity-checklist { display: block; border-radius: 3px; diff --git a/client/components/activities/activities.jade b/client/components/activities/activities.jade index f725ff1c8..f44673ae4 100644 --- a/client/components/activities/activities.jade +++ b/client/components/activities/activities.jade @@ -1,11 +1,12 @@ template(name="activities") - .activities.js-sidebar-activities - //- We should use Template.dynamic here but there is a bug with - //- blaze-components: https://github.com/peerlibrary/meteor-blaze-components/issues/30 - if $eq mode "board" - +boardActivities - else - +cardActivities + if showActivities + .activities.js-sidebar-activities + //- We should use Template.dynamic here but there is a bug with + //- blaze-components: https://github.com/peerlibrary/meteor-blaze-components/issues/30 + if $eq mode "board" + +boardActivities + else + +cardActivities template(name="boardActivities") each activityData in currentBoard.activities @@ -15,31 +16,6 @@ template(name="cardActivities") each activityData in activities +activity(activity=activityData card=card mode=mode) -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} - template(name="activity") .activity(data-id=activity._id) +userAvatar(userId=activity.user._id) @@ -129,38 +105,17 @@ template(name="activity") | {{{_ 'activity-checklist-item-removed' (sanitize activity.checklist.title) cardLink}}}. //- comment activity ---------------------------------------------------- - if($eq mode 'card') - //- if we are in card mode we display the comment in a way that it - //- can be edited by the owner - if($eq activity.activityType 'addComment') - +inlinedForm(classNames='js-edit-comment') - +editor(autofocus=true) - = activity.comment.text - .edit-controls - button.primary(type="submit") {{_ 'edit'}} - .fa.fa-times-thin.js-close-inlined-form - else - .activity-comment - +viewer - = activity.comment.text - +commentReactions(reactions=activity.comment.reactions commentId=activity.comment._id) - if($eq currentUser._id activity.comment.userId) - +editOrDeleteComment - else if currentUser.isBoardAdmin - +editOrDeleteComment + if($eq activity.activityType 'deleteComment') + | {{{_ 'activity-deleteComment' activity.commentId}}}. - if($eq activity.activityType 'deleteComment') - | {{{_ 'activity-deleteComment' activity.commentId}}}. + if($eq activity.activityType 'editComment') + | {{{_ 'activity-editComment' activity.commentId}}}. - if($eq activity.activityType 'editComment') - | {{{_ 'activity-editComment' activity.commentId}}}. - else - //- if we are not in card mode we only display a summary of the comment - if($eq activity.activityType 'addComment') - | {{{_ 'activity-on' cardLink}}} - a.activity-comment(href="{{ activity.card.originRelativeUrl }}") - +viewer - = activity.comment.text + if($eq activity.activityType 'addComment') + | {{{_ 'activity-on' cardLink}}} + a.activity-comment(href="{{ activity.card.originRelativeUrl }}") + +viewer + = activity.comment.text //- date activity ------------------------------------------------ if($eq activity.activityType 'a-receivedAt') diff --git a/client/components/activities/activities.js b/client/components/activities/activities.js index 1609dabf3..439e29619 100644 --- a/client/components/activities/activities.js +++ b/client/components/activities/activities.js @@ -17,8 +17,10 @@ BlazeComponent.extendComponent({ if (mode) { const capitalizedMode = Utils.capitalize(mode); let searchId; + const showActivities = this.showActivities(); if (mode === 'linkedcard' || mode === 'linkedboard') { - searchId = Utils.getCurrentCard().linkedId; + const currentCard = Utils.getCurrentCard(); + searchId = currentCard.linkedId; mode = mode.replace('linked', ''); } else if (mode === 'card') { searchId = Utils.getCurrentCardId(); @@ -26,11 +28,9 @@ BlazeComponent.extendComponent({ 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.subscribe('activities', mode, searchId, limit, showActivities, () => { this.loadNextPageLocked = false; // TODO the guard can be removed as soon as the TODO above is resolved @@ -56,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() { @@ -249,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/cards/cardDetails.jade b/client/components/cards/cardDetails.jade index 9ee5b2fb0..06e29e448 100644 --- a/client/components/cards/cardDetails.jade +++ b/client/components/cards/cardDetails.jade @@ -569,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 eec4af51d..7e0e9eea6 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(); }, @@ -377,8 +373,8 @@ BlazeComponent.extendComponent({ Session.set('cardDetailsIsDragging', false); Session.set('cardDetailsIsMouseDown', false); }, - 'click #toggleButton'() { - Meteor.call('toggleSystemMessages'); + 'click #toggleShowActivitiesCard'() { + this.data().toggleShowActivities(); }, 'click #toggleCustomFieldsGridButton'() { Meteor.call('toggleCustomFieldsGrid'); diff --git a/client/components/settings/settingBody.jade b/client/components/settings/settingBody.jade index e23ffe3e2..d4ece7827 100644 --- a/client/components/settings/settingBody.jade +++ b/client/components/settings/settingBody.jade @@ -144,8 +144,6 @@ template(name='tableVisibilityModeSettings') 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 @@ -185,6 +183,8 @@ template(name='announcementSettings') 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 diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js index 8cb782933..9a345d42a 100644 --- a/client/components/settings/settingBody.js +++ b/client/components/settings/settingBody.js @@ -336,12 +336,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 +359,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 +376,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 +399,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/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index bef7b054f..a2a788aad 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -28,9 +28,16 @@ template(name='homeSidebar') .materialCheckBox(class="{{#if hiddenMinicardLabelText}}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") diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js index f03f2c738..f7e8f2b2b 100644 --- a/client/components/sidebar/sidebar.js +++ b/client/components/sidebar/sidebar.js @@ -136,7 +136,7 @@ BlazeComponent.extendComponent({ Blaze.registerHelper('Sidebar', () => Sidebar); -Template.homeSidebar.helpers({ +BlazeComponent.extendComponent({ hiddenMinicardLabelText() { currentUser = ReactiveCache.getCurrentUser(); if (currentUser) { @@ -147,7 +147,20 @@ Template.homeSidebar.helpers({ return false; } }, -}); + showActivities() { + let ret = Utils.getCurrentBoard().showActivities ?? false; + return ret; + }, + events() { + return [ + { + 'click #toggleShowActivitiesBoard'() { + Utils.getCurrentBoard().toggleShowActivities(); + }, + }, + ]; + }, +}).register('homeSidebar'); Template.boardInfoOnMyBoardsPopup.helpers({ hideCardCounterList() { diff --git a/client/components/users/userHeader.jade b/client/components/users/userHeader.jade index ae14b0dd9..14f6cadcf 100644 --- a/client/components/users/userHeader.jade +++ b/client/components/users/userHeader.jade @@ -153,12 +153,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 41fe3d051..33212d94b 100644 --- a/client/components/users/userHeader.js +++ b/client/components/users/userHeader.js @@ -283,16 +283,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) { @@ -352,16 +342,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') }, diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index 3e8b49a74..0b7fc45d2 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -294,6 +294,7 @@ "color-white": "Weiß", "color-yellow": "gelb", "unset-color": "Nicht festgelegt", + "comments": "Kommentare", "comment": "Kommentar speichern", "comment-placeholder": "Kommentar schreiben", "comment-only": "Nur Kommentare", @@ -443,7 +444,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", @@ -1109,8 +1110,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": "Alle Board Aktivitäten anzeigen abschalten", + "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", diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 707d69b52..847827958 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -295,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -444,7 +445,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", @@ -1110,8 +1111,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", diff --git a/models/boards.js b/models/boards.js index 721e24c98..690063718 100644 --- a/models/boards.js +++ b/models/boards.js @@ -634,6 +634,10 @@ Boards.attachSchema( decimal: true, defaultValue: -1, }, + showActivities: { + type: Boolean, + defaultValue: false, + }, }), ); @@ -1544,6 +1548,10 @@ Boards.mutations({ move(sortIndex) { return { $set: { sort: sortIndex } }; }, + + toggleShowActivities() { + return { $set: { showActivities: !this.showActivities } }; + }, }); function boardRemover(userId, doc) { @@ -1751,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 ec0173d49..dd57c5145 100644 --- a/models/cards.js +++ b/models/cards.js @@ -473,6 +473,10 @@ Cards.attachSchema( optional: true, defaultValue: 0, }, + showActivities: { + type: Boolean, + defaultValue: false, + }, }), ); @@ -2167,6 +2171,14 @@ Cards.mutations({ } }, + toggleShowActivities() { + return { + $set: { + showActivities: !this.showActivities, + } + }; + }, + setCustomField(customFieldId, value) { // todo const index = this.customFieldIndex(customFieldId); diff --git a/models/users.js b/models/users.js index 44b012d29..4baa6cdbb 100644 --- a/models/users.js +++ b/models/users.js @@ -193,13 +193,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? @@ -865,11 +858,6 @@ Users.helpers({ return profile.hideCheckedItems || false; }, - hasHiddenSystemMessages() { - const profile = this.profile || {}; - return profile.hiddenSystemMessages || false; - }, - hasCustomFieldsGrid() { const profile = this.profile || {}; return profile.customFieldsGrid || false; @@ -1069,14 +1057,6 @@ Users.mutations({ }; }, - toggleSystem(value = false) { - return { - $set: { - 'profile.hiddenSystemMessages': !value, - }, - }; - }, - toggleFieldsGrid(value = false) { return { $set: { @@ -1216,10 +1196,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()); @@ -1262,43 +1238,6 @@ Meteor.methods({ 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/server/migrations.js b/server/migrations.js index f0b09b61e..58e370e6d 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -1457,3 +1457,19 @@ Migrations.add('remove-unused-planning-poker', () => { noValidateMulti, ); }); + +Migrations.add('remove-user-profile-hiddenSystemMessages', () => { + Users.update( + { + "profile.hiddenSystemMessages": { + $exists: true, + }, + }, + { + $unset: { + "profile.hiddenSystemMessages": 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, From d949753d547359678d1f04ad0cdd66e6fe2a0b68 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Fri, 15 Sep 2023 21:47:05 +0200 Subject: [PATCH 054/356] preparation hide checklist-items per card --- client/components/cards/checklists.css | 16 ------------- client/components/cards/checklists.jade | 31 +++++++------------------ client/components/cards/checklists.js | 25 +++----------------- client/components/cards/minicard.css | 17 -------------- client/components/cards/minicard.jade | 6 ----- client/components/cards/minicard.js | 5 ---- imports/i18n/data/en.i18n.json | 2 -- models/checklists.js | 20 ---------------- 8 files changed, 12 insertions(+), 110 deletions(-) diff --git a/client/components/cards/checklists.css b/client/components/cards/checklists.css index 6d8a346f8..c730e0ac8 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; diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index ff2721f34..36fdf5b33 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -9,10 +9,18 @@ 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-checked-items'}}") + //span.toggle-switch-title + if hideCheckedItems + input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton" checked="checked") + else + input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton") + label.toggle-label(for="toggleHideCheckedItemsButton") .card-checklist-items each checklist in checklists - +checklistDetail(checklist=checklist) + +checklistDetail(checklist = checklist) if canModifyCard +inlinedForm(autoclose=false classNames="js-add-checklist" cardId = cardId) @@ -122,27 +130,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 diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index 20e94466a..8fb146960 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -202,6 +202,9 @@ BlazeComponent.extendComponent({ events() { const events = { + 'click #toggleHideCheckedItemsButton'() { + Meteor.call('toggleHideCheckedItems'); + }, }; return [ @@ -271,11 +274,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(); @@ -303,26 +301,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; 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 2cbeea2fc..7630c85cd 100644 --- a/client/components/cards/minicard.jade +++ b/client/components/cards/minicard.jade @@ -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 8ee83d348..d9b5a3806 100644 --- a/client/components/cards/minicard.js +++ b/client/components/cards/minicard.js @@ -88,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/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 847827958..1fb8d8dc3 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -1244,8 +1244,6 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", diff --git a/models/checklists.js b/models/checklists.js index 7655b5f59..c07a97e04 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 @@ -142,9 +134,6 @@ Checklists.helpers({ const items = ReactiveCache.getChecklist({ _id: this._id }).items; return _.pluck(items, '_id').indexOf(itemId); }, - hasShowChecklistAtMinicard() { - return showAtMinicard || false; - }, }); Checklists.allow({ @@ -202,15 +191,6 @@ Checklists.mutations({ }, }; }, - - toggleShowChecklistAtMinicard(checklistId) { - const value = this.hasShowChecklistAtMinicard(); - return { - $set: { - 'showAtMinicard': !value, - }, - }; - }, }); if (Meteor.isServer) { From 9fa36c39913418fc9218cf03ceb6916f7cf95da7 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Sat, 18 Mar 2023 19:54:36 +0100 Subject: [PATCH 055/356] hide checklist-items per card now - performance relevant - more granular setting --- client/components/cards/cardDetails.jade | 2 +- client/components/cards/cardDetails.js | 3 +++ client/components/cards/checklists.jade | 16 ++++++++-------- client/components/cards/checklists.js | 20 ++++---------------- models/cards.js | 15 +++++++++++++++ models/users.js | 21 --------------------- server/migrations.js | 16 ++++++++++++++++ 7 files changed, 47 insertions(+), 46 deletions(-) diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade index 06e29e448..99288bfe6 100644 --- a/client/components/cards/cardDetails.jade +++ b/client/components/cards/cardDetails.jade @@ -549,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) diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index 7e0e9eea6..ce1e9066a 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -376,6 +376,9 @@ BlazeComponent.extendComponent({ 'click #toggleShowActivitiesCard'() { this.data().toggleShowActivities(); }, + 'click #toggleHideCheckedChecklistItems'() { + this.data().toggleHideCheckedChecklistItems(); + }, 'click #toggleCustomFieldsGridButton'() { Meteor.call('toggleCustomFieldsGrid'); }, diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 36fdf5b33..3d5dc2f81 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -12,15 +12,15 @@ template(name="checklists") if currentUser.isBoardMember .material-toggle-switch(title="{{_ 'hide-checked-items'}}") //span.toggle-switch-title - if hideCheckedItems - input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton" checked="checked") + if card.hideCheckedChecklistItems + input.toggle-switch(type="checkbox" id="toggleHideCheckedChecklistItems" checked="checked") else - input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton") - label.toggle-label(for="toggleHideCheckedItemsButton") + input.toggle-switch(type="checkbox" id="toggleHideCheckedChecklistItems") + label.toggle-label(for="toggleHideCheckedChecklistItems") .card-checklist-items each checklist in checklists - +checklistDetail(checklist = checklist) + +checklistDetail(checklist = checklist card = card) if canModifyCard +inlinedForm(autoclose=false classNames="js-add-checklist" cardId = cardId) @@ -55,7 +55,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'}} @@ -104,7 +104,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) @@ -113,7 +113,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 card.hideCheckedChecklistItems}} invisible{{/if}}{{/if}}" role="checkbox" aria-checked="{{#if item.isFinished }}true{{else}}false{{/if}}" tabindex="0") if canModifyCard .check-box-container diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index 8fb146960..f6f543571 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -201,15 +201,8 @@ BlazeComponent.extendComponent({ }, events() { - const events = { - 'click #toggleHideCheckedItemsButton'() { - Meteor.call('toggleHideCheckedItems'); - }, - }; - return [ { - ...events, 'click .js-open-checklist-details-menu': Popup.open('checklistActions'), 'submit .js-add-checklist': this.addChecklist, 'submit .js-edit-checklist-title': this.editChecklist, @@ -274,10 +267,10 @@ Template.checklists.helpers({ const ret = card.checklists(); return ret; }, - hideCheckedItems() { - const currentUser = ReactiveCache.getCurrentUser(); - if (currentUser) return currentUser.hasHideCheckedItems(); - return false; + hideCheckedChecklistItems() { + const card = ReactiveCache.getCard(this.cardId); + const ret = card.hideCheckedChecklistItems ?? false; + return ret; }, }); @@ -338,11 +331,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/models/cards.js b/models/cards.js index dd57c5145..3d6a90d73 100644 --- a/models/cards.js +++ b/models/cards.js @@ -477,6 +477,13 @@ Cards.attachSchema( type: Boolean, defaultValue: false, }, + hideCheckedChecklistItems: { + /** + * hide the checked checklist-items? + */ + type: Boolean, + optional: true, + }, }), ); @@ -2179,6 +2186,14 @@ Cards.mutations({ }; }, + toggleHideCheckedChecklistItems() { + return { + $set: { + hideCheckedChecklistItems: !this.hideCheckedChecklistItems, + } + }; + }, + setCustomField(customFieldId, value) { // todo const index = this.customFieldIndex(customFieldId); diff --git a/models/users.js b/models/users.js index 4baa6cdbb..7bee1c0f3 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? @@ -853,11 +846,6 @@ Users.helpers({ return profile.showDesktopDragHandles || false; }, - hasHideCheckedItems() { - const profile = this.profile || {}; - return profile.hideCheckedItems || false; - }, - hasCustomFieldsGrid() { const profile = this.profile || {}; return profile.customFieldsGrid || false; @@ -1048,15 +1036,6 @@ Users.mutations({ }; }, - toggleHideCheckedItems() { - const value = this.hasHideCheckedItems(); - return { - $set: { - 'profile.hideCheckedItems': !value, - }, - }; - }, - toggleFieldsGrid(value = false) { return { $set: { diff --git a/server/migrations.js b/server/migrations.js index 58e370e6d..2930d6fa7 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -1473,3 +1473,19 @@ Migrations.add('remove-user-profile-hiddenSystemMessages', () => { noValidateMulti, ); }); + +Migrations.add('remove-user-profile-hideCheckedItems', () => { + Users.update( + { + "profile.hideCheckedItems": { + $exists: true, + }, + }, + { + $unset: { + "profile.hideCheckedItems": 1, + }, + }, + noValidateMulti, + ); +}); From 8448068d22ceb110cf60005c14260349fd4f3795 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Sat, 18 Mar 2023 20:07:27 +0100 Subject: [PATCH 056/356] hide empty checklist if checklist items are hidden conditions are: - the checklist must have at least 1 checklist item - all checklist items have to be finished - the option "hide checked checklist items" is set at card details --- client/components/cards/checklists.jade | 3 ++- models/checklists.js | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 3d5dc2f81..74d2f0d01 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -20,7 +20,8 @@ template(name="checklists") .card-checklist-items each checklist in checklists - +checklistDetail(checklist = checklist card = card) + if checklist.showChecklist card.hideCheckedChecklistItems + +checklistDetail(checklist = checklist card = card) if canModifyCard +inlinedForm(autoclose=false classNames="js-add-checklist" cardId = cardId) diff --git a/models/checklists.js b/models/checklists.js index c07a97e04..52852bd68 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -118,6 +118,13 @@ Checklists.helpers({ isFinished() { return 0 !== this.itemCount() && this.itemCount() === this.finishedCount(); }, + showChecklist(hideCheckedChecklistItems) { + let ret = true; + if (this.isFinished() && hideCheckedChecklistItems === true) { + ret = false; + } + return ret; + }, checkAllItems() { const checkItems = ReactiveCache.getChecklistItems({ checklistId: this._id }); checkItems.forEach(function(item) { From 00e5808a4ce266ae565352a721a9c1d754e58165 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Mon, 27 May 2024 21:37:09 +0200 Subject: [PATCH 057/356] Checklist multiline option, adding option to keep the origin order if many items are added at the checklist top --- client/components/cards/checklists.jade | 6 +++++- client/components/cards/checklists.js | 5 ++++- imports/i18n/data/en.i18n.json | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 74d2f0d01..32109001c 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -73,6 +73,10 @@ template(name="addChecklistItemForm") .material-toggle-switch(title="{{_ 'newlineBecomesNewChecklistItem'}}") input.toggle-switch(type="checkbox" id="toggleNewlineBecomesNewChecklistItem") label.toggle-label(for="toggleNewlineBecomesNewChecklistItem") + if $eq position 'top' + .material-toggle-switch(title="{{_ 'newlineBecomesNewChecklistItemOriginOrder'}}") + input.toggle-switch(type="checkbox" id="toggleNewlineBecomesNewChecklistItemOriginOrder") + label.toggle-label(for="toggleNewlineBecomesNewChecklistItemOriginOrder") template(name="editChecklistItemForm") a.fa.fa-copy(title="{{_ 'copy-text-to-clipboard'}}") @@ -96,7 +100,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 diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index f6f543571..1d39b5fa5 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,7 +128,9 @@ 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(); + } } } for (let checklistItem of checklistItems) { diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 1fb8d8dc3..df6ef1ea3 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -1196,6 +1196,7 @@ "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Newline becomes new checklist item, origin order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", From c5712f5ae0df22892e05be760369a04ebc392433 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Mon, 27 May 2024 21:38:00 +0200 Subject: [PATCH 058/356] Checklist multiline option, adding description to both checkbox options --- client/components/cards/checklists.jade | 2 ++ imports/i18n/data/en.i18n.json | 2 ++ 2 files changed, 4 insertions(+) diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 32109001c..5958f4cf5 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -73,10 +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'}}") diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index df6ef1ea3..10fc42d2a 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -1196,7 +1196,9 @@ "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newLineNewItem": "newline = new item", "newlineBecomesNewChecklistItemOriginOrder": "Newline becomes new checklist item, origin order", + "originOrder": "origin order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", From 1d7eb8a03b66fec74b2b1a5092b6f90b6998c2e9 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Tue, 12 Nov 2024 09:58:57 +0100 Subject: [PATCH 059/356] Checklist, adding many items set's now the sorting correctly --- client/components/cards/checklists.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index 1d39b5fa5..403874abb 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -133,19 +133,23 @@ BlazeComponent.extendComponent({ } } } + 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. From bb17feaa17ae2c655f79138ae3cffe16cd9f6ef3 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Wed, 7 Aug 2024 21:32:40 +0200 Subject: [PATCH 060/356] Checklist, hide checked checklist items (configureable at each checklist) --- client/components/cards/checklists.jade | 23 ++++++++++++++++------- client/components/cards/checklists.js | 14 +++++++++----- imports/i18n/data/en.i18n.json | 4 +++- models/cards.js | 8 ++++---- models/checklists.js | 18 ++++++++++++++++-- 5 files changed, 48 insertions(+), 19 deletions(-) diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 5958f4cf5..9e2e91dd7 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -10,17 +10,17 @@ template(name="checklists") a.add-checklist-top.js-open-inlined-form(title="{{_ 'add-checklist'}}") i.fa.fa-plus if currentUser.isBoardMember - .material-toggle-switch(title="{{_ 'hide-checked-items'}}") + .material-toggle-switch(title="{{_ 'hide-finished-checklist'}}") //span.toggle-switch-title - if card.hideCheckedChecklistItems - input.toggle-switch(type="checkbox" id="toggleHideCheckedChecklistItems" checked="checked") + if card.hideFinishedChecklistIfItemsAreHidden + input.toggle-switch(type="checkbox" id="toggleHideFinishedChecklist" checked="checked") else - input.toggle-switch(type="checkbox" id="toggleHideCheckedChecklistItems") - label.toggle-label(for="toggleHideCheckedChecklistItems") + input.toggle-switch(type="checkbox" id="toggleHideFinishedChecklist") + label.toggle-label(for="toggleHideFinishedChecklist") .card-checklist-items each checklist in checklists - if checklist.showChecklist card.hideCheckedChecklistItems + if checklist.showChecklist card.hideFinishedChecklistIfItemsAreHidden +checklistDetail(checklist = checklist card = card) if canModifyCard @@ -120,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 card.hideCheckedChecklistItems}} invisible{{/if}}{{/if}}" + .js-checklist-item.checklist-item(class="{{#if item.isFinished }}is-checked{{#if checklist.hideCheckedChecklistItems}} invisible{{/if}}{{/if}}" role="checkbox" aria-checked="{{#if item.isFinished }}true{{else}}false{{/if}}" tabindex="0") if canModifyCard .check-box-container @@ -148,6 +148,15 @@ 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}}") template(name="copyChecklistPopup") +copyAndMoveChecklist diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index 403874abb..f539c4005 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -220,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, }, ]; @@ -274,11 +278,6 @@ Template.checklists.helpers({ const ret = card.checklists(); return ret; }, - hideCheckedChecklistItems() { - const card = ReactiveCache.getCard(this.cardId); - const ret = card.hideCheckedChecklistItems ?? false; - return ret; - }, }); BlazeComponent.extendComponent({ @@ -313,6 +312,11 @@ 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(); + }, } ] } diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 10fc42d2a..f47f16b57 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -958,6 +958,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", @@ -1251,5 +1252,6 @@ "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items" } diff --git a/models/cards.js b/models/cards.js index 3d6a90d73..9da59a4e4 100644 --- a/models/cards.js +++ b/models/cards.js @@ -477,9 +477,9 @@ Cards.attachSchema( type: Boolean, defaultValue: false, }, - hideCheckedChecklistItems: { + hideFinishedChecklistIfItemsAreHidden: { /** - * hide the checked checklist-items? + * hide completed checklist? */ type: Boolean, optional: true, @@ -2186,10 +2186,10 @@ Cards.mutations({ }; }, - toggleHideCheckedChecklistItems() { + toggleHideFinishedChecklist() { return { $set: { - hideCheckedChecklistItems: !this.hideCheckedChecklistItems, + hideFinishedChecklistIfItemsAreHidden: !this.hideFinishedChecklistIfItemsAreHidden, } }; }, diff --git a/models/checklists.js b/models/checklists.js index 52852bd68..2326eceeb 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -63,6 +63,13 @@ Checklists.attachSchema( type: Number, decimal: true, }, + hideCheckedChecklistItems: { + /** + * hide the checked checklist-items? + */ + type: Boolean, + optional: true, + }, }), ); @@ -118,9 +125,9 @@ Checklists.helpers({ isFinished() { return 0 !== this.itemCount() && this.itemCount() === this.finishedCount(); }, - showChecklist(hideCheckedChecklistItems) { + showChecklist(hideFinishedChecklistIfItemsAreHidden) { let ret = true; - if (this.isFinished() && hideCheckedChecklistItems === true) { + if (this.isFinished() && hideFinishedChecklistIfItemsAreHidden === true && (this.hideCheckedChecklistItems === true || this.hideAllChecklistItems)) { ret = false; } return ret; @@ -198,6 +205,13 @@ Checklists.mutations({ }, }; }, + toggleHideCheckedChecklistItems() { + return { + $set: { + hideCheckedChecklistItems: !this.hideCheckedChecklistItems, + } + }; + }, }); if (Meteor.isServer) { From 0783b733b0a13439a0ced8958388b637f984bce0 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Mon, 12 Aug 2024 19:21:08 +0200 Subject: [PATCH 061/356] Checklist, hide all checklist items possible, regardless if the checklist item is finished or not --- client/components/cards/checklists.jade | 11 ++++++++++- client/components/cards/checklists.js | 5 +++++ imports/i18n/data/en.i18n.json | 3 ++- models/checklists.js | 20 +++++++++++++++++++- 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 9e2e91dd7..e943e338f 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -120,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 checklist.hideCheckedChecklistItems}} 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 @@ -157,6 +157,15 @@ template(name="checklistActionsPopup") 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 f539c4005..6762eab02 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -317,6 +317,11 @@ BlazeComponent.extendComponent({ this.data().checklist.toggleHideCheckedChecklistItems(); Popup.back(); }, + 'click .js-hide-all-checklist-items'(event) { + event.preventDefault(); + this.data().checklist.toggleHideAllChecklistItems(); + Popup.back(); + }, } ] } diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index f47f16b57..f9b0afaae 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -1253,5 +1253,6 @@ "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" + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/models/checklists.js b/models/checklists.js index 2326eceeb..d30dcc1be 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -70,6 +70,13 @@ Checklists.attachSchema( type: Boolean, optional: true, }, + hideAllChecklistItems: { + /** + * hide all checklist items ? + */ + type: Boolean, + optional: true, + }, }), ); @@ -123,7 +130,11 @@ 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; @@ -212,6 +223,13 @@ Checklists.mutations({ } }; }, + toggleHideAllChecklistItems() { + return { + $set: { + hideAllChecklistItems: !this.hideAllChecklistItems, + } + }; + }, }); if (Meteor.isServer) { From a25eb4ded66d7ad13b9789f30583ca36d65753e8 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 15 Nov 2024 22:39:14 +0200 Subject: [PATCH 062/356] Updated translations. --- imports/i18n/data/en.i18n.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index f9b0afaae..233c3aec4 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -1196,10 +1196,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", - "newLineNewItem": "newline = new item", - "newlineBecomesNewChecklistItemOriginOrder": "Newline becomes new checklist item, origin order", - "originOrder": "origin order", + "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", From b9c2d49a1c9af9af5116be7f997bcc4198995132 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 15 Nov 2024 22:44:46 +0200 Subject: [PATCH 063/356] Updated translations. --- imports/i18n/data/af.i18n.json | 20 +++++++++++++------- imports/i18n/data/af_ZA.i18n.json | 20 +++++++++++++------- imports/i18n/data/ar-DZ.i18n.json | 20 +++++++++++++------- imports/i18n/data/ar-EG.i18n.json | 20 +++++++++++++------- imports/i18n/data/ar.i18n.json | 20 +++++++++++++------- imports/i18n/data/ary.i18n.json | 20 +++++++++++++------- imports/i18n/data/ast-ES.i18n.json | 20 +++++++++++++------- imports/i18n/data/az-AZ.i18n.json | 20 +++++++++++++------- imports/i18n/data/az-LA.i18n.json | 20 +++++++++++++------- imports/i18n/data/az.i18n.json | 20 +++++++++++++------- imports/i18n/data/bg.i18n.json | 20 +++++++++++++------- imports/i18n/data/br.i18n.json | 20 +++++++++++++------- imports/i18n/data/ca.i18n.json | 20 +++++++++++++------- imports/i18n/data/ca_ES.i18n.json | 20 +++++++++++++------- imports/i18n/data/cmn.i18n.json | 20 +++++++++++++------- imports/i18n/data/cs-CZ.i18n.json | 20 +++++++++++++------- imports/i18n/data/cs.i18n.json | 20 +++++++++++++------- imports/i18n/data/cy-GB.i18n.json | 20 +++++++++++++------- imports/i18n/data/cy.i18n.json | 20 +++++++++++++------- imports/i18n/data/da.i18n.json | 20 +++++++++++++------- imports/i18n/data/de-AT.i18n.json | 20 +++++++++++++------- imports/i18n/data/de-CH.i18n.json | 20 +++++++++++++------- imports/i18n/data/de.i18n.json | 21 +++++++++++++-------- imports/i18n/data/de_DE.i18n.json | 20 +++++++++++++------- imports/i18n/data/el-GR.i18n.json | 20 +++++++++++++------- imports/i18n/data/el.i18n.json | 20 +++++++++++++------- imports/i18n/data/en-BR.i18n.json | 20 +++++++++++++------- imports/i18n/data/en-DE.i18n.json | 20 +++++++++++++------- imports/i18n/data/en-GB.i18n.json | 20 +++++++++++++------- imports/i18n/data/en-IT.i18n.json | 20 +++++++++++++------- imports/i18n/data/en-MY.i18n.json | 20 +++++++++++++------- imports/i18n/data/en-YS.i18n.json | 20 +++++++++++++------- imports/i18n/data/en_ZA.i18n.json | 20 +++++++++++++------- imports/i18n/data/eo.i18n.json | 20 +++++++++++++------- imports/i18n/data/es-AR.i18n.json | 20 +++++++++++++------- imports/i18n/data/es-CL.i18n.json | 20 +++++++++++++------- imports/i18n/data/es-LA.i18n.json | 20 +++++++++++++------- imports/i18n/data/es-MX.i18n.json | 20 +++++++++++++------- imports/i18n/data/es-PE.i18n.json | 20 +++++++++++++------- imports/i18n/data/es-PY.i18n.json | 20 +++++++++++++------- imports/i18n/data/es.i18n.json | 20 +++++++++++++------- imports/i18n/data/es_CO.i18n.json | 20 +++++++++++++------- imports/i18n/data/et-EE.i18n.json | 20 +++++++++++++------- imports/i18n/data/eu.i18n.json | 20 +++++++++++++------- imports/i18n/data/fa-IR.i18n.json | 20 +++++++++++++------- imports/i18n/data/fa.i18n.json | 20 +++++++++++++------- imports/i18n/data/fi.i18n.json | 20 +++++++++++++------- imports/i18n/data/fr-CH.i18n.json | 20 +++++++++++++------- imports/i18n/data/fr-FR.i18n.json | 20 +++++++++++++------- imports/i18n/data/fr.i18n.json | 20 +++++++++++++------- imports/i18n/data/fy-NL.i18n.json | 20 +++++++++++++------- imports/i18n/data/fy.i18n.json | 20 +++++++++++++------- imports/i18n/data/gl-ES.i18n.json | 20 +++++++++++++------- imports/i18n/data/gl.i18n.json | 20 +++++++++++++------- imports/i18n/data/gu-IN.i18n.json | 20 +++++++++++++------- imports/i18n/data/he-IL.i18n.json | 20 +++++++++++++------- imports/i18n/data/he.i18n.json | 20 +++++++++++++------- imports/i18n/data/hi-IN.i18n.json | 20 +++++++++++++------- imports/i18n/data/hi.i18n.json | 20 +++++++++++++------- imports/i18n/data/hr.i18n.json | 20 +++++++++++++------- imports/i18n/data/hu.i18n.json | 20 +++++++++++++------- imports/i18n/data/hy.i18n.json | 20 +++++++++++++------- imports/i18n/data/id.i18n.json | 20 +++++++++++++------- imports/i18n/data/ig.i18n.json | 20 +++++++++++++------- imports/i18n/data/it.i18n.json | 20 +++++++++++++------- imports/i18n/data/ja-HI.i18n.json | 20 +++++++++++++------- imports/i18n/data/ja.i18n.json | 20 +++++++++++++------- imports/i18n/data/ka.i18n.json | 20 +++++++++++++------- imports/i18n/data/km.i18n.json | 20 +++++++++++++------- imports/i18n/data/ko-KR.i18n.json | 20 +++++++++++++------- imports/i18n/data/ko.i18n.json | 20 +++++++++++++------- imports/i18n/data/lt.i18n.json | 20 +++++++++++++------- imports/i18n/data/lv.i18n.json | 20 +++++++++++++------- imports/i18n/data/mk.i18n.json | 20 +++++++++++++------- imports/i18n/data/mn.i18n.json | 20 +++++++++++++------- imports/i18n/data/ms-MY.i18n.json | 20 +++++++++++++------- imports/i18n/data/ms.i18n.json | 20 +++++++++++++------- imports/i18n/data/nb.i18n.json | 20 +++++++++++++------- imports/i18n/data/nl-NL.i18n.json | 20 +++++++++++++------- imports/i18n/data/nl.i18n.json | 20 +++++++++++++------- imports/i18n/data/oc.i18n.json | 20 +++++++++++++------- imports/i18n/data/or_IN.i18n.json | 20 +++++++++++++------- imports/i18n/data/pa.i18n.json | 20 +++++++++++++------- imports/i18n/data/pl-PL.i18n.json | 20 +++++++++++++------- imports/i18n/data/pl.i18n.json | 20 +++++++++++++------- imports/i18n/data/pt-BR.i18n.json | 20 +++++++++++++------- imports/i18n/data/pt.i18n.json | 20 +++++++++++++------- imports/i18n/data/pt_PT.i18n.json | 20 +++++++++++++------- imports/i18n/data/ro-RO.i18n.json | 20 +++++++++++++------- imports/i18n/data/ro.i18n.json | 20 +++++++++++++------- imports/i18n/data/ru-UA.i18n.json | 20 +++++++++++++------- imports/i18n/data/ru.i18n.json | 20 +++++++++++++------- imports/i18n/data/sk.i18n.json | 20 +++++++++++++------- imports/i18n/data/sl.i18n.json | 20 +++++++++++++------- imports/i18n/data/sr.i18n.json | 20 +++++++++++++------- imports/i18n/data/sv.i18n.json | 20 +++++++++++++------- imports/i18n/data/sw.i18n.json | 20 +++++++++++++------- imports/i18n/data/ta.i18n.json | 20 +++++++++++++------- imports/i18n/data/th.i18n.json | 20 +++++++++++++------- imports/i18n/data/tlh.i18n.json | 20 +++++++++++++------- imports/i18n/data/tr.i18n.json | 20 +++++++++++++------- imports/i18n/data/ug.i18n.json | 20 +++++++++++++------- imports/i18n/data/uk-UA.i18n.json | 20 +++++++++++++------- imports/i18n/data/uk.i18n.json | 20 +++++++++++++------- imports/i18n/data/uz-AR.i18n.json | 20 +++++++++++++------- imports/i18n/data/uz-LA.i18n.json | 20 +++++++++++++------- imports/i18n/data/uz-UZ.i18n.json | 20 +++++++++++++------- imports/i18n/data/uz.i18n.json | 20 +++++++++++++------- imports/i18n/data/ve-CC.i18n.json | 20 +++++++++++++------- imports/i18n/data/ve-PP.i18n.json | 20 +++++++++++++------- imports/i18n/data/ve.i18n.json | 20 +++++++++++++------- imports/i18n/data/vi-VN.i18n.json | 20 +++++++++++++------- imports/i18n/data/vi.i18n.json | 20 +++++++++++++------- imports/i18n/data/vl-SS.i18n.json | 20 +++++++++++++------- imports/i18n/data/vo.i18n.json | 20 +++++++++++++------- imports/i18n/data/wa-RR.i18n.json | 20 +++++++++++++------- imports/i18n/data/wa.i18n.json | 20 +++++++++++++------- imports/i18n/data/wo.i18n.json | 20 +++++++++++++------- imports/i18n/data/xh.i18n.json | 20 +++++++++++++------- imports/i18n/data/yi.i18n.json | 20 +++++++++++++------- imports/i18n/data/yo.i18n.json | 20 +++++++++++++------- imports/i18n/data/yue_CN.i18n.json | 20 +++++++++++++------- imports/i18n/data/zgh.i18n.json | 20 +++++++++++++------- imports/i18n/data/zh-CN.i18n.json | 20 +++++++++++++------- imports/i18n/data/zh-GB.i18n.json | 20 +++++++++++++------- imports/i18n/data/zh-HK.i18n.json | 20 +++++++++++++------- imports/i18n/data/zh-Hans.i18n.json | 20 +++++++++++++------- imports/i18n/data/zh-Hant.i18n.json | 20 +++++++++++++------- imports/i18n/data/zh-TW.i18n.json | 20 +++++++++++++------- imports/i18n/data/zh.i18n.json | 20 +++++++++++++------- imports/i18n/data/zu-ZA.i18n.json | 20 +++++++++++++------- imports/i18n/data/zu.i18n.json | 20 +++++++++++++------- 132 files changed, 1716 insertions(+), 925 deletions(-) diff --git a/imports/i18n/data/af.i18n.json b/imports/i18n/data/af.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/af_ZA.i18n.json b/imports/i18n/data/af_ZA.i18n.json index 957c5901a..256a0ccab 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ar-DZ.i18n.json b/imports/i18n/data/ar-DZ.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ar-EG.i18n.json b/imports/i18n/data/ar-EG.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index 5931f0382..ed0d68d54 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", @@ -294,6 +295,7 @@ "color-white": "أبيض", "color-yellow": "yellow", "unset-color": "غير محدد", + "comments": "Comments", "comment": "تعليق", "comment-placeholder": "أكتب تعليق", "comment-only": "التعليق فقط", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "انهيار", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ary.i18n.json b/imports/i18n/data/ary.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ast-ES.i18n.json b/imports/i18n/data/ast-ES.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/az-AZ.i18n.json b/imports/i18n/data/az-AZ.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/az-LA.i18n.json b/imports/i18n/data/az-LA.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/az.i18n.json b/imports/i18n/data/az.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/bg.i18n.json b/imports/i18n/data/bg.i18n.json index f80c79bfc..93962cde4 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", @@ -294,6 +295,7 @@ "color-white": "бяло", "color-yellow": "жълто", "unset-color": "Премахни", + "comments": "Comments", "comment": "Коментирай", "comment-placeholder": "Напиши коментар", "comment-only": "Само коментар", @@ -443,7 +445,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": "Импорт", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Събери", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index b08c77a88..edbc6fcb8 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "melen", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ca.i18n.json b/imports/i18n/data/ca.i18n.json index b13b3872f..fd560512b 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", @@ -294,6 +295,7 @@ "color-white": "blanc", "color-yellow": "groc", "unset-color": "Desactivat", + "comments": "Comments", "comment": "Comentari", "comment-placeholder": "Escriu un comentari", "comment-only": "Només comentaris", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Contraure", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ca_ES.i18n.json b/imports/i18n/data/ca_ES.i18n.json index 55802814a..4c380824d 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/cmn.i18n.json b/imports/i18n/data/cmn.i18n.json index ccfe6ac9d..315dc6d43 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/cs-CZ.i18n.json b/imports/i18n/data/cs-CZ.i18n.json index cd82d7797..aef3e65a0 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", @@ -294,6 +295,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", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Sbalit", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/cs.i18n.json b/imports/i18n/data/cs.i18n.json index 3cca071ac..1fa81d377 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", @@ -294,6 +295,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", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,8 @@ "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", @@ -1193,7 +1196,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,11 +1248,11 @@ "translation": "Překlad", "text": "Text", "translation-text": "Text překladu", - "show-at-minicard": "Zobrazit na minikartě", - "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", "collapse": "Sbalit", - "uncollapse": "Rozbalit" + "uncollapse": "Rozbalit", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/cy-GB.i18n.json b/imports/i18n/data/cy-GB.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/cy.i18n.json b/imports/i18n/data/cy.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/da.i18n.json b/imports/i18n/data/da.i18n.json index b8284cd9f..c083a0f1d 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", @@ -294,6 +295,7 @@ "color-white": "hvid", "color-yellow": "gul", "unset-color": "Nulstil", + "comments": "Comments", "comment": "Kommentér", "comment-placeholder": "Skriv kommentar", "comment-only": "Kun kommentarer", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Konvertér til markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Sammenfold", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/de-AT.i18n.json b/imports/i18n/data/de-AT.i18n.json index 2276afcb7..086b4e8f5 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", @@ -294,6 +295,7 @@ "color-white": "Weiß", "color-yellow": "gelb", "unset-color": "Nicht festgelegt", + "comments": "Comments", "comment": "Kommentar", "comment-placeholder": "Kommentar schreiben", "comment-only": "Nur Kommentare", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Einklappen", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/de-CH.i18n.json b/imports/i18n/data/de-CH.i18n.json index 06db75bc4..fe5fed53a 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", @@ -294,6 +295,7 @@ "color-white": "Weiss", "color-yellow": "gelb", "unset-color": "Nicht festgelegt", + "comments": "Comments", "comment": "Kommentar speichern", "comment-placeholder": "Kommentar schreiben", "comment-only": "Nur Kommentare", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Einklappen", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index 0b7fc45d2..ad35cf7a3 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/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": "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", @@ -294,7 +295,7 @@ "color-white": "Weiß", "color-yellow": "gelb", "unset-color": "Nicht festgelegt", - "comments": "Kommentare", + "comments": "Comments", "comment": "Kommentar speichern", "comment-placeholder": "Kommentar schreiben", "comment-only": "Nur Kommentare", @@ -444,7 +445,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.", - "show-activities": "Aktivitäten anzeigen", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Board erstellen", "home": "Home", "import": "Importieren", @@ -957,6 +958,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", @@ -1110,8 +1112,8 @@ "created-at-newest-first": "Erstelldatum (neueste zuerst)", "created-at-oldest-first": "Erstelldatum (älteste zuerst)", "links-heading": "Links", - "hide-activities-of-all-boards": "Alle Board Aktivitäten anzeigen abschalten", - "now-activities-of-all-boards-are-hidden": "Alle Aktivitäten von allen Boards 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", @@ -1194,7 +1196,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": "Checkliste kopieren", "copyChecklistPopup-title": "Checkliste kopieren", "card-show-lists": "Listen anzeigen", @@ -1243,11 +1248,11 @@ "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", "convert-to-markdown": "Als Markdown konvertieren", "import-board-zip": "Erstelle .zip Datei, die Board JSON Dateien und Board Unterverzeichnisse mit Boardname inklusive Anhängen enthält", "collapse": "Einklappen", - "uncollapse": "Aufklappen" + "uncollapse": "Aufklappen", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index edc3ab4be..16d8fd283 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": "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", @@ -294,6 +295,7 @@ "color-white": "Weiß", "color-yellow": "gelb", "unset-color": "Nicht festgelegt", + "comments": "Comments", "comment": "Kommentar speichern", "comment-placeholder": "Kommentar schreiben", "comment-only": "Nur Kommentare", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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": "Checkliste kopieren", "copyChecklistPopup-title": "Checkliste kopieren", "card-show-lists": "Listen anzeigen", @@ -1242,11 +1248,11 @@ "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", "convert-to-markdown": "Als Markdown konvertieren", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Einklappen", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/el-GR.i18n.json b/imports/i18n/data/el-GR.i18n.json index 46c09e9f6..852c8de26 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", @@ -294,6 +295,7 @@ "color-white": "λευκό", "color-yellow": "κίτρινο", "unset-color": "Unset", + "comments": "Comments", "comment": "Σχόλιο", "comment-placeholder": "Συγγραφή Σχολίου", "comment-only": "Μόνο σχόλιο", @@ -443,7 +445,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": "Εισαγωγή", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Σύμπτυξη", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/el.i18n.json b/imports/i18n/data/el.i18n.json index 09f457cac..3c7678465 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", @@ -294,6 +295,7 @@ "color-white": "λευκό", "color-yellow": "κίτρινο", "unset-color": "Unset", + "comments": "Comments", "comment": "Σχόλιο", "comment-placeholder": "Συγγραφή Σχολίου", "comment-only": "Μόνο σχόλιο", @@ -443,7 +445,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": "Εισαγωγή", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Σύμπτυξη", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/en-BR.i18n.json b/imports/i18n/data/en-BR.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/en-DE.i18n.json b/imports/i18n/data/en-DE.i18n.json index 2235c8f20..b54ddbcfd 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/en-GB.i18n.json b/imports/i18n/data/en-GB.i18n.json index 785e39425..ab5f9fe8d 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/en-IT.i18n.json b/imports/i18n/data/en-IT.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/en-MY.i18n.json b/imports/i18n/data/en-MY.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/en-YS.i18n.json b/imports/i18n/data/en-YS.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/en_ZA.i18n.json b/imports/i18n/data/en_ZA.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index c123ce2aa..aea73ccdf 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "flava", "unset-color": "Unset", + "comments": "Comments", "comment": "Komento", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "translation": "Translation", "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/es-AR.i18n.json b/imports/i18n/data/es-AR.i18n.json index 216dbf495..35e094627 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", @@ -294,6 +295,7 @@ "color-white": "blanco", "color-yellow": "amarillo", "unset-color": "Deseleccionado", + "comments": "Comments", "comment": "Comentario", "comment-placeholder": "Comentar", "comment-only": "Comentar solamente", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/es-CL.i18n.json b/imports/i18n/data/es-CL.i18n.json index c5e8a58eb..6d3a5cf17 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", @@ -294,6 +295,7 @@ "color-white": "blanco", "color-yellow": "amarilla", "unset-color": "Desmarcar", + "comments": "Comments", "comment": "Comentar", "comment-placeholder": "Escribir comentario", "comment-only": "Sólo comentarios", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Contraer", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/es-LA.i18n.json b/imports/i18n/data/es-LA.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/es-MX.i18n.json b/imports/i18n/data/es-MX.i18n.json index f4bb9610d..bb1a4e374 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/es-PE.i18n.json b/imports/i18n/data/es-PE.i18n.json index c4abd2949..59eb7990d 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", @@ -294,6 +295,7 @@ "color-white": "blanco", "color-yellow": "amarillo", "unset-color": "Desmarcar", + "comments": "Comments", "comment": "Comentar", "comment-placeholder": "Escribir comentario", "comment-only": "Sólo comentarios", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Contraer", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/es-PY.i18n.json b/imports/i18n/data/es-PY.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 88fc602a2..888b8f8ca 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s se ha archivado", "activity-attached": "adjuntado(s) %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 en %s desde %s", @@ -294,6 +295,7 @@ "color-white": "blanco", "color-yellow": "amarilla", "unset-color": "Desmarcar", + "comments": "Comments", "comment": "Comentar", "comment-placeholder": "Escribir comentario", "comment-only": "Sólo comentarios", @@ -443,7 +445,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", @@ -956,6 +958,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": "Vale", @@ -1109,8 +1112,8 @@ "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": "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 +1196,10 @@ "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": "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": "Copiar Lista de Tareas", "copyChecklistPopup-title": "Copiar Lista de Tareas", "card-show-lists": "Mostrar Listas de Tarjetas", @@ -1242,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Contraer", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/es_CO.i18n.json b/imports/i18n/data/es_CO.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/et-EE.i18n.json b/imports/i18n/data/et-EE.i18n.json index ad5e8e521..115bd03b0 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", @@ -294,6 +295,7 @@ "color-white": "valge", "color-yellow": "kollane", "unset-color": "Unset", + "comments": "Comments", "comment": "Kuidas", "comment-placeholder": "Kirjutage kommentaar", "comment-only": "Ainult kommentaar", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Kokkupõrge", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 650c4f8fb..1989f91b9 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": "renamed list to %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", @@ -294,6 +295,7 @@ "color-white": "zuria", "color-yellow": "horia", "unset-color": "Zehaztu gabea", + "comments": "Comments", "comment": "Iruzkina", "comment-placeholder": "Idatzi iruzkin bat", "comment-only": "Iruzkinak besterik ez", @@ -443,7 +445,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": "Show Activities", "headerBarCreateBoardPopup-title": "Sortu arbela", "home": "Hasiera", "import": "Inportatu", @@ -956,6 +958,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": "Hide finished checklist", "task": "Ataza", "create-task": "Sortu ataza", "ok": "OK", @@ -1109,8 +1112,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": "Kate txantiloia", @@ -1193,7 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Bihurtu markdown-era", "import-board-zip": "Gehitu taula JSON fitxategiak dituen .zip fitxategia eta eranskinak dituzten taularen izenen azpidirektorioak", "collapse": "Tolestu", - "uncollapse": "Zabaldu" + "uncollapse": "Zabaldu", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/fa-IR.i18n.json b/imports/i18n/data/fa-IR.i18n.json index 61f02a83e..2a04153c4 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": "renamed list to %s", "activity-customfield-created": "فیلد سفارشی %s ایجاد شد", "activity-excluded": "%s از %s مستثنی گردید", "activity-imported": "%s از %s وارد %s شد", @@ -294,6 +295,7 @@ "color-white": "سفید", "color-yellow": "زرد", "unset-color": "بازنشانی", + "comments": "Comments", "comment": "نظر", "comment-placeholder": "درج نظر", "comment-only": "فقط نظر", @@ -443,7 +445,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": "وارد کردن", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "جمع کردن", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/fa.i18n.json b/imports/i18n/data/fa.i18n.json index 61f02a83e..2a04153c4 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 شد", @@ -294,6 +295,7 @@ "color-white": "سفید", "color-yellow": "زرد", "unset-color": "بازنشانی", + "comments": "Comments", "comment": "نظر", "comment-placeholder": "درج نظر", "comment-only": "فقط نظر", @@ -443,7 +445,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": "وارد کردن", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "جمع کردن", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/fi.i18n.json b/imports/i18n/data/fi.i18n.json index 3c161f7b0..954813ac2 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", @@ -294,6 +295,7 @@ "color-white": "valkoinen", "color-yellow": "keltainen", "unset-color": "Poista asetus", + "comments": "Kommentit", "comment": "Kommentti", "comment-placeholder": "Kirjoita kommentti", "comment-only": "Vain kommentointi", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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ä", "convert-to-markdown": "Muuta markdowniksi", "import-board-zip": "Lisää .zip tiedosto jossa on taulu JSON tiedostot, ja taulu nimi alihakemistot liitteineen", "collapse": "Pienennä", - "uncollapse": "Suurenna" + "uncollapse": "Suurenna", + "hideCheckedChecklistItems": "Piilota ruksatut tarkistuslistan kohdat", + "hideAllChecklistItems": "Piilota kaikki tarkistuslistan kohdat" } diff --git a/imports/i18n/data/fr-CH.i18n.json b/imports/i18n/data/fr-CH.i18n.json index 3220ccbe4..1204dbb26 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/fr-FR.i18n.json b/imports/i18n/data/fr-FR.i18n.json index 52b679ef0..e22e54c46 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", @@ -294,6 +295,7 @@ "color-white": "blanc", "color-yellow": "jaune", "unset-color": "Enlever", + "comments": "Comments", "comment": "Commenter", "comment-placeholder": "Écrire un commentaire", "comment-only": "Commentaire uniquement", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convertir en markdown", "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" + "uncollapse": "Développer", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index b2f07d2b8..16ab99632 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": "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", @@ -294,6 +295,7 @@ "color-white": "blanc", "color-yellow": "jaune", "unset-color": "Enlever", + "comments": "Comments", "comment": "Commenter", "comment-placeholder": "Écrire un commentaire", "comment-only": "Commentaire uniquement", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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": "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 check-list", "copyChecklistPopup-title": "Copier la check-list", "card-show-lists": "Afficher les listes sur la carte", @@ -1242,11 +1248,11 @@ "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", "convert-to-markdown": "Convertir en markdown", "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" + "uncollapse": "Développer", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/fy-NL.i18n.json b/imports/i18n/data/fy-NL.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/fy.i18n.json b/imports/i18n/data/fy.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/gl-ES.i18n.json b/imports/i18n/data/gl-ES.i18n.json index be9f609dd..41d3e319f 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "amarelo", "unset-color": "Unset", + "comments": "Comments", "comment": "Comentario", "comment-placeholder": "Escribir un comentario", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/gl.i18n.json b/imports/i18n/data/gl.i18n.json index 9390fa08a..c12b46d58 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "amarelo", "unset-color": "Unset", + "comments": "Comments", "comment": "Comentario", "comment-placeholder": "Escribir un comentario", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/gu-IN.i18n.json b/imports/i18n/data/gu-IN.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/he-IL.i18n.json b/imports/i18n/data/he-IL.i18n.json index 74ddc6da4..cfdbf618b 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index 91297f40b..0ec57d957 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": "renamed list to %s", "activity-customfield-created": "נוצר שדה בהתאמה אישית %s", "activity-excluded": "%s לא נכלל ב%s", "activity-imported": "%s ייובא מ%s אל %s", @@ -294,6 +295,7 @@ "color-white": "לבן", "color-yellow": "צהוב", "unset-color": "בטל הגדרה", + "comments": "Comments", "comment": "לפרסם", "comment-placeholder": "כתיבת הערה", "comment-only": "תגובות בלבד", @@ -443,7 +445,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": "Show Activities", "headerBarCreateBoardPopup-title": "יצירת לוח", "home": "בית", "import": "יבוא", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "translation": "תרגום", "text": "טקסט", "translation-text": "טקסט תרגום", - "show-at-minicard": "הצגה בכרטיסון", - "show-checklist-at-minicard": "הצגת רשימת מטלות על הכרטיסון", "show-subtasks-field": "הצגת שדה תת־משימות", "convert-to-markdown": "המרה ל־Markdown", "import-board-zip": "הוספת קובץ ‎.zip עם קובצי JSON של לוח, ותת־תיקיות בשם הלוח עם קבצים מצורפים", "collapse": "צמצום", - "uncollapse": "ביטול צמצום" + "uncollapse": "ביטול צמצום", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/hi-IN.i18n.json b/imports/i18n/data/hi-IN.i18n.json index d135f6486..9c19de8df 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": "renamed list to %s", "activity-customfield-created": "बनाया रिवाज क्षेत्र %s", "activity-excluded": "छोड़ा %s से %s", "activity-imported": "सूचित कर %s के अंदर %s से %s", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "पीला", "unset-color": "Unset", + "comments": "Comments", "comment": "टिप्पणी", "comment-placeholder": "टिप्पणी लिखें", "comment-only": "केवल टिप्पणी करें", @@ -443,7 +445,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": "Show Activities", "headerBarCreateBoardPopup-title": "बोर्ड निर्माण करना", "home": "Home", "import": "Import", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "संक्षिप्त करें", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/hi.i18n.json b/imports/i18n/data/hi.i18n.json index 5fd1de06a..6f3c595d4 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": "renamed list to %s", "activity-customfield-created": "बनाया रिवाज क्षेत्र %s", "activity-excluded": "छोड़ा %s से %s", "activity-imported": "सूचित कर %s के अंदर %s से %s", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "पीला", "unset-color": "Unset", + "comments": "Comments", "comment": "टिप्पणी", "comment-placeholder": "टिप्पणी लिखें", "comment-only": "केवल टिप्पणी करें", @@ -443,7 +445,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": "Show Activities", "headerBarCreateBoardPopup-title": "बोर्ड निर्माण करना", "home": "Home", "import": "Import", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "संक्षिप्त करें", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/hr.i18n.json b/imports/i18n/data/hr.i18n.json index a0cd095ae..90017a3cf 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", @@ -294,6 +295,7 @@ "color-white": "bijela", "color-yellow": "žuta", "unset-color": "Unset", + "comments": "Comments", "comment": "Komentiraj", "comment-placeholder": "Napiši komentar", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/hu.i18n.json b/imports/i18n/data/hu.i18n.json index 5f7eec193..2f789ce7e 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", @@ -294,6 +295,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", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Összecsukás", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/hy.i18n.json b/imports/i18n/data/hy.i18n.json index fd7c555bf..1b0c54d6f 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/id.i18n.json b/imports/i18n/data/id.i18n.json index 767cff043..77c4fd384 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "kuning", "unset-color": "Unset", + "comments": "Comments", "comment": "Komentar", "comment-placeholder": "Write Comment", "comment-only": "Hanya komentar", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Mengubah ke markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Ciutkan", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ig.i18n.json b/imports/i18n/data/ig.i18n.json index b9c5f451d..d3634e9f7 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/it.i18n.json b/imports/i18n/data/it.i18n.json index c10241c33..bae163a2e 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", @@ -294,6 +295,7 @@ "color-white": "bianco", "color-yellow": "giallo", "unset-color": "Non impostato", + "comments": "Comments", "comment": "Commenta", "comment-placeholder": "Scrivi un commento...", "comment-only": "Solo commenti", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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à", "convert-to-markdown": "Converti in markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Comprimi", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index 597b04316..4b3fc86e9 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": "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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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": "Show Activities", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "translation": "翻訳", "text": "テキスト", "translation-text": "翻訳テキスト", - "show-at-minicard": "ミニカードで表示", - "show-checklist-at-minicard": "ミニカードでチェックリストを表示", "show-subtasks-field": "サブタスクフィールドを表示", "convert-to-markdown": "マークダウンに変換", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Collapse", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index 3d0b82f49..2825c83db 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": "renamed list to %s", "activity-customfield-created": "カスタムフィールド %s を作成しました", "activity-excluded": "%s を %s から除外しました", "activity-imported": "imported %s into %s from %s", @@ -294,6 +295,7 @@ "color-white": "白", "color-yellow": "黄", "unset-color": "設定しない", + "comments": "Comments", "comment": "コメント", "comment-placeholder": "コメントを書く", "comment-only": "コメントのみ", @@ -443,7 +445,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": "Show Activities", "headerBarCreateBoardPopup-title": "ボードの作成", "home": "ホーム", "import": "インポート", @@ -956,6 +958,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": "OK", @@ -1109,8 +1112,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 +1196,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,11 +1248,11 @@ "translation": "翻訳", "text": "テキスト", "translation-text": "翻訳テキスト", - "show-at-minicard": "ミニカードで表示", - "show-checklist-at-minicard": "ミニカードでチェックリストを表示", "show-subtasks-field": "サブタスクフィールドを表示", "convert-to-markdown": "マークダウンに変換", "import-board-zip": "ボードJSONファイルを含む zip ファイルと、添付ファイルを含むボード名サブディレクトリを追加する", "collapse": "折りたたむ", - "uncollapse": "展開" + "uncollapse": "展開", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ka.i18n.json b/imports/i18n/data/ka.i18n.json index 2cb11beb8..2f9b0bbd5 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "ყვითელი", "unset-color": "Unset", + "comments": "Comments", "comment": "კომენტარი", "comment-placeholder": "დაწერეთ კომენტარი", "comment-only": "მხოლოდ კომენტარები", @@ -443,7 +445,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": "იმპორტირება", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/km.i18n.json b/imports/i18n/data/km.i18n.json index d15042d15..6efcff30c 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ko-KR.i18n.json b/imports/i18n/data/ko-KR.i18n.json index 0bc91381c..4fd612e73 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "translation": "번역", "text": "Text", "translation-text": "번역 문구", - "show-at-minicard": "미니카드에 보이기", - "show-checklist-at-minicard": "미니카드에 확인목록 보이기", "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", "collapse": "Collapse", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ko.i18n.json b/imports/i18n/data/ko.i18n.json index 85567707e..67a368e7d 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", @@ -294,6 +295,7 @@ "color-white": "흰색", "color-yellow": "옐로우", "unset-color": "Unset", + "comments": "Comments", "comment": "댓글", "comment-placeholder": "댓글 입력", "comment-only": "댓글만 입력 가능", @@ -443,7 +445,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": "가져오기", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "translation": "번역", "text": "텍스트", "translation-text": "번역 문구", - "show-at-minicard": "미니카드에 보이기", - "show-checklist-at-minicard": "미니카드에 확인목록 보이기", "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", "collapse": "접기", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/lt.i18n.json b/imports/i18n/data/lt.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/lv.i18n.json b/imports/i18n/data/lv.i18n.json index e149dfe42..c473379f7 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", @@ -294,6 +295,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", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Sakļaut", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/mk.i18n.json b/imports/i18n/data/mk.i18n.json index 1d6860ca3..62049fb44 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", @@ -294,6 +295,7 @@ "color-white": "бяло", "color-yellow": "жълто", "unset-color": "Unset", + "comments": "Comments", "comment": "Коментирај", "comment-placeholder": "Напиши коментар", "comment-only": "Само коментари", @@ -443,7 +445,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": "Импорт", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/mn.i18n.json b/imports/i18n/data/mn.i18n.json index 344417590..67aba9493 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json index 00a55c1e5..f6c960ec9 100644 --- a/imports/i18n/data/ms-MY.i18n.json +++ b/imports/i18n/data/ms-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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ms.i18n.json b/imports/i18n/data/ms.i18n.json index 6ba2213c8..db8070033 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", @@ -294,6 +295,7 @@ "color-white": "putih", "color-yellow": "kuning", "unset-color": "tiada tetapan", + "comments": "Comments", "comment": "Komen", "comment-placeholder": "Tulis Komen", "comment-only": "hanya komen", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Buka", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/nb.i18n.json b/imports/i18n/data/nb.i18n.json index e38a90e78..b01e1e079 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", @@ -294,6 +295,7 @@ "color-white": "hvit", "color-yellow": "gul", "unset-color": "Slå av", + "comments": "Comments", "comment": "Lagre", "comment-placeholder": "Skriv kommentar", "comment-only": "Kun kommentar", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Slå sammen", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/nl-NL.i18n.json b/imports/i18n/data/nl-NL.i18n.json index 84261639e..8b580ca06 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", @@ -294,6 +295,7 @@ "color-white": "wit", "color-yellow": "geel", "unset-color": "Ongedefinieerd", + "comments": "Comments", "comment": "Aantekening", "comment-placeholder": "Schrijf aantekening", "comment-only": "Alleen aantekeningen maken", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Klap in", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 63afaea6d..5a7690bf4 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": "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", @@ -294,6 +295,7 @@ "color-white": "wit", "color-yellow": "geel", "unset-color": "Ongedefinieerd", + "comments": "Comments", "comment": "Aantekening Opslaan", "comment-placeholder": "Schrijf aantekening", "comment-only": "Alleen aantekeningen maken", @@ -443,7 +445,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", @@ -956,6 +958,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": "Hide finished checklist", "task": "Taak", "create-task": "Taak aanmaken", "ok": "OK", @@ -1109,8 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Converteer naar markdown", "import-board-zip": "Voeg .zip bestand toe met bord JSON bestanden, en bordnaam subdirectories met bijlagen.", "collapse": "Inklappen", - "uncollapse": "Uitklappen" + "uncollapse": "Uitklappen", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/oc.i18n.json b/imports/i18n/data/oc.i18n.json index 3cf1b1aaa..079765e6d 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", @@ -294,6 +295,7 @@ "color-white": "blanc", "color-yellow": "jaune", "unset-color": "pas reglat", + "comments": "Comments", "comment": "Comentari", "comment-placeholder": "Escrire un comentari", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/or_IN.i18n.json b/imports/i18n/data/or_IN.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/pa.i18n.json b/imports/i18n/data/pa.i18n.json index 00a55c1e5..f6c960ec9 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/pl-PL.i18n.json b/imports/i18n/data/pl-PL.i18n.json index 057cef630..49c451b16 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", @@ -294,6 +295,7 @@ "color-white": "biała", "color-yellow": "żółta", "unset-color": "Nieustawiony", + "comments": "Comments", "comment": "Komentarz", "comment-placeholder": "Dodaj komentarz", "comment-only": "Tylko komentowanie", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Zwiń", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/pl.i18n.json b/imports/i18n/data/pl.i18n.json index 71b937f90..197c67c6a 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", @@ -294,6 +295,7 @@ "color-white": "biała", "color-yellow": "żółta", "unset-color": "Nieustawiony", + "comments": "Comments", "comment": "Komentarz", "comment-placeholder": "Dodaj komentarz", "comment-only": "Tylko komentowanie", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Zamień na markdown", "import-board-zip": "Dodaj plik .zip z tablicą plików JSON, nazwą tablicy i podkatalogami z załącznikami", "collapse": "Zwiń", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index e641154cc..2ba9f895c 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": "renamed list to %s", "activity-customfield-created": "criado campo customizado %s", "activity-excluded": "excluiu %s de %s", "activity-imported": "importado %s em %s de %s", @@ -294,6 +295,7 @@ "color-white": "branco", "color-yellow": "amarelo", "unset-color": "Remover", + "comments": "Comments", "comment": "Comentário", "comment-placeholder": "Escrever Comentário", "comment-only": "Somente comentários", @@ -443,7 +445,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": "Show Activities", "headerBarCreateBoardPopup-title": "Criar Quadro", "home": "Início", "import": "Importar", @@ -956,6 +958,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": "Hide finished checklist", "task": "Tarefa", "create-task": "Criar Tarefa", "ok": "OK", @@ -1109,8 +1112,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": "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 Raia", "moveSwimlanePopup-title": "Mover Raia", "custom-field-stringtemplate": "Template de String", @@ -1193,7 +1196,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": "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": "Copiar Lista de verificação", "copyChecklistPopup-title": "Copiar Lista de verificação", "card-show-lists": "Cartão mostra listas", @@ -1242,11 +1248,11 @@ "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", "convert-to-markdown": "Converter para markdown", "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" + "uncollapse": "Compactar", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/pt.i18n.json b/imports/i18n/data/pt.i18n.json index c4d0b59d7..b91c5f051 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", @@ -294,6 +295,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", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Colapsar", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/pt_PT.i18n.json b/imports/i18n/data/pt_PT.i18n.json index 8488d8f8b..8b5e552a7 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", @@ -294,6 +295,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", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Colapsar", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ro-RO.i18n.json b/imports/i18n/data/ro-RO.i18n.json index 9c3441e00..a575af35f 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ro.i18n.json b/imports/i18n/data/ro.i18n.json index 8469b4801..f52bf2922 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ru-UA.i18n.json b/imports/i18n/data/ru-UA.i18n.json index e38b230c4..233c3aec4 100644 --- a/imports/i18n/data/ru-UA.i18n.json +++ b/imports/i18n/data/ru-UA.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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ru.i18n.json b/imports/i18n/data/ru.i18n.json index 433e98c31..69edd46f0 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", @@ -294,6 +295,7 @@ "color-white": "белый", "color-yellow": "желтый", "unset-color": "Убрать", + "comments": "Comments", "comment": "Добавить комментарий", "comment-placeholder": "Написать комментарий", "comment-only": "Только комментирование", @@ -443,7 +445,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": "Импорт", @@ -956,6 +958,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", @@ -1109,8 +1112,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 +1196,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,11 +1248,11 @@ "translation": "Перевод", "text": "Текст", "translation-text": "Перевод текста", - "show-at-minicard": "Показать на миникарточке", - "show-checklist-at-minicard": "Показать Чек-лист на миникарточке", "show-subtasks-field": "Показывать поля подзадач", "convert-to-markdown": "Конвертировать в markdown", "import-board-zip": "Добавьте ZIP-файл, содержащий файлы JSON доски, а также названия подкаталогов с вложениями.", "collapse": "Свернуть", - "uncollapse": "Развернуть" + "uncollapse": "Развернуть", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index cbcb9b838..5852b1c47 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -49,6 +49,7 @@ "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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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": "Celé meno", "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", @@ -956,6 +958,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 +1112,8 @@ "created-at-newest-first": "Created At (Newest First)", "created-at-oldest-first": "Created At (Oldest First)", "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", @@ -1193,7 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/sl.i18n.json b/imports/i18n/data/sl.i18n.json index c08bbf4e4..361b82c95 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", @@ -294,6 +295,7 @@ "color-white": "bela", "color-yellow": "rumena", "unset-color": "Onemogoči", + "comments": "Comments", "comment": "Komentiraj", "comment-placeholder": "Napiši komentar", "comment-only": "Samo komentar", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Skrči", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/sr.i18n.json b/imports/i18n/data/sr.i18n.json index 24cc5548a..3a1540e7a 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", @@ -294,6 +295,7 @@ "color-white": "бела", "color-yellow": "жута", "unset-color": "Обриши подешавање", + "comments": "Comments", "comment": "Изнеси мишљење", "comment-placeholder": "Простор за изношење мишљења", "comment-only": "Износи мишљење", @@ -443,7 +445,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": "Унеси", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "translation": "Превод", "text": "Текст", "translation-text": "Превод текста", - "show-at-minicard": "Покажи на мини картици", - "show-checklist-at-minicard": "Прикажи списак на мини картици", "show-subtasks-field": "Прикажи поље за подзадатке", "convert-to-markdown": "Претвори у маркдаун", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Сажми", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index 80d972fbf..c3bd1fd4b 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": "renamed list to %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", @@ -294,6 +295,7 @@ "color-white": "vit", "color-yellow": "gul", "unset-color": "Ta bort", + "comments": "Comments", "comment": "Kommentera", "comment-placeholder": "Skriv kommentar", "comment-only": "Kommentera endast", @@ -443,7 +445,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": "Show Activities", "headerBarCreateBoardPopup-title": "Skapa tavla", "home": "Hem", "import": "Importera", @@ -956,6 +958,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": "Hide finished checklist", "task": "Uppgift", "create-task": "Skapa uppgift", "ok": "OK", @@ -1109,8 +1112,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": "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": "Flytta simbana", "moveSwimlanePopup-title": "Flytta simbana", "custom-field-stringtemplate": "Textmall", @@ -1193,7 +1196,10 @@ "checklistActionsPopup-title": "Liståtgärder", "moveChecklist": "Flytta checklista", "moveChecklistPopup-title": "Flytta checklista", - "newlineBecomesNewChecklistItem": "Nyrad blir ny checklista", + "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": "Kopiera checklista", "copyChecklistPopup-title": "Kopiera checklista", "card-show-lists": "Visa listor på kort", @@ -1242,11 +1248,11 @@ "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", "convert-to-markdown": "Konvertera till markdown", "import-board-zip": "Lägga till .zip-filen till tavlans JSON filer, och tavla", "collapse": "Fäll ihop", - "uncollapse": "Expandera" + "uncollapse": "Expandera", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/sw.i18n.json b/imports/i18n/data/sw.i18n.json index 120948e16..83ade0989 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Changia", "comment-placeholder": "Andika changio", "comment-only": "Changia pekee", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ta.i18n.json b/imports/i18n/data/ta.i18n.json index 146e0b77f..cf98cfcb6 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", @@ -294,6 +295,7 @@ "color-white": "வெள்ளை", "color-yellow": "மஞ்சள்", "unset-color": "Unset", + "comments": "Comments", "comment": "கருத்து", "comment-placeholder": "Write Comment", "comment-only": "கருத்து மட்டும்", @@ -443,7 +445,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": "பதிவேற்றம்", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/th.i18n.json b/imports/i18n/data/th.i18n.json index 37c4ad70d..1dd351103 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "เหลือง", "unset-color": "Unset", + "comments": "Comments", "comment": "คอมเม็นต์", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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": "นำเข้า", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/tlh.i18n.json b/imports/i18n/data/tlh.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index 203e81b25..e5d687ec0 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -49,6 +49,7 @@ "activity-archived": "%s Arşive taşındı", "activity-attached": "%s içine %s ekledi", "activity-created": "%s öğesini oluşturdu", + "activity-changedListTitle": "renamed list to %s", "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ı", @@ -294,6 +295,7 @@ "color-white": "beyaz", "color-yellow": "sarı", "unset-color": "Seçilmemiş", + "comments": "Comments", "comment": "Yorum", "comment-placeholder": "Yorum Yaz", "comment-only": "Sadece yorum", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Katla", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ug.i18n.json b/imports/i18n/data/ug.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index 4e6844c70..cdbd5360e 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.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", @@ -294,6 +295,7 @@ "color-white": "білий", "color-yellow": "жовтий", "unset-color": "Скасувати колір", + "comments": "Comments", "comment": "Коментар", "comment-placeholder": "Написати коментар", "comment-only": "Тільки коментарі", @@ -443,7 +445,7 @@ "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": "Повернутися на вашу сторінку дошок.", - "hide-system-messages": "Сховати системні повідомлення", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Створити дошку", "home": "Головна", "import": "Імпорт", @@ -956,6 +958,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": "OK", @@ -1109,8 +1112,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 +1196,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,11 +1248,11 @@ "translation": "Переклад", "text": "Текст", "translation-text": "Перекласти текст", - "show-at-minicard": "Показати на міні-картці", - "show-checklist-at-minicard": "Показати чек-лист на міні-картці", "show-subtasks-field": "Показати поле підзавдань", "convert-to-markdown": "Конвертувати в Markdown", "import-board-zip": "Додати файл .zip, який містить файли JSON дошки та підкаталоги з назвами дошок і вкладеннями", "collapse": "Згорнути", - "uncollapse": "Розгорнути" + "uncollapse": "Розгорнути", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index 4e6844c70..cdbd5360e 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.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", @@ -294,6 +295,7 @@ "color-white": "білий", "color-yellow": "жовтий", "unset-color": "Скасувати колір", + "comments": "Comments", "comment": "Коментар", "comment-placeholder": "Написати коментар", "comment-only": "Тільки коментарі", @@ -443,7 +445,7 @@ "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": "Повернутися на вашу сторінку дошок.", - "hide-system-messages": "Сховати системні повідомлення", + "show-activities": "Show Activities", "headerBarCreateBoardPopup-title": "Створити дошку", "home": "Головна", "import": "Імпорт", @@ -956,6 +958,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": "OK", @@ -1109,8 +1112,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 +1196,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,11 +1248,11 @@ "translation": "Переклад", "text": "Текст", "translation-text": "Перекласти текст", - "show-at-minicard": "Показати на міні-картці", - "show-checklist-at-minicard": "Показати чек-лист на міні-картці", "show-subtasks-field": "Показати поле підзавдань", "convert-to-markdown": "Конвертувати в Markdown", "import-board-zip": "Додати файл .zip, який містить файли JSON дошки та підкаталоги з назвами дошок і вкладеннями", "collapse": "Згорнути", - "uncollapse": "Розгорнути" + "uncollapse": "Розгорнути", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz-AR.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/uz-LA.i18n.json b/imports/i18n/data/uz-LA.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/uz-UZ.i18n.json b/imports/i18n/data/uz-UZ.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/uz.i18n.json b/imports/i18n/data/uz.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ve-CC.i18n.json b/imports/i18n/data/ve-CC.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ve-PP.i18n.json b/imports/i18n/data/ve-PP.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/ve.i18n.json b/imports/i18n/data/ve.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/vi-VN.i18n.json b/imports/i18n/data/vi-VN.i18n.json index 05a882107..4f6684762 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/vi.i18n.json b/imports/i18n/data/vi.i18n.json index 0d65dc470..f76935d82 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", @@ -294,6 +295,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", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "convert-to-markdown": "Convert to markdown", "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", "collapse": "Thu gọn", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/vl-SS.i18n.json b/imports/i18n/data/vl-SS.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/vo.i18n.json b/imports/i18n/data/vo.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/wa-RR.i18n.json b/imports/i18n/data/wa-RR.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/wa.i18n.json b/imports/i18n/data/wa.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/wo.i18n.json b/imports/i18n/data/wo.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/xh.i18n.json b/imports/i18n/data/xh.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/yi.i18n.json b/imports/i18n/data/yi.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/yo.i18n.json b/imports/i18n/data/yo.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/yue_CN.i18n.json b/imports/i18n/data/yue_CN.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/zgh.i18n.json b/imports/i18n/data/zgh.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/zh-CN.i18n.json b/imports/i18n/data/zh-CN.i18n.json index 295bef008..2550aea05 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": "renamed list to %s", "activity-customfield-created": "创建了自定义字段 %s", "activity-excluded": "排除 %s 从 %s", "activity-imported": "导入 %s 至 %s 从 %s 中", @@ -294,6 +295,7 @@ "color-white": "白", "color-yellow": "黄色", "unset-color": "复原", + "comments": "Comments", "comment": "评论", "comment-placeholder": "添加评论", "comment-only": "仅能评论", @@ -443,7 +445,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": "Show Activities", "headerBarCreateBoardPopup-title": "创建看板", "home": "首页", "import": "导入", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "collapse": "崩溃", - "uncollapse": "Uncollapse" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/zh-GB.i18n.json b/imports/i18n/data/zh-GB.i18n.json index 8b9ed0f23..e204b648a 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/zh-HK.i18n.json b/imports/i18n/data/zh-HK.i18n.json index eb79b4d3e..beeabb222 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/zh-Hans.i18n.json b/imports/i18n/data/zh-Hans.i18n.json index f9681557e..f42340142 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/zh-Hant.i18n.json b/imports/i18n/data/zh-Hant.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index 9f737ecd9..3fc3b0c8f 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": "renamed list to %s", "activity-customfield-created": "已建立的自訂欄位 %s", "activity-excluded": "排除 %s 從 %s", "activity-imported": "匯入 %s 到 %s 從 %s 中", @@ -294,6 +295,7 @@ "color-white": "白色", "color-yellow": "黃色", "unset-color": "未設定", + "comments": "Comments", "comment": "評論", "comment-placeholder": "撰寫文字", "comment-only": "僅能評論", @@ -443,7 +445,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": "Show Activities", "headerBarCreateBoardPopup-title": "建立看板", "home": "首頁", "import": "匯入", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "translation": "翻譯", "text": "文字", "translation-text": "翻譯文字", - "show-at-minicard": "在小卡片上顯示", - "show-checklist-at-minicard": "在小卡片上顯示檢查清單", "show-subtasks-field": "顯示子工作項目欄位", "convert-to-markdown": "轉換為 Markdown", "import-board-zip": "新增包含看板 JSON 檔案與帶有附件的看板名稱子目錄的 .zip 檔案", "collapse": "損毀", - "uncollapse": "展開" + "uncollapse": "展開", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/zh.i18n.json b/imports/i18n/data/zh.i18n.json index 57e7a3998..8291a5c37 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/zu-ZA.i18n.json b/imports/i18n/data/zu-ZA.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/zu.i18n.json b/imports/i18n/data/zu.i18n.json index e38b230c4..233c3aec4 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", @@ -294,6 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", + "comments": "Comments", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -443,7 +445,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", @@ -956,6 +958,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 +1112,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 +1196,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,11 +1248,11 @@ "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", "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" + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items" } From 79e2c9175f341a18dd5e5939d6ca6eb8d13b5285 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 15 Nov 2024 22:56:59 +0200 Subject: [PATCH 064/356] Updated ChangeLog. --- CHANGELOG.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27ff54e32..fba53d2ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,18 @@ Fixing other platforms In Progress. # Upcoming WeKan ® release -This release adds the following updates: +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. From bfb1658abe50704a7cee91617b09a068d3307889 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 15 Nov 2024 23:04:29 +0200 Subject: [PATCH 065/356] Updated translations. --- imports/i18n/data/de.i18n.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index ad35cf7a3..f5383a47e 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -295,7 +295,7 @@ "color-white": "Weiß", "color-yellow": "gelb", "unset-color": "Nicht festgelegt", - "comments": "Comments", + "comments": "Kommentare", "comment": "Kommentar speichern", "comment-placeholder": "Kommentar schreiben", "comment-only": "Nur Kommentare", @@ -445,7 +445,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.", - "show-activities": "Show Activities", + "show-activities": "Aktivitäten anzeigen", "headerBarCreateBoardPopup-title": "Board erstellen", "home": "Home", "import": "Importieren", @@ -1113,7 +1113,7 @@ "created-at-oldest-first": "Erstelldatum (älteste zuerst)", "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", + "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", From fb4d95672e37d849ff52954c79eede2af7d2a509 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 15 Nov 2024 23:19:36 +0200 Subject: [PATCH 066/356] Update Snap Candidate to MongoDB 6.0.19. Updated WeKan Windows version numbers. Added Cron docs. Thanks to xet7 ! --- docs/Platforms/Propietary/Windows/Offline.md | 8 +-- docs/Webserver/Cron.md | 57 ++++++++++++++++++++ snapcraft.yaml | 2 +- 3 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 docs/Webserver/Cron.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 39adb0d1a..9a55c5c41 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -8,19 +8,19 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.61-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.61/wekan-7.61-amd64-windows.zip) +1. [wekan-7.62-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.62/wekan-7.62-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) -3. [mongodb-windows-x86_64-6.0.18-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.18-signed.msi) +3. [mongodb-windows-x86_64-6.0.19-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.19-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.18-signed.msi` . In installer, uncheck downloading MongoDB compass. +6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.61-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.62-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) 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/snapcraft.yaml b/snapcraft.yaml index 14dc7f919..ba38cfd19 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -65,7 +65,7 @@ apps: parts: mongodb: - source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.18.tgz + source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.19.tgz plugin: dump stage-packages: - libssl1.1 From c63feb3ff33c76ea81f6b691e6b28696df843bc5 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 15 Nov 2024 23:21:32 +0200 Subject: [PATCH 067/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fba53d2ef..d7f61bfa9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,8 @@ and adds the following updates: 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. and fixes the following bugs: From 5448a1569113142ab5b2440763c9642c88e86ba4 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 15 Nov 2024 23:22:46 +0200 Subject: [PATCH 068/356] Updated docs sidebar. Thanks to xet7 ! --- docs/_Sidebar.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_Sidebar.md b/docs/_Sidebar.md index 67c8a8431..2a105c814 100644 --- a/docs/_Sidebar.md +++ b/docs/_Sidebar.md @@ -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) From 4bcbaf9113e32e69397ffe0a8dffa2cfe944966c Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 15 Nov 2024 23:24:19 +0200 Subject: [PATCH 069/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7f61bfa9..2075e8938 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,8 @@ and adds the following updates: 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. and fixes the following bugs: From 6e0d41834c4cef2839b86258a70deb9e2d4aabbd Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 15 Nov 2024 23:30:15 +0200 Subject: [PATCH 070/356] v7.62 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +- public/api/wekan.yml | 871 +---------------------------------------- sandstorm-pkgdef.capnp | 4 +- snapcraft.yaml | 8 +- 8 files changed, 32 insertions(+), 865 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2075e8938..ed1ede9cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.62 2024-11-15 WeKan ® release This release adds the following new features: diff --git a/Stackerfile.yml b/Stackerfile.yml index ef18cebe6..4cfb2b1a2 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.61.0" +appVersion: "v7.62.0" files: userUploads: - README.md diff --git a/package-lock.json b/package-lock.json index d2f7e6f0d..aa7640aa2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.61.0", + "version": "v7.62.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index aa9e36106..4e3458626 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.61.0", + "version": "v7.62.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 72b21f761..0c3c1d151 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.61 + Wekan REST API v7.62 @@ -1548,7 +1548,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
          • - Wekan REST API v7.61 + Wekan REST API v7.62
          • @@ -2067,7 +2067,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
            -

            Wekan REST API v7.61

            +

            Wekan REST API v7.62

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

            diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 5b58780dc..1ab83d624 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.61 + version: v7.62 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,531 +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 - - cleandark - - cleanlight - 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 @@ -3316,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 @@ -3324,6 +2485,7 @@ definitions: - dateLastActivity - userId - type + - showActivities CardsVote: type: object properties: @@ -3491,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 @@ -3506,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 diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 0895a85d5..b0bd90f92 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 = 761, + appVersion = 762, # Increment this for every release. - appMarketingVersion = (defaultText = "7.61.0~2024-10-23"), + appMarketingVersion = (defaultText = "7.62.0~2024-11-15"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index ba38cfd19..df61d33d2 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.61' +version: '7.62' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.61/wekan-7.61-amd64.zip - unzip wekan-7.61-amd64.zip - rm wekan-7.61-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.62/wekan-7.62-amd64.zip + unzip wekan-7.62-amd64.zip + rm wekan-7.62-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 7a34bc3eb03943506abe5e54501d1906fc16540b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 15 Nov 2024 23:33:18 +0200 Subject: [PATCH 071/356] Updated Docker base image to Ubuntu 24.10. Thanks to Ubuntu developers ! --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index bdb6da3f5..50ecf61d6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ -FROM ubuntu:24.04 +FROM ubuntu:24.10 LABEL maintainer="wekan" LABEL org.opencontainers.image.ref.name="ubuntu" -LABEL org.opencontainers.image.version="24.04" +LABEL org.opencontainers.image.version="24.10" LABEL org.opencontainers.image.source="https://github.com/wekan/wekan" # 2022-04-25: From c632bc45558e2b31f6922cf17d2c111c06e91512 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 15 Nov 2024 23:35:13 +0200 Subject: [PATCH 072/356] Merge newest changes. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed1ede9cf..7a7a159ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,8 @@ and adds the following updates: 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: From 35e6c938dc037f0d4e774ebf3307bda7c5c96312 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 6 Jul 2024 21:26:55 +0300 Subject: [PATCH 073/356] Added 'n' shortcut for adding new minicards --- client/lib/keyboard.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 79f90456c..90e3d3f46 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -179,6 +179,30 @@ Mousetrap.bind('c', evt => { } }); +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 = ReactiveCache.getCard(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(); + } +}); + Template.keyboardShortcuts.helpers({ mapping: [ { @@ -193,6 +217,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', From 7963118032c98d3334db03b031d9b480344d58cd Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 6 Jul 2024 22:07:57 +0300 Subject: [PATCH 074/356] Always close sidebar on escape button --- client/lib/escapeActions.js | 1 + 1 file changed, 1 insertion(+) 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, From 79cbf25b731efdeb36248950897c8bf41b0e7ef7 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 16 Nov 2024 17:14:03 +0200 Subject: [PATCH 075/356] Fix some text alignment issues when using RTL languages --- client/components/boards/boardColors.css | 39 ------------------------ 1 file changed, 39 deletions(-) diff --git a/client/components/boards/boardColors.css b/client/components/boards/boardColors.css index deb84dfbf..dc794f365 100644 --- a/client/components/boards/boardColors.css +++ b/client/components/boards/boardColors.css @@ -2751,14 +2751,12 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; } .board-color-cleandark#header-main-bar h1 { font-size: 16px; font-weight: 500; line-height: 24px !important; - text-align: left; color: rgba(255, 255, 255, 1); } @@ -2771,7 +2769,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 500; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 1); } @@ -2794,7 +2791,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 0.85); background: rgba(57, 57, 71, 1); } @@ -2820,7 +2816,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 0.5); } @@ -2873,7 +2868,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 0.85); } @@ -2888,7 +2882,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 1); } @@ -2930,7 +2923,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 500; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 0.85); } @@ -2939,7 +2931,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 0.7); } @@ -2992,7 +2983,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 0.5); } @@ -3013,7 +3003,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; border-radius: 12px; padding: 6px 12px 6px 12px; background: #FFFFFF; @@ -3024,7 +3013,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 1); background: rgba(57, 57, 71, 1) !important; border: none !important; @@ -3039,7 +3027,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 0.85) !important; background: rgba(57, 57, 71, 1) !important; border-radius: 12px !important; @@ -3054,7 +3041,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 0.85); background: rgba(57, 57, 71, 1); border-radius: 12px; @@ -3069,7 +3055,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(10, 10, 20, 0.85); } @@ -3085,7 +3070,6 @@ THEME - Clean Dark font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: #FFFFFF; } @@ -3219,7 +3203,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; } .board-color-cleanlight#header ul li:hover, @@ -3233,7 +3216,6 @@ THEME - Clean Light font-size: 16px; font-weight: 500; line-height: 24px !important; - text-align: left; color: rgba(10, 10, 20, 1) !important; } @@ -3246,7 +3228,6 @@ THEME - Clean Light font-size: 16px; font-weight: 500; line-height: 24px; - text-align: left; color: rgba(10, 10, 20, 1); } @@ -3454,7 +3435,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(10, 10, 20, 0.85); background: rgba(234, 234, 237, 1); } @@ -3480,7 +3460,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(10, 10, 20, 0.5); } @@ -3489,7 +3468,6 @@ THEME - Clean Light font-size: 24px !important; font-weight: 600; line-height: 28px; - text-align: left; border-bottom: none !important; padding: 12px 20px !important; } @@ -3518,7 +3496,6 @@ THEME - Clean Light font-size: 16px; font-weight: 500; line-height: 24px; - text-align: left; } .board-color-cleanlight .card-details .card-details-item-title { @@ -3578,7 +3555,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(10, 10, 20, 0.5); } @@ -3597,7 +3573,6 @@ THEME - Clean Light font-size: 16px; font-weight: 500; line-height: 24px; - text-align: left; } .board-color-cleanlight.pop-over .header { @@ -3614,7 +3589,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(10, 10, 20, 0.8); } @@ -3657,7 +3631,6 @@ THEME - Clean Light font-size: 16px; font-weight: 500; line-height: 24px; - text-align: left; color: rgba(10, 10, 20, 0.85) !important; } @@ -3666,7 +3639,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(10, 10, 20, 0.5) !important; } @@ -3725,7 +3697,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(10, 10, 20, 0.5); } @@ -3746,7 +3717,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; border-radius: 12px; padding: 6px 12px 6px 12px; background: rgba(23, 23, 28, 1); @@ -3757,7 +3727,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; border-radius: 12px; padding: 6px 12px 6px 12px; background: rgba(23, 23, 28, 1) !important; @@ -3772,7 +3741,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(10, 10, 20, 0.85); background: rgba(234, 234, 237, 1); border: none !important; @@ -3793,7 +3761,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(10, 10, 20, 0.85) !important; background: rgba(234, 234, 237, 1) !important; border-radius: 12px !important; @@ -3814,7 +3781,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(10, 10, 20, 0.85); background: rgba(234, 234, 237, 1); border-radius: 12px; @@ -3829,7 +3795,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 0.85); } @@ -3845,7 +3810,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: #FFFFFF; } @@ -3981,7 +3945,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; padding: 12px; } @@ -4007,7 +3970,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; margin-bottom: 10px; } @@ -4021,7 +3983,6 @@ THEME - Clean Light font-size: 16px; font-weight: 400; line-height: 24px; - text-align: left; color: rgba(255, 255, 255, 1); } From b3f229dc8697560856e5eb52fc3627904548e155 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 16 Nov 2024 17:17:05 +0200 Subject: [PATCH 076/356] Hide scrollbars from card details popup --- client/components/cards/cardDetails.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/components/cards/cardDetails.css b/client/components/cards/cardDetails.css index 370cafb76..89f5b80f1 100644 --- a/client/components/cards/cardDetails.css +++ b/client/components/cards/cardDetails.css @@ -90,6 +90,10 @@ transition: flex-basis 0.1s; box-sizing: border-box; } +.card-details::-webkit-scrollbar { + /* Hide scroll bars from middle of the screen */ + display: none !important; +} .card-details .mCustomScrollBox { padding-left: 0; } From 08843a9dd68b0bcda5e5d09f26925d783de64797 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 16 Nov 2024 17:18:46 +0200 Subject: [PATCH 077/356] Hide scrollbars from lists (middle of the screen) --- client/components/lists/list.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/components/lists/list.css b/client/components/lists/list.css index 2205af526..f197f7de5 100644 --- a/client/components/lists/list.css +++ b/client/components/lists/list.css @@ -148,6 +148,10 @@ overflow-y: auto; padding: 5px 11px; } +.list-body::-webkit-scrollbar { + /* Hide scroll bars from middle of the screen */ + display: none !important; +} .list-body .minicards { flex-grow: 1; flex-shrink: 0; From cf90511f3c037f40cac4c5a0ebcc1c156c794874 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 6 Jul 2024 21:50:59 +0300 Subject: [PATCH 078/356] Added multi-language support for keyboard shortcuts --- client/lib/keyboard.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 79f90456c..41d1edce7 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -3,6 +3,17 @@ 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.trigger(String.fromCharCode(e.which).toLowerCase()); +}); + function getHoveredCardId() { const card = $('.js-minicard:hover').get(0); if (!card) return null; From 4951d409dbc528c7b51d7fe28cccc8d1e8e5f077 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 16 Nov 2024 17:22:37 +0200 Subject: [PATCH 079/356] Updated translations. --- imports/i18n/data/he.i18n.json | 10 +++++----- imports/i18n/data/ja-HI.i18n.json | 28 ++++++++++++++-------------- imports/i18n/data/ja.i18n.json | 24 ++++++++++++------------ imports/i18n/data/pt-BR.i18n.json | 24 ++++++++++++------------ imports/i18n/data/zh-CN.i18n.json | 24 ++++++++++++------------ 5 files changed, 55 insertions(+), 55 deletions(-) diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index 0ec57d957..71bf9cbc0 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -295,7 +295,7 @@ "color-white": "לבן", "color-yellow": "צהוב", "unset-color": "בטל הגדרה", - "comments": "Comments", + "comments": "הערות", "comment": "לפרסם", "comment-placeholder": "כתיבת הערה", "comment-only": "תגובות בלבד", @@ -445,7 +445,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": "חזרה לדף הלוחות שלך.", - "show-activities": "Show Activities", + "show-activities": "הצגת פעילויות", "headerBarCreateBoardPopup-title": "יצירת לוח", "home": "בית", "import": "יבוא", @@ -958,7 +958,7 @@ "delete-linked-card-before-this-card": "לא ניתן למחוק את הכרטיס הזה לפני שמוחקים את הכרטיס המקושר שיש לו", "delete-linked-cards-before-this-list": "לא ניתן למחוק את הרשימה הזו לפני שמוחקים את הכרטיסים שמצביעים לכרטיסים ברשימה הזו", "hide-checked-items": "הסתרת הפריטים שסומנו", - "hide-finished-checklist": "Hide finished checklist", + "hide-finished-checklist": "הסתרת רשימת מטלות שהושלמה", "task": "משימה", "create-task": "צירת משימה", "ok": "אישור", @@ -1113,7 +1113,7 @@ "created-at-oldest-first": "מועד יצירה (הישן ביותר בהתחלה)", "links-heading": "קישורים", "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", + "now-activities-of-all-boards-are-hidden": "עכשיו כל הפעילויות של כל הלוחות מוסתרות", "move-swimlane": "העברת מסלול", "moveSwimlanePopup-title": "העברת מסלול", "custom-field-stringtemplate": "תבנית מחרוזת", @@ -1199,7 +1199,7 @@ "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", + "originOrder": "סדר מקורי", "copyChecklist": "העתקת רשימת מטלות", "copyChecklistPopup-title": "העתקת רשימת מטלות", "card-show-lists": "הצגת רשימות על הכרטיס", diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index 4b3fc86e9..836ac753a 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -49,7 +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-changedListTitle": "リスト名を %s に変更しました", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -295,7 +295,7 @@ "color-white": "white", "color-yellow": "yellow", "unset-color": "Unset", - "comments": "Comments", + "comments": "コメント", "comment": "Comment", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -445,7 +445,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.", - "show-activities": "Show Activities", + "show-activities": "アクティビティを表示", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -958,7 +958,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", + "hide-finished-checklist": "完了したチェックリストを非表示", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -1112,8 +1112,8 @@ "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", + "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", @@ -1196,10 +1196,10 @@ "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", + "newlineBecomesNewChecklistItem": "テキストの各行がチェックリスト項目の1つになります", + "newLineNewItem": "テキストの1行が1チェックリスト項目です", + "newlineBecomesNewChecklistItemOriginOrder": "テキストの各行がチェックリスト項目および元のオーダの1つになります", + "originOrder": "元のオーダ", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1250,9 +1250,9 @@ "translation-text": "翻訳テキスト", "show-subtasks-field": "サブタスクフィールドを表示", "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": "Uncollapse", - "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "uncollapse": "展開", + "hideCheckedChecklistItems": "チェック済みチェックリスト項目を非表示", + "hideAllChecklistItems": "すべてのチェックリスト項目を非表示" } diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index 2825c83db..1edd63605 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%sをアーカイブしました", "activity-attached": "%s を %s に添付しました", "activity-created": "%s を作成しました", - "activity-changedListTitle": "renamed list to %s", + "activity-changedListTitle": "リスト名を %s に変更しました", "activity-customfield-created": "カスタムフィールド %s を作成しました", "activity-excluded": "%s を %s から除外しました", "activity-imported": "imported %s into %s from %s", @@ -295,7 +295,7 @@ "color-white": "白", "color-yellow": "黄", "unset-color": "設定しない", - "comments": "Comments", + "comments": "コメント", "comment": "コメント", "comment-placeholder": "コメントを書く", "comment-only": "コメントのみ", @@ -445,7 +445,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": "自分のボードページに戻る。", - "show-activities": "Show Activities", + "show-activities": "アクティビティを表示", "headerBarCreateBoardPopup-title": "ボードの作成", "home": "ホーム", "import": "インポート", @@ -958,7 +958,7 @@ "delete-linked-card-before-this-card": "カード内にある、リンクされているカードを削除しなければ、このカードは削除できません", "delete-linked-cards-before-this-list": "リスト内にある、他のカードを参照しているカードを削除しなければ、このリストは削除できません", "hide-checked-items": "チェックした項目を隠す", - "hide-finished-checklist": "Hide finished checklist", + "hide-finished-checklist": "完了したチェックリストを非表示", "task": "タスク", "create-task": "タスクを作成", "ok": "OK", @@ -1112,8 +1112,8 @@ "created-at-newest-first": "作成日(新しいものから)", "created-at-oldest-first": "作成日(古いものから)", "links-heading": "リンク", - "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", + "hide-activities-of-all-boards": "すべてのボードでボードアクティビティを表示しない", + "now-activities-of-all-boards-are-hidden": "全ボードのすべてのアクティビティが非表示にされました", "move-swimlane": "スイムレーンを移動する", "moveSwimlanePopup-title": "スイムレーンを移動する", "custom-field-stringtemplate": "文字列テンプレート", @@ -1196,10 +1196,10 @@ "checklistActionsPopup-title": "チェックリストの操作", "moveChecklist": "チェックリストを移動", "moveChecklistPopup-title": "チェックリストを移動", - "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", + "newlineBecomesNewChecklistItem": "テキストの各行がチェックリスト項目の1つになります", + "newLineNewItem": "テキストの1行が1チェックリスト項目です", + "newlineBecomesNewChecklistItemOriginOrder": "テキストの各行がチェックリスト項目および元のオーダの1つになります", + "originOrder": "元のオーダ", "copyChecklist": "チェックリストをコピー", "copyChecklistPopup-title": "チェックリストをコピー", "card-show-lists": "Card Show Lists", @@ -1253,6 +1253,6 @@ "import-board-zip": "ボードJSONファイルを含む zip ファイルと、添付ファイルを含むボード名サブディレクトリを追加する", "collapse": "折りたたむ", "uncollapse": "展開", - "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideCheckedChecklistItems": "チェック済みチェックリスト項目を非表示", + "hideAllChecklistItems": "すべてのチェックリスト項目を非表示" } diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index 2ba9f895c..5523e12d8 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s foi Arquivado", "activity-attached": "anexou %s a %s", "activity-created": "criou %s", - "activity-changedListTitle": "renamed list to %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", @@ -295,7 +295,7 @@ "color-white": "branco", "color-yellow": "amarelo", "unset-color": "Remover", - "comments": "Comments", + "comments": "Comentários", "comment": "Comentário", "comment-placeholder": "Escrever Comentário", "comment-only": "Somente comentários", @@ -445,7 +445,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.", - "show-activities": "Show Activities", + "show-activities": "Mostrar Atividades", "headerBarCreateBoardPopup-title": "Criar Quadro", "home": "Início", "import": "Importar", @@ -958,7 +958,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": "Hide finished checklist", + "hide-finished-checklist": "Esconder lista de verificação concluída", "task": "Tarefa", "create-task": "Criar Tarefa", "ok": "OK", @@ -1112,8 +1112,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-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", + "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", @@ -1196,10 +1196,10 @@ "checklistActionsPopup-title": "Ações da Lista de verificação", "moveChecklist": "Mover Lista de verificação", "moveChecklistPopup-title": "Mover Lista de verificação", - "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", + "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", @@ -1253,6 +1253,6 @@ "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": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideCheckedChecklistItems": "Esconder itens concluídos da lista de verificação", + "hideAllChecklistItems": "Esconder todos os itens da lista de verificação" } diff --git a/imports/i18n/data/zh-CN.i18n.json b/imports/i18n/data/zh-CN.i18n.json index 2550aea05..1c6e6254e 100644 --- a/imports/i18n/data/zh-CN.i18n.json +++ b/imports/i18n/data/zh-CN.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s 已被移入归档", "activity-attached": "添加附件 %s 至 %s", "activity-created": "创建 %s", - "activity-changedListTitle": "renamed list to %s", + "activity-changedListTitle": "重命名列表至%s", "activity-customfield-created": "创建了自定义字段 %s", "activity-excluded": "排除 %s 从 %s", "activity-imported": "导入 %s 至 %s 从 %s 中", @@ -295,7 +295,7 @@ "color-white": "白", "color-yellow": "黄色", "unset-color": "复原", - "comments": "Comments", + "comments": "评论", "comment": "评论", "comment-placeholder": "添加评论", "comment-only": "仅能评论", @@ -445,7 +445,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": "返回您的看板页", - "show-activities": "Show Activities", + "show-activities": "显示活动", "headerBarCreateBoardPopup-title": "创建看板", "home": "首页", "import": "导入", @@ -958,7 +958,7 @@ "delete-linked-card-before-this-card": "在你首次删除卡片前你无法删除此选项卡片", "delete-linked-cards-before-this-list": "在首先删除指向此列表中的卡的链接卡之前,不能删除此列表", "hide-checked-items": "隐藏选中项", - "hide-finished-checklist": "Hide finished checklist", + "hide-finished-checklist": "隐藏完成清单", "task": "任务", "create-task": "创建任务", "ok": "确认", @@ -1112,8 +1112,8 @@ "created-at-newest-first": "创建时间(最新)", "created-at-oldest-first": "创建时间(最旧)", "links-heading": "链接", - "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", + "hide-activities-of-all-boards": "不要显示看板活动在所有看板", + "now-activities-of-all-boards-are-hidden": "现在所有板的所有活动都隐藏了", "move-swimlane": "移动泳道", "moveSwimlanePopup-title": "移动泳道", "custom-field-stringtemplate": "字符串模板", @@ -1196,10 +1196,10 @@ "checklistActionsPopup-title": "清单操作", "moveChecklist": "移动待办清单", "moveChecklistPopup-title": "移动待办清单", - "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", + "newlineBecomesNewChecklistItem": "文本每行都变成一个清单条目", + "newLineNewItem": "一行文本=一个清单项", + "newlineBecomesNewChecklistItemOriginOrder": "清单文本每行都变成一个清单条目,保持排序", + "originOrder": "保持排序", "copyChecklist": "复制待办清单", "copyChecklistPopup-title": "复制待办清单", "card-show-lists": "卡片显示列表", @@ -1252,7 +1252,7 @@ "convert-to-markdown": "转换成markdown", "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", + "uncollapse": "展开", + "hideCheckedChecklistItems": "隐藏勾选的清单项", "hideAllChecklistItems": "Hide all checklist items" } From ebece3f961d32084b06cd0676b12ba3e2712571b Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 6 Jul 2024 22:08:41 +0300 Subject: [PATCH 080/356] Disable sidebar showing when filtering using keyboard shortcut --- client/lib/filter.js | 1 - 1 file changed, 1 deletion(-) 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(); } } From 29775eef9ad0e1807f551fc055884ba912c60626 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 16 Nov 2024 17:32:45 +0200 Subject: [PATCH 081/356] Updated ChangeLog. --- CHANGELOG.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a7a159ba..0765e6e57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,28 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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 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. + +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: From cecb4b83363fd73eca8f0254249c44ec20b4b23a Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 27 Jul 2024 16:12:06 +0300 Subject: [PATCH 082/356] Change move-to-archive keyboard shortcut to '-' --- client/lib/keyboard.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 79f90456c..d4e30b4d1 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -159,7 +159,7 @@ Mousetrap.bind('space', evt => { } }); -Mousetrap.bind('c', evt => { +Mousetrap.bind('-', evt => { const cardId = getSelectedCardId(); if (!cardId) { return; @@ -222,7 +222,7 @@ Template.keyboardShortcuts.helpers({ action: 'shortcut-assign-self', }, { - keys: ['c'], + keys: ['-'], action: 'archive-card', }, { From e1168b5107a1dfea0343848cc253d8b525388bff Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 16 Nov 2024 17:40:35 +0200 Subject: [PATCH 083/356] Added keyboard shortcut to "assign self" and rename old shortcut to "add self" --- client/lib/keyboard.js | 24 ++++++++++++++++++++++++ imports/i18n/data/en.i18n.json | 1 + 2 files changed, 25 insertions(+) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 79f90456c..81529ff30 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -139,6 +139,26 @@ Mousetrap.bind(numArray, (evt, key) => { } }); +Mousetrap.bind('m', evt => { + const cardId = getSelectedCardId(); + if (!cardId) { + return; + } + + const currentUserId = Meteor.userId(); + if (currentUserId === null) { + return; + } + + if (ReactiveCache.getCurrentUser().isBoardMember()) { + const card = ReactiveCache.getCard(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) { @@ -219,6 +239,10 @@ Template.keyboardShortcuts.helpers({ }, { keys: ['SPACE'], + action: 'shortcut-add-self', + }, + { + keys: ['n'], action: 'shortcut-assign-self', }, { diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -574,6 +574,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", From d63507dd97c2c3f67d7c344a326c48fc9b85f6d8 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 3 Jul 2024 01:05:53 +0300 Subject: [PATCH 084/356] Add margin to member and assignee avatars --- client/components/cards/cardDetails.css | 2 +- client/components/users/userAvatar.css | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/client/components/cards/cardDetails.css b/client/components/cards/cardDetails.css index 370cafb76..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; 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; From b7e8f796a31bb17ec94d86429bcbf52d70789f7b Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 6 Jul 2024 22:06:49 +0300 Subject: [PATCH 085/356] Sidebar overhaul - change position to absolute, fix weird style bugs, disable scrollbar --- client/components/boards/boardBody.css | 3 -- client/components/boards/boardBody.jade | 2 +- client/components/boards/boardColors.css | 6 ---- client/components/sidebar/sidebar.css | 39 +++++++++++------------- client/components/sidebar/sidebar.jade | 12 ++++---- 5 files changed, 25 insertions(+), 37 deletions(-) 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 6dce982d9..32cd274f2 100644 --- a/client/components/boards/boardBody.jade +++ b/client/components/boards/boardBody.jade @@ -17,7 +17,6 @@ template(name="boardBody") | {{_ 'tableVisibilityMode-allowPrivateOnly'}} else .board-wrapper(class=currentBoard.colorClass) - +sidebar .board-canvas.js-swimlanes.dragscroll( class="{{#if Sidebar.isOpen}}is-sibling-sidebar-open{{/if}}" class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}" @@ -36,6 +35,7 @@ template(name="boardBody") +calendarView else +listsGroup(currentBoard) + +sidebar template(name="calendarView") if isViewCalendar diff --git a/client/components/boards/boardColors.css b/client/components/boards/boardColors.css index deb84dfbf..ad4f82c67 100644 --- a/client/components/boards/boardColors.css +++ b/client/components/boards/boardColors.css @@ -3288,11 +3288,6 @@ THEME - Clean Light color: #FFFFFF; } -.board-color-cleanlight .list:first-child, -.board-color-cleandark .list:first-child { - margin-right: -32px; -} - .board-color-cleanlight .list .list-header .list-header-menu, .board-color-cleandark .list .list-header .list-header-menu { display: flex; @@ -3376,7 +3371,6 @@ THEME - Clean Light .board-color-cleanlight .swimlane, .board-color-cleandark .swimlane { background: none; - gap: 32px; } .board-color-cleanlight .swimlane-height-apply, diff --git a/client/components/sidebar/sidebar.css b/client/components/sidebar/sidebar.css index d50c2f933..beb4a9c20 100644 --- a/client/components/sidebar/sidebar.css +++ b/client/components/sidebar/sidebar.css @@ -3,16 +3,16 @@ top: 0; bottom: 0; right: 0; + overflow-y: scroll; +} +.sidebar::-webkit-scrollbar { + /* Hide scroll bars from middle of the screen */ + display: none !important; } .sidebar .sidebar-shadow { - position: absolute; - top: 0; - bottom: 0; - right: 0; - left: 0; background: #f7f7f7; box-shadow: -10px 0px 5px -10px #b3b3b3; - z-index: 10; + height: 100%; } .sidebar-xmark { position: absolute; @@ -24,17 +24,16 @@ .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; + padding: 0 12px; margin-bottom: 1.6em; - position: absolute; - top: 0; - bottom: 0; - right: 0; - left: 0; - overflow-x: hidden; - overflow-y: auto; - width: 90%; } .sidebar .sidebar-content .hide-btn { display: none; @@ -110,21 +109,19 @@ margin-right: 10px; } .sidebar .sidebar-shortcuts { - position: absolute; - margin-left: 40%; - padding: 0; top: 7px; font-size: 0.8em; line-height: 1.6em; color: #999; } .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 a2a788aad..0924fcd28 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -5,7 +5,12 @@ template(name="sidebar") // title="{{showTongueTitle}}") // i.fa.fa-navicon .sidebar-shadow - a.sidebar-xmark.js-close-sidebar ✕ + .sidebar-actions + .sidebar-shortcuts + a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") + i.fa.fa-keyboard-o + span {{_ 'keyboard-shortcuts' }} + a.sidebar-xmark.js-close-sidebar ✕ .sidebar-content.js-board-sidebar-content //a.hide-btn.js-hide-sidebar // i.fa.fa-navicon @@ -47,11 +52,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 From a811e22f95ac14185c51983d9676c0da646a5271 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 16 Nov 2024 20:53:41 +0200 Subject: [PATCH 086/356] Updated ChangeLog. --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0765e6e57..4dc1c0440 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,12 @@ and fixes the following bugs: 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. Thanks to above GitHub users for their contributions and translators for their translations. From cfca28e25aa0a7dfb20f71e9fb5f4a7862efc831 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 16 Nov 2024 21:00:46 +0200 Subject: [PATCH 087/356] Updated translations. --- imports/i18n/data/af.i18n.json | 1 + imports/i18n/data/af_ZA.i18n.json | 1 + imports/i18n/data/ar-DZ.i18n.json | 1 + imports/i18n/data/ar-EG.i18n.json | 1 + imports/i18n/data/ar.i18n.json | 1 + imports/i18n/data/ary.i18n.json | 1 + imports/i18n/data/ast-ES.i18n.json | 1 + imports/i18n/data/az-AZ.i18n.json | 1 + imports/i18n/data/az-LA.i18n.json | 1 + imports/i18n/data/az.i18n.json | 1 + imports/i18n/data/bg.i18n.json | 1 + imports/i18n/data/br.i18n.json | 1 + imports/i18n/data/ca.i18n.json | 1 + imports/i18n/data/ca_ES.i18n.json | 1 + imports/i18n/data/cmn.i18n.json | 1 + imports/i18n/data/cs-CZ.i18n.json | 1 + imports/i18n/data/cs.i18n.json | 1 + imports/i18n/data/cy-GB.i18n.json | 1 + imports/i18n/data/cy.i18n.json | 1 + imports/i18n/data/da.i18n.json | 1 + imports/i18n/data/de-AT.i18n.json | 1 + imports/i18n/data/de-CH.i18n.json | 1 + imports/i18n/data/de.i18n.json | 1 + imports/i18n/data/de_DE.i18n.json | 1 + imports/i18n/data/el-GR.i18n.json | 1 + imports/i18n/data/el.i18n.json | 1 + imports/i18n/data/en-BR.i18n.json | 1 + imports/i18n/data/en-DE.i18n.json | 1 + imports/i18n/data/en-GB.i18n.json | 1 + imports/i18n/data/en-IT.i18n.json | 1 + imports/i18n/data/en-MY.i18n.json | 1 + imports/i18n/data/en-YS.i18n.json | 1 + imports/i18n/data/en_ZA.i18n.json | 1 + imports/i18n/data/eo.i18n.json | 1 + imports/i18n/data/es-AR.i18n.json | 1 + imports/i18n/data/es-CL.i18n.json | 1 + imports/i18n/data/es-LA.i18n.json | 1 + imports/i18n/data/es-MX.i18n.json | 1 + imports/i18n/data/es-PE.i18n.json | 1 + imports/i18n/data/es-PY.i18n.json | 1 + imports/i18n/data/es.i18n.json | 1 + imports/i18n/data/es_CO.i18n.json | 1 + imports/i18n/data/et-EE.i18n.json | 1 + imports/i18n/data/eu.i18n.json | 1 + imports/i18n/data/fa-IR.i18n.json | 1 + imports/i18n/data/fa.i18n.json | 1 + imports/i18n/data/fi.i18n.json | 1 + imports/i18n/data/fr-CH.i18n.json | 1 + imports/i18n/data/fr-FR.i18n.json | 1 + imports/i18n/data/fr.i18n.json | 1 + imports/i18n/data/fy-NL.i18n.json | 1 + imports/i18n/data/fy.i18n.json | 1 + imports/i18n/data/gl-ES.i18n.json | 1 + imports/i18n/data/gl.i18n.json | 1 + imports/i18n/data/gu-IN.i18n.json | 1 + imports/i18n/data/he-IL.i18n.json | 1 + imports/i18n/data/he.i18n.json | 15 ++++++++------- imports/i18n/data/hi-IN.i18n.json | 1 + imports/i18n/data/hi.i18n.json | 1 + imports/i18n/data/hr.i18n.json | 1 + imports/i18n/data/hu.i18n.json | 1 + imports/i18n/data/hy.i18n.json | 1 + imports/i18n/data/id.i18n.json | 1 + imports/i18n/data/ig.i18n.json | 1 + imports/i18n/data/it.i18n.json | 1 + imports/i18n/data/ja-HI.i18n.json | 1 + imports/i18n/data/ja.i18n.json | 1 + imports/i18n/data/ka.i18n.json | 1 + imports/i18n/data/km.i18n.json | 1 + imports/i18n/data/ko-KR.i18n.json | 1 + imports/i18n/data/ko.i18n.json | 1 + imports/i18n/data/lt.i18n.json | 1 + imports/i18n/data/lv.i18n.json | 1 + imports/i18n/data/mk.i18n.json | 1 + imports/i18n/data/mn.i18n.json | 1 + imports/i18n/data/ms-MY.i18n.json | 1 + imports/i18n/data/ms.i18n.json | 1 + imports/i18n/data/nb.i18n.json | 1 + imports/i18n/data/nl-NL.i18n.json | 1 + imports/i18n/data/nl.i18n.json | 1 + imports/i18n/data/oc.i18n.json | 1 + imports/i18n/data/or_IN.i18n.json | 1 + imports/i18n/data/pa.i18n.json | 1 + imports/i18n/data/pl-PL.i18n.json | 1 + imports/i18n/data/pl.i18n.json | 1 + imports/i18n/data/pt-BR.i18n.json | 1 + imports/i18n/data/pt.i18n.json | 1 + imports/i18n/data/pt_PT.i18n.json | 1 + imports/i18n/data/ro-RO.i18n.json | 1 + imports/i18n/data/ro.i18n.json | 1 + imports/i18n/data/ru-UA.i18n.json | 1 + imports/i18n/data/ru.i18n.json | 1 + imports/i18n/data/sk.i18n.json | 1 + imports/i18n/data/sl.i18n.json | 1 + imports/i18n/data/sr.i18n.json | 1 + imports/i18n/data/sv.i18n.json | 1 + imports/i18n/data/sw.i18n.json | 1 + imports/i18n/data/ta.i18n.json | 1 + imports/i18n/data/th.i18n.json | 1 + imports/i18n/data/tlh.i18n.json | 1 + imports/i18n/data/tr.i18n.json | 1 + imports/i18n/data/ug.i18n.json | 1 + imports/i18n/data/uk-UA.i18n.json | 1 + imports/i18n/data/uk.i18n.json | 1 + imports/i18n/data/uz-AR.i18n.json | 1 + imports/i18n/data/uz-LA.i18n.json | 1 + imports/i18n/data/uz-UZ.i18n.json | 1 + imports/i18n/data/uz.i18n.json | 1 + imports/i18n/data/ve-CC.i18n.json | 1 + imports/i18n/data/ve-PP.i18n.json | 1 + imports/i18n/data/ve.i18n.json | 1 + imports/i18n/data/vi-VN.i18n.json | 1 + imports/i18n/data/vi.i18n.json | 1 + imports/i18n/data/vl-SS.i18n.json | 1 + imports/i18n/data/vo.i18n.json | 1 + imports/i18n/data/wa-RR.i18n.json | 1 + imports/i18n/data/wa.i18n.json | 1 + imports/i18n/data/wo.i18n.json | 1 + imports/i18n/data/xh.i18n.json | 1 + imports/i18n/data/yi.i18n.json | 1 + imports/i18n/data/yo.i18n.json | 1 + imports/i18n/data/yue_CN.i18n.json | 1 + imports/i18n/data/zgh.i18n.json | 1 + imports/i18n/data/zh-CN.i18n.json | 1 + imports/i18n/data/zh-GB.i18n.json | 1 + imports/i18n/data/zh-HK.i18n.json | 1 + imports/i18n/data/zh-Hans.i18n.json | 1 + imports/i18n/data/zh-Hant.i18n.json | 1 + imports/i18n/data/zh-TW.i18n.json | 1 + imports/i18n/data/zh.i18n.json | 1 + imports/i18n/data/zu-ZA.i18n.json | 1 + imports/i18n/data/zu.i18n.json | 1 + 132 files changed, 139 insertions(+), 7 deletions(-) diff --git a/imports/i18n/data/af.i18n.json b/imports/i18n/data/af.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/af.i18n.json +++ b/imports/i18n/data/af.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/af_ZA.i18n.json b/imports/i18n/data/af_ZA.i18n.json index 256a0ccab..2064e515b 100644 --- a/imports/i18n/data/af_ZA.i18n.json +++ b/imports/i18n/data/af_ZA.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ar-DZ.i18n.json b/imports/i18n/data/ar-DZ.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/ar-DZ.i18n.json +++ b/imports/i18n/data/ar-DZ.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ar-EG.i18n.json b/imports/i18n/data/ar-EG.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/ar-EG.i18n.json +++ b/imports/i18n/data/ar-EG.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index ed0d68d54..f7e18ebe3 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -574,6 +574,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": "الإكمال التلقائي لأسماء الأعضاء", diff --git a/imports/i18n/data/ary.i18n.json b/imports/i18n/data/ary.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/ary.i18n.json +++ b/imports/i18n/data/ary.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ast-ES.i18n.json b/imports/i18n/data/ast-ES.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/ast-ES.i18n.json +++ b/imports/i18n/data/ast-ES.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/az-AZ.i18n.json b/imports/i18n/data/az-AZ.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/az-AZ.i18n.json +++ b/imports/i18n/data/az-AZ.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/az-LA.i18n.json b/imports/i18n/data/az-LA.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/az-LA.i18n.json +++ b/imports/i18n/data/az-LA.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/az.i18n.json b/imports/i18n/data/az.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/az.i18n.json +++ b/imports/i18n/data/az.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/bg.i18n.json b/imports/i18n/data/bg.i18n.json index 93962cde4..bcf7322a7 100644 --- a/imports/i18n/data/bg.i18n.json +++ b/imports/i18n/data/bg.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index edbc6fcb8..bd44c6ac7 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ca.i18n.json b/imports/i18n/data/ca.i18n.json index fd560512b..5367b1dce 100644 --- a/imports/i18n/data/ca.i18n.json +++ b/imports/i18n/data/ca.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ca_ES.i18n.json b/imports/i18n/data/ca_ES.i18n.json index 4c380824d..8005f4979 100644 --- a/imports/i18n/data/ca_ES.i18n.json +++ b/imports/i18n/data/ca_ES.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/cmn.i18n.json b/imports/i18n/data/cmn.i18n.json index 315dc6d43..09ab8da8c 100644 --- a/imports/i18n/data/cmn.i18n.json +++ b/imports/i18n/data/cmn.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/cs-CZ.i18n.json b/imports/i18n/data/cs-CZ.i18n.json index aef3e65a0..7ac1cc8a4 100644 --- a/imports/i18n/data/cs-CZ.i18n.json +++ b/imports/i18n/data/cs-CZ.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/cs.i18n.json b/imports/i18n/data/cs.i18n.json index 1fa81d377..a65d5d361 100644 --- a/imports/i18n/data/cs.i18n.json +++ b/imports/i18n/data/cs.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/cy-GB.i18n.json b/imports/i18n/data/cy-GB.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/cy-GB.i18n.json +++ b/imports/i18n/data/cy-GB.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/cy.i18n.json b/imports/i18n/data/cy.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/cy.i18n.json +++ b/imports/i18n/data/cy.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/da.i18n.json b/imports/i18n/data/da.i18n.json index c083a0f1d..65dcf717e 100644 --- a/imports/i18n/data/da.i18n.json +++ b/imports/i18n/data/da.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/de-AT.i18n.json b/imports/i18n/data/de-AT.i18n.json index 086b4e8f5..332b9d31d 100644 --- a/imports/i18n/data/de-AT.i18n.json +++ b/imports/i18n/data/de-AT.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/de-CH.i18n.json b/imports/i18n/data/de-CH.i18n.json index fe5fed53a..7a284ec10 100644 --- a/imports/i18n/data/de-CH.i18n.json +++ b/imports/i18n/data/de-CH.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index f5383a47e..8552dfa84 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index 16d8fd283..4f7399795 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/el-GR.i18n.json b/imports/i18n/data/el-GR.i18n.json index 852c8de26..214cb2236 100644 --- a/imports/i18n/data/el-GR.i18n.json +++ b/imports/i18n/data/el-GR.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/el.i18n.json b/imports/i18n/data/el.i18n.json index 3c7678465..acc1cd24e 100644 --- a/imports/i18n/data/el.i18n.json +++ b/imports/i18n/data/el.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/en-BR.i18n.json b/imports/i18n/data/en-BR.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/en-BR.i18n.json +++ b/imports/i18n/data/en-BR.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/en-DE.i18n.json b/imports/i18n/data/en-DE.i18n.json index b54ddbcfd..6b8d9943b 100644 --- a/imports/i18n/data/en-DE.i18n.json +++ b/imports/i18n/data/en-DE.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/en-GB.i18n.json b/imports/i18n/data/en-GB.i18n.json index ab5f9fe8d..649b09357 100644 --- a/imports/i18n/data/en-GB.i18n.json +++ b/imports/i18n/data/en-GB.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/en-IT.i18n.json b/imports/i18n/data/en-IT.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/en-IT.i18n.json +++ b/imports/i18n/data/en-IT.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/en-MY.i18n.json b/imports/i18n/data/en-MY.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/en-MY.i18n.json +++ b/imports/i18n/data/en-MY.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/en-YS.i18n.json b/imports/i18n/data/en-YS.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/en-YS.i18n.json +++ b/imports/i18n/data/en-YS.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/en_ZA.i18n.json b/imports/i18n/data/en_ZA.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/en_ZA.i18n.json +++ b/imports/i18n/data/en_ZA.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index aea73ccdf..ad05bdde3 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/es-AR.i18n.json b/imports/i18n/data/es-AR.i18n.json index 35e094627..cbb98c171 100644 --- a/imports/i18n/data/es-AR.i18n.json +++ b/imports/i18n/data/es-AR.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/es-CL.i18n.json b/imports/i18n/data/es-CL.i18n.json index 6d3a5cf17..152a7cb40 100644 --- a/imports/i18n/data/es-CL.i18n.json +++ b/imports/i18n/data/es-CL.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/es-LA.i18n.json b/imports/i18n/data/es-LA.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/es-LA.i18n.json +++ b/imports/i18n/data/es-LA.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/es-MX.i18n.json b/imports/i18n/data/es-MX.i18n.json index bb1a4e374..9d3fa2788 100644 --- a/imports/i18n/data/es-MX.i18n.json +++ b/imports/i18n/data/es-MX.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/es-PE.i18n.json b/imports/i18n/data/es-PE.i18n.json index 59eb7990d..cbd0bc69e 100644 --- a/imports/i18n/data/es-PE.i18n.json +++ b/imports/i18n/data/es-PE.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/es-PY.i18n.json b/imports/i18n/data/es-PY.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/es-PY.i18n.json +++ b/imports/i18n/data/es-PY.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 888b8f8ca..7bfbb2d52 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -574,6 +574,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": "Establecer 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", diff --git a/imports/i18n/data/es_CO.i18n.json b/imports/i18n/data/es_CO.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/es_CO.i18n.json +++ b/imports/i18n/data/es_CO.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/et-EE.i18n.json b/imports/i18n/data/et-EE.i18n.json index 115bd03b0..bd81a5291 100644 --- a/imports/i18n/data/et-EE.i18n.json +++ b/imports/i18n/data/et-EE.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 1989f91b9..955ac27eb 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -574,6 +574,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Zerrenda honetako atazen muga maximoa ezarri", "setWipLimitPopup-title": "WIP muga ezarri", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Esleitu zure burua txartel honetara", "shortcut-autocomplete-emoji": "Automatikoki osatu emojia", "shortcut-autocomplete-members": "Automatikoki osatu kideak", diff --git a/imports/i18n/data/fa-IR.i18n.json b/imports/i18n/data/fa-IR.i18n.json index 2a04153c4..09ce3b179 100644 --- a/imports/i18n/data/fa-IR.i18n.json +++ b/imports/i18n/data/fa-IR.i18n.json @@ -574,6 +574,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": "تکمیل خودکار کاربرها", diff --git a/imports/i18n/data/fa.i18n.json b/imports/i18n/data/fa.i18n.json index 2a04153c4..09ce3b179 100644 --- a/imports/i18n/data/fa.i18n.json +++ b/imports/i18n/data/fa.i18n.json @@ -574,6 +574,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": "تکمیل خودکار کاربرها", diff --git a/imports/i18n/data/fi.i18n.json b/imports/i18n/data/fi.i18n.json index 954813ac2..d84309560 100644 --- a/imports/i18n/data/fi.i18n.json +++ b/imports/i18n/data/fi.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/fr-CH.i18n.json b/imports/i18n/data/fr-CH.i18n.json index 1204dbb26..173d16aea 100644 --- a/imports/i18n/data/fr-CH.i18n.json +++ b/imports/i18n/data/fr-CH.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/fr-FR.i18n.json b/imports/i18n/data/fr-FR.i18n.json index e22e54c46..b32098f12 100644 --- a/imports/i18n/data/fr-FR.i18n.json +++ b/imports/i18n/data/fr-FR.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index 16ab99632..7ff45651a 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/fy-NL.i18n.json b/imports/i18n/data/fy-NL.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/fy-NL.i18n.json +++ b/imports/i18n/data/fy-NL.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/fy.i18n.json b/imports/i18n/data/fy.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/fy.i18n.json +++ b/imports/i18n/data/fy.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/gl-ES.i18n.json b/imports/i18n/data/gl-ES.i18n.json index 41d3e319f..7dc380d80 100644 --- a/imports/i18n/data/gl-ES.i18n.json +++ b/imports/i18n/data/gl-ES.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/gl.i18n.json b/imports/i18n/data/gl.i18n.json index c12b46d58..c0986a632 100644 --- a/imports/i18n/data/gl.i18n.json +++ b/imports/i18n/data/gl.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/gu-IN.i18n.json b/imports/i18n/data/gu-IN.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/gu-IN.i18n.json +++ b/imports/i18n/data/gu-IN.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/he-IL.i18n.json b/imports/i18n/data/he-IL.i18n.json index cfdbf618b..54325437d 100644 --- a/imports/i18n/data/he-IL.i18n.json +++ b/imports/i18n/data/he-IL.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index 71bf9cbc0..d86f0f895 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s הועבר לארכיון", "activity-attached": "%s צורף ל%s", "activity-created": "%s נוצר", - "activity-changedListTitle": "renamed list to %s", + "activity-changedListTitle": "שם הרשימה השתנה לשם %s", "activity-customfield-created": "נוצר שדה בהתאמה אישית %s", "activity-excluded": "%s לא נכלל ב%s", "activity-imported": "%s ייובא מ%s אל %s", @@ -574,6 +574,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": "השלמה אוטומטית של חברים", @@ -1112,7 +1113,7 @@ "created-at-newest-first": "מועד יצירה (החדש ביותר בהתחלה)", "created-at-oldest-first": "מועד יצירה (הישן ביותר בהתחלה)", "links-heading": "קישורים", - "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "hide-activities-of-all-boards": "לא להציג את פעילויות הלוח בכל הלוחות", "now-activities-of-all-boards-are-hidden": "עכשיו כל הפעילויות של כל הלוחות מוסתרות", "move-swimlane": "העברת מסלול", "moveSwimlanePopup-title": "העברת מסלול", @@ -1196,9 +1197,9 @@ "checklistActionsPopup-title": "פעולות על רשימת מטלות", "moveChecklist": "העברת רשימת מטלות", "moveChecklistPopup-title": "העברת רשימת מטלות", - "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", + "newlineBecomesNewChecklistItem": "כל שורה של טקסט הופכת לאחד מפריטי רשימת המטלות", + "newLineNewItem": "שורה אחת של טקסט = פריט רשימת מטלות אחד", + "newlineBecomesNewChecklistItemOriginOrder": "כל שורה של טקסט הופכת לאחד הפריטים ברשימת המטלות, לפי הסדר המקורי", "originOrder": "סדר מקורי", "copyChecklist": "העתקת רשימת מטלות", "copyChecklistPopup-title": "העתקת רשימת מטלות", @@ -1253,6 +1254,6 @@ "import-board-zip": "הוספת קובץ ‎.zip עם קובצי JSON של לוח, ותת־תיקיות בשם הלוח עם קבצים מצורפים", "collapse": "צמצום", "uncollapse": "ביטול צמצום", - "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideCheckedChecklistItems": "הסתרת פריטים שסומנו ברשימת הפריטים", + "hideAllChecklistItems": "הסתרת כל הפריטים ברשימת המטלות" } diff --git a/imports/i18n/data/hi-IN.i18n.json b/imports/i18n/data/hi-IN.i18n.json index 9c19de8df..758568edd 100644 --- a/imports/i18n/data/hi-IN.i18n.json +++ b/imports/i18n/data/hi-IN.i18n.json @@ -574,6 +574,7 @@ "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": "Add yourself to current card", "shortcut-assign-self": "Assign yourself तक current कार्ड", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete सदस्य", diff --git a/imports/i18n/data/hi.i18n.json b/imports/i18n/data/hi.i18n.json index 6f3c595d4..92f21ca24 100644 --- a/imports/i18n/data/hi.i18n.json +++ b/imports/i18n/data/hi.i18n.json @@ -574,6 +574,7 @@ "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": "Add yourself to current card", "shortcut-assign-self": "Assign yourself तक current कार्ड", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete सदस्य", diff --git a/imports/i18n/data/hr.i18n.json b/imports/i18n/data/hr.i18n.json index 90017a3cf..21291418a 100644 --- a/imports/i18n/data/hr.i18n.json +++ b/imports/i18n/data/hr.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/hu.i18n.json b/imports/i18n/data/hu.i18n.json index 2f789ce7e..1aab80703 100644 --- a/imports/i18n/data/hu.i18n.json +++ b/imports/i18n/data/hu.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/hy.i18n.json b/imports/i18n/data/hy.i18n.json index 1b0c54d6f..a41d7a627 100644 --- a/imports/i18n/data/hy.i18n.json +++ b/imports/i18n/data/hy.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/id.i18n.json b/imports/i18n/data/id.i18n.json index 77c4fd384..de11ec153 100644 --- a/imports/i18n/data/id.i18n.json +++ b/imports/i18n/data/id.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ig.i18n.json b/imports/i18n/data/ig.i18n.json index d3634e9f7..7b23f12b4 100644 --- a/imports/i18n/data/ig.i18n.json +++ b/imports/i18n/data/ig.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/it.i18n.json b/imports/i18n/data/it.i18n.json index bae163a2e..cdd3bc110 100644 --- a/imports/i18n/data/it.i18n.json +++ b/imports/i18n/data/it.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index 836ac753a..470a0454e 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index 1edd63605..571401a1f 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -574,6 +574,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": "メンバーの補完", diff --git a/imports/i18n/data/ka.i18n.json b/imports/i18n/data/ka.i18n.json index 2f9b0bbd5..3d37c7a1a 100644 --- a/imports/i18n/data/ka.i18n.json +++ b/imports/i18n/data/ka.i18n.json @@ -574,6 +574,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": "მომხმარებლების ავტომატური შევსება", diff --git a/imports/i18n/data/km.i18n.json b/imports/i18n/data/km.i18n.json index 6efcff30c..c55aedde7 100644 --- a/imports/i18n/data/km.i18n.json +++ b/imports/i18n/data/km.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ko-KR.i18n.json b/imports/i18n/data/ko-KR.i18n.json index 4fd612e73..7c8c39363 100644 --- a/imports/i18n/data/ko-KR.i18n.json +++ b/imports/i18n/data/ko-KR.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ko.i18n.json b/imports/i18n/data/ko.i18n.json index 67a368e7d..5de819f4d 100644 --- a/imports/i18n/data/ko.i18n.json +++ b/imports/i18n/data/ko.i18n.json @@ -574,6 +574,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": "멤버 자동완성", diff --git a/imports/i18n/data/lt.i18n.json b/imports/i18n/data/lt.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/lt.i18n.json +++ b/imports/i18n/data/lt.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/lv.i18n.json b/imports/i18n/data/lv.i18n.json index c473379f7..1ac4eaca8 100644 --- a/imports/i18n/data/lv.i18n.json +++ b/imports/i18n/data/lv.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/mk.i18n.json b/imports/i18n/data/mk.i18n.json index 62049fb44..0dbb4b237 100644 --- a/imports/i18n/data/mk.i18n.json +++ b/imports/i18n/data/mk.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/mn.i18n.json b/imports/i18n/data/mn.i18n.json index 67aba9493..0e374a73d 100644 --- a/imports/i18n/data/mn.i18n.json +++ b/imports/i18n/data/mn.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/ms-MY.i18n.json +++ b/imports/i18n/data/ms-MY.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ms.i18n.json b/imports/i18n/data/ms.i18n.json index db8070033..0ac2d6992 100644 --- a/imports/i18n/data/ms.i18n.json +++ b/imports/i18n/data/ms.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/nb.i18n.json b/imports/i18n/data/nb.i18n.json index b01e1e079..98ae6ae55 100644 --- a/imports/i18n/data/nb.i18n.json +++ b/imports/i18n/data/nb.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/nl-NL.i18n.json b/imports/i18n/data/nl-NL.i18n.json index 8b580ca06..d17444513 100644 --- a/imports/i18n/data/nl-NL.i18n.json +++ b/imports/i18n/data/nl-NL.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 5a7690bf4..756aac502 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/oc.i18n.json b/imports/i18n/data/oc.i18n.json index 079765e6d..74cdc7eab 100644 --- a/imports/i18n/data/oc.i18n.json +++ b/imports/i18n/data/oc.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/or_IN.i18n.json b/imports/i18n/data/or_IN.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/or_IN.i18n.json +++ b/imports/i18n/data/or_IN.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/pa.i18n.json b/imports/i18n/data/pa.i18n.json index f6c960ec9..8d0eedb12 100644 --- a/imports/i18n/data/pa.i18n.json +++ b/imports/i18n/data/pa.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/pl-PL.i18n.json b/imports/i18n/data/pl-PL.i18n.json index 49c451b16..6e7ec1eb6 100644 --- a/imports/i18n/data/pl-PL.i18n.json +++ b/imports/i18n/data/pl-PL.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/pl.i18n.json b/imports/i18n/data/pl.i18n.json index 197c67c6a..fb42592b5 100644 --- a/imports/i18n/data/pl.i18n.json +++ b/imports/i18n/data/pl.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index 5523e12d8..89928e609 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -574,6 +574,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": "Add yourself to current card", "shortcut-assign-self": "Atribuir a si o cartão atual", "shortcut-autocomplete-emoji": "Autocompletar emoji", "shortcut-autocomplete-members": "Preenchimento automático de membros", diff --git a/imports/i18n/data/pt.i18n.json b/imports/i18n/data/pt.i18n.json index b91c5f051..1d81777d6 100644 --- a/imports/i18n/data/pt.i18n.json +++ b/imports/i18n/data/pt.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/pt_PT.i18n.json b/imports/i18n/data/pt_PT.i18n.json index 8b5e552a7..d9d4bd488 100644 --- a/imports/i18n/data/pt_PT.i18n.json +++ b/imports/i18n/data/pt_PT.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ro-RO.i18n.json b/imports/i18n/data/ro-RO.i18n.json index a575af35f..e8d2f4dd5 100644 --- a/imports/i18n/data/ro-RO.i18n.json +++ b/imports/i18n/data/ro-RO.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ro.i18n.json b/imports/i18n/data/ro.i18n.json index f52bf2922..cf1d1b8fb 100644 --- a/imports/i18n/data/ro.i18n.json +++ b/imports/i18n/data/ro.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ru-UA.i18n.json b/imports/i18n/data/ru-UA.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/ru-UA.i18n.json +++ b/imports/i18n/data/ru-UA.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ru.i18n.json b/imports/i18n/data/ru.i18n.json index 69edd46f0..539918215 100644 --- a/imports/i18n/data/ru.i18n.json +++ b/imports/i18n/data/ru.i18n.json @@ -574,6 +574,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": "Автозаполнение участников", diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index 5852b1c47..e5536d0d0 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/sl.i18n.json b/imports/i18n/data/sl.i18n.json index 361b82c95..e18d45029 100644 --- a/imports/i18n/data/sl.i18n.json +++ b/imports/i18n/data/sl.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/sr.i18n.json b/imports/i18n/data/sr.i18n.json index 3a1540e7a..6e08de398 100644 --- a/imports/i18n/data/sr.i18n.json +++ b/imports/i18n/data/sr.i18n.json @@ -574,6 +574,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": "Сам попуни сараднике", diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index c3bd1fd4b..6d9ab397b 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -574,6 +574,7 @@ "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": "Add yourself to current card", "shortcut-assign-self": "Tilldela dig nuvarande kort", "shortcut-autocomplete-emoji": "Komplettera automatiskt emoji", "shortcut-autocomplete-members": "Komplettera automatiskt medlemmar", diff --git a/imports/i18n/data/sw.i18n.json b/imports/i18n/data/sw.i18n.json index 83ade0989..1ba4b6626 100644 --- a/imports/i18n/data/sw.i18n.json +++ b/imports/i18n/data/sw.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ta.i18n.json b/imports/i18n/data/ta.i18n.json index cf98cfcb6..887af6654 100644 --- a/imports/i18n/data/ta.i18n.json +++ b/imports/i18n/data/ta.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/th.i18n.json b/imports/i18n/data/th.i18n.json index 1dd351103..653b31e25 100644 --- a/imports/i18n/data/th.i18n.json +++ b/imports/i18n/data/th.i18n.json @@ -574,6 +574,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": "เติมสมาชิกอัตโนมัติ", diff --git a/imports/i18n/data/tlh.i18n.json b/imports/i18n/data/tlh.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/tlh.i18n.json +++ b/imports/i18n/data/tlh.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index e5d687ec0..7c3ae4ad8 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ug.i18n.json b/imports/i18n/data/ug.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/ug.i18n.json +++ b/imports/i18n/data/ug.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index cdbd5360e..75adc776b 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -574,6 +574,7 @@ "select-board": "Обрати дошку", "set-wip-limit-value": "Встановіть ліміт максимальної кількості завдань у цьому списку", "setWipLimitPopup-title": "Встановити WIP ліміт", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Призначити себе до поточної картки", "shortcut-autocomplete-emoji": "Автозаповнення емодзі", "shortcut-autocomplete-members": "Автозавершення учасників", diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index cdbd5360e..75adc776b 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -574,6 +574,7 @@ "select-board": "Обрати дошку", "set-wip-limit-value": "Встановіть ліміт максимальної кількості завдань у цьому списку", "setWipLimitPopup-title": "Встановити WIP ліміт", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Призначити себе до поточної картки", "shortcut-autocomplete-emoji": "Автозаповнення емодзі", "shortcut-autocomplete-members": "Автозавершення учасників", diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz-AR.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/uz-AR.i18n.json +++ b/imports/i18n/data/uz-AR.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/uz-LA.i18n.json b/imports/i18n/data/uz-LA.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/uz-LA.i18n.json +++ b/imports/i18n/data/uz-LA.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/uz-UZ.i18n.json b/imports/i18n/data/uz-UZ.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/uz-UZ.i18n.json +++ b/imports/i18n/data/uz-UZ.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/uz.i18n.json b/imports/i18n/data/uz.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/uz.i18n.json +++ b/imports/i18n/data/uz.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ve-CC.i18n.json b/imports/i18n/data/ve-CC.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/ve-CC.i18n.json +++ b/imports/i18n/data/ve-CC.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ve-PP.i18n.json b/imports/i18n/data/ve-PP.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/ve-PP.i18n.json +++ b/imports/i18n/data/ve-PP.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/ve.i18n.json b/imports/i18n/data/ve.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/ve.i18n.json +++ b/imports/i18n/data/ve.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/vi-VN.i18n.json b/imports/i18n/data/vi-VN.i18n.json index 4f6684762..28db5b55a 100644 --- a/imports/i18n/data/vi-VN.i18n.json +++ b/imports/i18n/data/vi-VN.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/vi.i18n.json b/imports/i18n/data/vi.i18n.json index f76935d82..d5aaecb3b 100644 --- a/imports/i18n/data/vi.i18n.json +++ b/imports/i18n/data/vi.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/vl-SS.i18n.json b/imports/i18n/data/vl-SS.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/vl-SS.i18n.json +++ b/imports/i18n/data/vl-SS.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/vo.i18n.json b/imports/i18n/data/vo.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/vo.i18n.json +++ b/imports/i18n/data/vo.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/wa-RR.i18n.json b/imports/i18n/data/wa-RR.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/wa-RR.i18n.json +++ b/imports/i18n/data/wa-RR.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/wa.i18n.json b/imports/i18n/data/wa.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/wa.i18n.json +++ b/imports/i18n/data/wa.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/wo.i18n.json b/imports/i18n/data/wo.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/wo.i18n.json +++ b/imports/i18n/data/wo.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/xh.i18n.json b/imports/i18n/data/xh.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/xh.i18n.json +++ b/imports/i18n/data/xh.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/yi.i18n.json b/imports/i18n/data/yi.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/yi.i18n.json +++ b/imports/i18n/data/yi.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/yo.i18n.json b/imports/i18n/data/yo.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/yo.i18n.json +++ b/imports/i18n/data/yo.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/yue_CN.i18n.json b/imports/i18n/data/yue_CN.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/yue_CN.i18n.json +++ b/imports/i18n/data/yue_CN.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/zgh.i18n.json b/imports/i18n/data/zgh.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/zgh.i18n.json +++ b/imports/i18n/data/zgh.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/zh-CN.i18n.json b/imports/i18n/data/zh-CN.i18n.json index 1c6e6254e..c0c1dbeb1 100644 --- a/imports/i18n/data/zh-CN.i18n.json +++ b/imports/i18n/data/zh-CN.i18n.json @@ -574,6 +574,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": "自动补全成员", diff --git a/imports/i18n/data/zh-GB.i18n.json b/imports/i18n/data/zh-GB.i18n.json index e204b648a..a6788c6f5 100644 --- a/imports/i18n/data/zh-GB.i18n.json +++ b/imports/i18n/data/zh-GB.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/zh-HK.i18n.json b/imports/i18n/data/zh-HK.i18n.json index beeabb222..578508580 100644 --- a/imports/i18n/data/zh-HK.i18n.json +++ b/imports/i18n/data/zh-HK.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/zh-Hans.i18n.json b/imports/i18n/data/zh-Hans.i18n.json index f42340142..3e2412580 100644 --- a/imports/i18n/data/zh-Hans.i18n.json +++ b/imports/i18n/data/zh-Hans.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/zh-Hant.i18n.json b/imports/i18n/data/zh-Hant.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/zh-Hant.i18n.json +++ b/imports/i18n/data/zh-Hant.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index 3fc3b0c8f..e8481e9b4 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -574,6 +574,7 @@ "select-board": "選擇看板", "set-wip-limit-value": "設定此清單中的最大任務數", "setWipLimitPopup-title": "設定 WIP 限制", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "分配當前卡片給自己", "shortcut-autocomplete-emoji": "自動完成表情符號", "shortcut-autocomplete-members": "自動補齊成員", diff --git a/imports/i18n/data/zh.i18n.json b/imports/i18n/data/zh.i18n.json index 8291a5c37..b4b0be926 100644 --- a/imports/i18n/data/zh.i18n.json +++ b/imports/i18n/data/zh.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/zu-ZA.i18n.json b/imports/i18n/data/zu-ZA.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/zu-ZA.i18n.json +++ b/imports/i18n/data/zu-ZA.i18n.json @@ -574,6 +574,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", diff --git a/imports/i18n/data/zu.i18n.json b/imports/i18n/data/zu.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/zu.i18n.json +++ b/imports/i18n/data/zu.i18n.json @@ -574,6 +574,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", From edb73982953d63066494dbc096bdeb62f7fe730b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 16 Nov 2024 21:16:30 +0200 Subject: [PATCH 088/356] Revert adding more stack size. Thanks to xet7 ! --- Dockerfile | 3 ++- Dockerfile.arm64v8 | 3 ++- releases/virtualbox/start-wekan.sh | 3 ++- snap-src/bin/wekan-control | 3 ++- stacksmith/user-scripts/run.sh | 3 ++- start-wekan.sh | 3 ++- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 50ecf61d6..1fadc367b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -272,4 +272,5 @@ WORKDIR /home/wekan/app # # CMD ["node", "/build/main.js"] # CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 /build/main.js"] -CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 --max-old-space-size=8192 /build/main.js"] +# CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 --max-old-space-size=8192 /build/main.js"] +CMD ["bash", "-c", "ulimit -s 65500; exec node /build/main.js"] diff --git a/Dockerfile.arm64v8 b/Dockerfile.arm64v8 index 6731b1380..c19a5c23d 100644 --- a/Dockerfile.arm64v8 +++ b/Dockerfile.arm64v8 @@ -88,5 +88,6 @@ RUN \ EXPOSE $PORT USER wekan -CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 --max-old-space-size=8192 /home/wekan/bundle/main.js"] +# CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 --max-old-space-size=8192 /home/wekan/bundle/main.js"] +CMD ["bash", "-c", "ulimit -s 65500; exec node /home/wekan/bundle/main.js"] diff --git a/releases/virtualbox/start-wekan.sh b/releases/virtualbox/start-wekan.sh index ee0ca3265..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 --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/snap-src/bin/wekan-control b/snap-src/bin/wekan-control index 900a81b2f..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 --stack-size=65500 --max-old-space-size=8192 $APPLICATION_START" +bash -c "ulimit -s 65500; exec $NODE_PATH/node $APPLICATION_START" diff --git a/stacksmith/user-scripts/run.sh b/stacksmith/user-scripts/run.sh index 84741eabc..fe40c48f8 100755 --- a/stacksmith/user-scripts/run.sh +++ b/stacksmith/user-scripts/run.sh @@ -23,6 +23,7 @@ echo "starting the wekan service..." #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 --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.sh b/start-wekan.sh index 8f5210385..a3b78865b 100755 --- a/start-wekan.sh +++ b/start-wekan.sh @@ -555,7 +555,8 @@ #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 --stack-size=65500 --max-old-space-size=8192 main.js" + bash -c "ulimit -s 65500; exec node main.js" #node main.js #--------------------------------------------------------------------- # & >> ../../wekan.log From ad7e0e0bf9a5b515bfa71d84bc5a724d822a7166 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 16 Nov 2024 21:17:37 +0200 Subject: [PATCH 089/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4dc1c0440..224b95215 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,8 @@ and fixes the following bugs: 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. From 8879b8498f292a83174d66c840471cdeb128183a Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 16 Nov 2024 21:19:04 +0200 Subject: [PATCH 090/356] Updated translations. --- imports/i18n/data/pt-BR.i18n.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index 89928e609..376769df5 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -574,7 +574,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": "Add yourself to current card", + "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", From 92af6f71d9c60acbca8f65c7ec1822818186639c Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 16 Nov 2024 21:36:35 +0200 Subject: [PATCH 091/356] Updated scaling docs. Thanks to xet7 ! --- docs/Webserver/Scaling.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/Webserver/Scaling.md b/docs/Webserver/Scaling.md index 8ab8a1ff1..104ffa87f 100644 --- a/docs/Webserver/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: From 0b2cdc4d56fa9d0088035ff3cc36513236248b00 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 16 Nov 2024 21:37:58 +0200 Subject: [PATCH 092/356] v7.63 --- CHANGELOG.md | 7 ++++++- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 21 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 224b95215..f18709315 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.63 2024-11-16 WeKan ® release This release adds the following new features: @@ -26,6 +26,11 @@ This release adds the following new features: - [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). diff --git a/Stackerfile.yml b/Stackerfile.yml index 4cfb2b1a2..0358e73cb 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.62.0" +appVersion: "v7.63.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 9a55c5c41..ed3ab3d9c 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -8,7 +8,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.62-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.62/wekan-7.62-amd64-windows.zip) +1. [wekan-7.63-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.63/wekan-7.63-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -20,7 +20,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.62-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.63-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index aa7640aa2..19e0dadc5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.62.0", + "version": "v7.63.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 4e3458626..735e3efb1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.62.0", + "version": "v7.63.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 0c3c1d151..57790856c 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.62 + Wekan REST API v7.63 @@ -1548,7 +1548,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
            • - Wekan REST API v7.62 + Wekan REST API v7.63
            • @@ -2067,7 +2067,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
              -

              Wekan REST API v7.62

              +

              Wekan REST API v7.63

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

              diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 1ab83d624..a3e6a90ba 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.62 + version: v7.63 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index b0bd90f92..9b0ce7779 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 = 762, + appVersion = 763, # Increment this for every release. - appMarketingVersion = (defaultText = "7.62.0~2024-11-15"), + appMarketingVersion = (defaultText = "7.63.0~2024-11-16"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index df61d33d2..a99f8a7c7 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.62' +version: '7.63' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.62/wekan-7.62-amd64.zip - unzip wekan-7.62-amd64.zip - rm wekan-7.62-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.63/wekan-7.63-amd64.zip + unzip wekan-7.63-amd64.zip + rm wekan-7.63-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From d0024d397ae588ba102fb264ea0907bf3d25db81 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 16 Nov 2024 23:35:39 +0200 Subject: [PATCH 093/356] Add missing semicolon --- client/lib/keyboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 9d9575314..8dd392066 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -226,7 +226,7 @@ Mousetrap.bind('n', evt => { const card = ReactiveCache.getCard(cardId); // Find the button and click it - $(`#js-list-${card.listId} .list-body .minicards .open-minicard-composer`).click() + $(`#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 From 1ae52bbdb14de55f3447659ae32b697a174cbfa3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 17 Nov 2024 12:41:56 +0200 Subject: [PATCH 094/356] Updated translations. --- imports/i18n/data/he.i18n.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index d86f0f895..a93f7fee8 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -574,7 +574,7 @@ "select-board": "בחירת לוח", "set-wip-limit-value": "הגדרת מגבלה למספר המרבי של משימות ברשימה זו", "setWipLimitPopup-title": "הגדרת מגבלת „בעבודה”", - "shortcut-add-self": "Add yourself to current card", + "shortcut-add-self": "להוסיף את עצמך לכרטיס הנוכחי", "shortcut-assign-self": "להקצות אותי לכרטיס הנוכחי", "shortcut-autocomplete-emoji": "השלמה אוטומטית לאימוג׳י", "shortcut-autocomplete-members": "השלמה אוטומטית של חברים", From 465e2b1b6aeb3f13acbc80eb2fbc4bf37fb071a8 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sun, 17 Nov 2024 22:13:45 +0200 Subject: [PATCH 095/356] Remove swimlane size limit --- client/components/swimlanes/swimlanes.css | 5 ----- 1 file changed, 5 deletions(-) diff --git a/client/components/swimlanes/swimlanes.css b/client/components/swimlanes/swimlanes.css index 9fb0ad275..373de8ab3 100644 --- a/client/components/swimlanes/swimlanes.css +++ b/client/components/swimlanes/swimlanes.css @@ -1,8 +1,3 @@ -@media screen and (min-width: 801px) { - .swimlane.ui-sortable { - width: max-content; - } -} [class=swimlane] { position: sticky; left: 0; From 30a5b873704f37197f6f018a162264972c717e5a Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sun, 17 Nov 2024 23:05:21 +0200 Subject: [PATCH 096/356] Change list width to max width, default to even spacing --- client/components/lists/list.css | 5 +++++ client/components/lists/list.jade | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/client/components/lists/list.css b/client/components/lists/list.css index f197f7de5..502cc60d3 100644 --- a/client/components/lists/list.css +++ b/client/components/lists/list.css @@ -7,12 +7,14 @@ border-left: 1px solid #ccc; padding: 0; float: left; + flex: 1; } [id^="swimlane-"] .list:first-child { min-width: 20px; } .list:first-child { border-left: none; + flex: none; } .card-details + .list { border-left: none; @@ -31,6 +33,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; diff --git a/client/components/lists/list.jade b/client/components/lists/list.jade index e7f06c6ca..1b03f1d93 100644 --- a/client/components/lists/list.jade +++ b/client/components/lists/list.jade @@ -1,6 +1,6 @@ template(name='list') .list.js-list(id="js-list-{{_id}}" - style="{{#unless collapsed}}width:{{listWidth}}px;{{/unless}}" + style="{{#unless collapsed}}max-width:{{listWidth}}px;{{/unless}}" class="{{#if collapsed}}list-collapsed{{/if}}") +listHeader +listBody From 98cf7ec7159f4f3a7477899e6e5ca98b1ac97ca8 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 20 Nov 2024 00:47:45 +0200 Subject: [PATCH 097/356] Change max-width to min-width so that lists will only shrink when there is no space left --- client/components/lists/list.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/lists/list.jade b/client/components/lists/list.jade index 1b03f1d93..62a719f92 100644 --- a/client/components/lists/list.jade +++ b/client/components/lists/list.jade @@ -1,6 +1,6 @@ template(name='list') .list.js-list(id="js-list-{{_id}}" - style="{{#unless collapsed}}max-width:{{listWidth}}px;{{/unless}}" + style="{{#unless collapsed}}min-width:{{listWidth}}px;{{/unless}}" class="{{#if collapsed}}list-collapsed{{/if}}") +listHeader +listBody From 87d53f6f933857e013155c80ea2a0b1b71fd1e29 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 20 Nov 2024 00:48:13 +0200 Subject: [PATCH 098/356] Fix dragscroll inside swimlanes --- client/components/swimlanes/swimlanes.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/swimlanes/swimlanes.jade b/client/components/swimlanes/swimlanes.jade index f01ca7efd..2643b4575 100644 --- a/client/components/swimlanes/swimlanes.jade +++ b/client/components/swimlanes/swimlanes.jade @@ -2,7 +2,7 @@ template(name="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 From 09bee3061040d31bd6a021052797cc3ded94b743 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 20 Nov 2024 00:49:24 +0200 Subject: [PATCH 099/356] Change list width translation --- imports/i18n/data/en.i18n.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 46fdf6fd9..f224fd69c 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Minimal Width", + "set-list-width-value": "Minimal Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", From aca665ae4efb690fc723e71d3cbad41561c1d1ea Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 20 Nov 2024 01:20:10 +0200 Subject: [PATCH 100/356] Changed method of scrollbar hiding --- client/components/cards/cardDetails.css | 5 +---- client/components/lists/list.css | 5 +---- client/components/sidebar/sidebar.css | 5 +---- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/client/components/cards/cardDetails.css b/client/components/cards/cardDetails.css index 4bb8bf8cb..f18fcb962 100644 --- a/client/components/cards/cardDetails.css +++ b/client/components/cards/cardDetails.css @@ -89,10 +89,7 @@ box-shadow: 0 0 7px 0 #b3b3b3; transition: flex-basis 0.1s; box-sizing: border-box; -} -.card-details::-webkit-scrollbar { - /* Hide scroll bars from middle of the screen */ - display: none !important; + scrollbar-width: none; } .card-details .mCustomScrollBox { padding-left: 0; diff --git a/client/components/lists/list.css b/client/components/lists/list.css index 502cc60d3..0f1bb8e2f 100644 --- a/client/components/lists/list.css +++ b/client/components/lists/list.css @@ -152,10 +152,7 @@ display: flex; overflow-y: auto; padding: 5px 11px; -} -.list-body::-webkit-scrollbar { - /* Hide scroll bars from middle of the screen */ - display: none !important; + scrollbar-width: none; } .list-body .minicards { flex-grow: 1; diff --git a/client/components/sidebar/sidebar.css b/client/components/sidebar/sidebar.css index beb4a9c20..4533c3ef3 100644 --- a/client/components/sidebar/sidebar.css +++ b/client/components/sidebar/sidebar.css @@ -4,10 +4,7 @@ bottom: 0; right: 0; overflow-y: scroll; -} -.sidebar::-webkit-scrollbar { - /* Hide scroll bars from middle of the screen */ - display: none !important; + scrollbar-width: none; } .sidebar .sidebar-shadow { background: #f7f7f7; From 6c32c210f85826c18a006433392f0e34055e96bd Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 20 Nov 2024 01:20:40 +0200 Subject: [PATCH 101/356] Disable scrollbars in swimlanes --- client/components/swimlanes/swimlanes.css | 1 + 1 file changed, 1 insertion(+) diff --git a/client/components/swimlanes/swimlanes.css b/client/components/swimlanes/swimlanes.css index 373de8ab3..8101bcf62 100644 --- a/client/components/swimlanes/swimlanes.css +++ b/client/components/swimlanes/swimlanes.css @@ -8,6 +8,7 @@ flex-direction: row; overflow: auto; max-height: 100%; + scrollbar-width: none; } .swimlane-header-menu .swimlane-header-collapse-down { font-size: 50%; From 4e89f277686cd3fa07cbd64abb7d344857c80bdd Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 20 Nov 2024 02:53:30 +0200 Subject: [PATCH 102/356] Updated translations. --- imports/i18n/data/en.i18n.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index f224fd69c..8de471b27 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -87,8 +87,8 @@ "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 Minimal Width", - "set-list-width-value": "Minimal Width (pixels)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", From 82750ee8a276e2a9107602ae158714a4e0041b7b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 20 Nov 2024 03:04:51 +0200 Subject: [PATCH 103/356] Updated translations. --- imports/i18n/data/af.i18n.json | 4 +-- imports/i18n/data/af_ZA.i18n.json | 4 +-- imports/i18n/data/ar-DZ.i18n.json | 4 +-- imports/i18n/data/ar-EG.i18n.json | 4 +-- imports/i18n/data/ar.i18n.json | 4 +-- imports/i18n/data/ary.i18n.json | 4 +-- imports/i18n/data/ast-ES.i18n.json | 4 +-- imports/i18n/data/az-AZ.i18n.json | 4 +-- imports/i18n/data/az-LA.i18n.json | 4 +-- imports/i18n/data/az.i18n.json | 4 +-- imports/i18n/data/bg.i18n.json | 4 +-- imports/i18n/data/br.i18n.json | 4 +-- imports/i18n/data/ca.i18n.json | 4 +-- imports/i18n/data/ca_ES.i18n.json | 4 +-- imports/i18n/data/cmn.i18n.json | 4 +-- imports/i18n/data/cs-CZ.i18n.json | 4 +-- imports/i18n/data/cs.i18n.json | 4 +-- imports/i18n/data/cy-GB.i18n.json | 4 +-- imports/i18n/data/cy.i18n.json | 4 +-- imports/i18n/data/da.i18n.json | 4 +-- imports/i18n/data/de-AT.i18n.json | 4 +-- imports/i18n/data/de-CH.i18n.json | 4 +-- imports/i18n/data/de.i18n.json | 52 ++++++++++++++--------------- imports/i18n/data/de_DE.i18n.json | 4 +-- imports/i18n/data/el-GR.i18n.json | 4 +-- imports/i18n/data/el.i18n.json | 4 +-- imports/i18n/data/en-BR.i18n.json | 4 +-- imports/i18n/data/en-DE.i18n.json | 4 +-- imports/i18n/data/en-GB.i18n.json | 4 +-- imports/i18n/data/en-IT.i18n.json | 4 +-- imports/i18n/data/en-MY.i18n.json | 4 +-- imports/i18n/data/en-YS.i18n.json | 4 +-- imports/i18n/data/en_ZA.i18n.json | 4 +-- imports/i18n/data/eo.i18n.json | 4 +-- imports/i18n/data/es-AR.i18n.json | 4 +-- imports/i18n/data/es-CL.i18n.json | 4 +-- imports/i18n/data/es-LA.i18n.json | 4 +-- imports/i18n/data/es-MX.i18n.json | 4 +-- imports/i18n/data/es-PE.i18n.json | 4 +-- imports/i18n/data/es-PY.i18n.json | 4 +-- imports/i18n/data/es.i18n.json | 4 +-- imports/i18n/data/es_CO.i18n.json | 4 +-- imports/i18n/data/et-EE.i18n.json | 4 +-- imports/i18n/data/eu.i18n.json | 4 +-- imports/i18n/data/fa-IR.i18n.json | 4 +-- imports/i18n/data/fa.i18n.json | 4 +-- imports/i18n/data/fi.i18n.json | 4 +-- imports/i18n/data/fr-CH.i18n.json | 4 +-- imports/i18n/data/fr-FR.i18n.json | 4 +-- imports/i18n/data/fr.i18n.json | 4 +-- imports/i18n/data/fy-NL.i18n.json | 4 +-- imports/i18n/data/fy.i18n.json | 4 +-- imports/i18n/data/gl-ES.i18n.json | 4 +-- imports/i18n/data/gl.i18n.json | 4 +-- imports/i18n/data/gu-IN.i18n.json | 4 +-- imports/i18n/data/he-IL.i18n.json | 4 +-- imports/i18n/data/he.i18n.json | 4 +-- imports/i18n/data/hi-IN.i18n.json | 4 +-- imports/i18n/data/hi.i18n.json | 4 +-- imports/i18n/data/hr.i18n.json | 4 +-- imports/i18n/data/hu.i18n.json | 4 +-- imports/i18n/data/hy.i18n.json | 4 +-- imports/i18n/data/id.i18n.json | 4 +-- imports/i18n/data/ig.i18n.json | 4 +-- imports/i18n/data/it.i18n.json | 4 +-- imports/i18n/data/ja-HI.i18n.json | 4 +-- imports/i18n/data/ja.i18n.json | 4 +-- imports/i18n/data/ka.i18n.json | 4 +-- imports/i18n/data/km.i18n.json | 4 +-- imports/i18n/data/ko-KR.i18n.json | 4 +-- imports/i18n/data/ko.i18n.json | 4 +-- imports/i18n/data/lt.i18n.json | 4 +-- imports/i18n/data/lv.i18n.json | 4 +-- imports/i18n/data/mk.i18n.json | 4 +-- imports/i18n/data/mn.i18n.json | 4 +-- imports/i18n/data/ms-MY.i18n.json | 4 +-- imports/i18n/data/ms.i18n.json | 4 +-- imports/i18n/data/nb.i18n.json | 4 +-- imports/i18n/data/nl-NL.i18n.json | 4 +-- imports/i18n/data/nl.i18n.json | 4 +-- imports/i18n/data/oc.i18n.json | 4 +-- imports/i18n/data/or_IN.i18n.json | 4 +-- imports/i18n/data/pa.i18n.json | 4 +-- imports/i18n/data/pl-PL.i18n.json | 4 +-- imports/i18n/data/pl.i18n.json | 4 +-- imports/i18n/data/pt-BR.i18n.json | 4 +-- imports/i18n/data/pt.i18n.json | 4 +-- imports/i18n/data/pt_PT.i18n.json | 4 +-- imports/i18n/data/ro-RO.i18n.json | 4 +-- imports/i18n/data/ro.i18n.json | 4 +-- imports/i18n/data/ru-UA.i18n.json | 4 +-- imports/i18n/data/ru.i18n.json | 4 +-- imports/i18n/data/sk.i18n.json | 4 +-- imports/i18n/data/sl.i18n.json | 4 +-- imports/i18n/data/sr.i18n.json | 4 +-- imports/i18n/data/sv.i18n.json | 4 +-- imports/i18n/data/sw.i18n.json | 4 +-- imports/i18n/data/ta.i18n.json | 4 +-- imports/i18n/data/th.i18n.json | 4 +-- imports/i18n/data/tlh.i18n.json | 4 +-- imports/i18n/data/tr.i18n.json | 4 +-- imports/i18n/data/ug.i18n.json | 4 +-- imports/i18n/data/uk-UA.i18n.json | 14 ++++---- imports/i18n/data/uk.i18n.json | 16 ++++----- imports/i18n/data/uz-AR.i18n.json | 4 +-- imports/i18n/data/uz-LA.i18n.json | 4 +-- imports/i18n/data/uz-UZ.i18n.json | 4 +-- imports/i18n/data/uz.i18n.json | 4 +-- imports/i18n/data/ve-CC.i18n.json | 4 +-- imports/i18n/data/ve-PP.i18n.json | 4 +-- imports/i18n/data/ve.i18n.json | 4 +-- imports/i18n/data/vi-VN.i18n.json | 4 +-- imports/i18n/data/vi.i18n.json | 4 +-- imports/i18n/data/vl-SS.i18n.json | 4 +-- imports/i18n/data/vo.i18n.json | 4 +-- imports/i18n/data/wa-RR.i18n.json | 4 +-- imports/i18n/data/wa.i18n.json | 4 +-- imports/i18n/data/wo.i18n.json | 4 +-- imports/i18n/data/xh.i18n.json | 4 +-- imports/i18n/data/yi.i18n.json | 4 +-- imports/i18n/data/yo.i18n.json | 4 +-- imports/i18n/data/yue_CN.i18n.json | 4 +-- imports/i18n/data/zgh.i18n.json | 4 +-- imports/i18n/data/zh-CN.i18n.json | 4 +-- imports/i18n/data/zh-GB.i18n.json | 4 +-- imports/i18n/data/zh-HK.i18n.json | 4 +-- imports/i18n/data/zh-Hans.i18n.json | 4 +-- imports/i18n/data/zh-Hant.i18n.json | 4 +-- imports/i18n/data/zh-TW.i18n.json | 36 ++++++++++---------- imports/i18n/data/zh.i18n.json | 4 +-- imports/i18n/data/zu-ZA.i18n.json | 4 +-- imports/i18n/data/zu.i18n.json | 4 +-- 132 files changed, 315 insertions(+), 315 deletions(-) diff --git a/imports/i18n/data/af.i18n.json b/imports/i18n/data/af.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/af.i18n.json +++ b/imports/i18n/data/af.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/af_ZA.i18n.json b/imports/i18n/data/af_ZA.i18n.json index 2064e515b..9b5e33a80 100644 --- a/imports/i18n/data/af_ZA.i18n.json +++ b/imports/i18n/data/af_ZA.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ar-DZ.i18n.json b/imports/i18n/data/ar-DZ.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/ar-DZ.i18n.json +++ b/imports/i18n/data/ar-DZ.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ar-EG.i18n.json b/imports/i18n/data/ar-EG.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/ar-EG.i18n.json +++ b/imports/i18n/data/ar-EG.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index f7e18ebe3..ef83c2675 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ary.i18n.json b/imports/i18n/data/ary.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/ary.i18n.json +++ b/imports/i18n/data/ary.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ast-ES.i18n.json b/imports/i18n/data/ast-ES.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/ast-ES.i18n.json +++ b/imports/i18n/data/ast-ES.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/az-AZ.i18n.json b/imports/i18n/data/az-AZ.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/az-AZ.i18n.json +++ b/imports/i18n/data/az-AZ.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/az-LA.i18n.json b/imports/i18n/data/az-LA.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/az-LA.i18n.json +++ b/imports/i18n/data/az-LA.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/az.i18n.json b/imports/i18n/data/az.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/az.i18n.json +++ b/imports/i18n/data/az.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/bg.i18n.json b/imports/i18n/data/bg.i18n.json index bcf7322a7..33fe876ab 100644 --- a/imports/i18n/data/bg.i18n.json +++ b/imports/i18n/data/bg.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index bd44c6ac7..1a7481eda 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ca.i18n.json b/imports/i18n/data/ca.i18n.json index 5367b1dce..30935ffae 100644 --- a/imports/i18n/data/ca.i18n.json +++ b/imports/i18n/data/ca.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ca_ES.i18n.json b/imports/i18n/data/ca_ES.i18n.json index 8005f4979..fc688e598 100644 --- a/imports/i18n/data/ca_ES.i18n.json +++ b/imports/i18n/data/ca_ES.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/cmn.i18n.json b/imports/i18n/data/cmn.i18n.json index 09ab8da8c..55f1d315e 100644 --- a/imports/i18n/data/cmn.i18n.json +++ b/imports/i18n/data/cmn.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/cs-CZ.i18n.json b/imports/i18n/data/cs-CZ.i18n.json index 7ac1cc8a4..afba60a88 100644 --- a/imports/i18n/data/cs-CZ.i18n.json +++ b/imports/i18n/data/cs-CZ.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/cs.i18n.json b/imports/i18n/data/cs.i18n.json index a65d5d361..8ad75c795 100644 --- a/imports/i18n/data/cs.i18n.json +++ b/imports/i18n/data/cs.i18n.json @@ -87,8 +87,8 @@ "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": "Nastavit šířku seznamu", - "set-list-width": "Nastavit šířku seznamu", - "set-list-width-value": "Šířka seznamu (pixely)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Šířka seznamu musí být kladné celé číslo", "setSwimlaneHeightPopup-title": "Nastavit výšku swimlane", "set-swimlane-height": "Nastavit výšku swimlane", diff --git a/imports/i18n/data/cy-GB.i18n.json b/imports/i18n/data/cy-GB.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/cy-GB.i18n.json +++ b/imports/i18n/data/cy-GB.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/cy.i18n.json b/imports/i18n/data/cy.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/cy.i18n.json +++ b/imports/i18n/data/cy.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/da.i18n.json b/imports/i18n/data/da.i18n.json index 65dcf717e..80569304c 100644 --- a/imports/i18n/data/da.i18n.json +++ b/imports/i18n/data/da.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Listens bredde skal være et positivt heltal", "setSwimlaneHeightPopup-title": "Angiv højde på svømmebane", "set-swimlane-height": "Angiv højde på svømmebane", diff --git a/imports/i18n/data/de-AT.i18n.json b/imports/i18n/data/de-AT.i18n.json index 332b9d31d..74363ee72 100644 --- a/imports/i18n/data/de-AT.i18n.json +++ b/imports/i18n/data/de-AT.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/de-CH.i18n.json b/imports/i18n/data/de-CH.i18n.json index 7a284ec10..93a02e179 100644 --- a/imports/i18n/data/de-CH.i18n.json +++ b/imports/i18n/data/de-CH.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index 8552dfa84..496079c40 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,7 +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-changedListTitle": "Die Liste wurde umbenannt zu", "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", @@ -61,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", @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein", "setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein", "set-swimlane-height": "Stelle die Höhe der Swimlane ein", @@ -97,9 +97,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", @@ -574,7 +574,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-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", @@ -797,10 +797,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", @@ -817,7 +817,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", @@ -958,8 +958,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-finished-checklist": "Hide finished checklist", + "hide-checked-items": "Erledigte Einträge ausblenden", + "hide-finished-checklist": "Abgeschlossene Checkliste ausblenden", "task": "Aufgabe", "create-task": "Aufgabe erstellen", "ok": "OK", @@ -1113,7 +1113,7 @@ "created-at-newest-first": "Erstelldatum (neueste zuerst)", "created-at-oldest-first": "Erstelldatum (älteste zuerst)", "links-heading": "Links", - "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "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", @@ -1197,10 +1197,10 @@ "checklistActionsPopup-title": "Checklistenaktionen", "moveChecklist": "Checkliste verschieben", "moveChecklistPopup-title": "Checkliste verschieben", - "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", + "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", @@ -1254,6 +1254,6 @@ "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": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideCheckedChecklistItems": "Erledigte Checklisteneinträge ausblenden", + "hideAllChecklistItems": "Verberge alle Checklisteneinträge" } diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index 4f7399795..03d7bee7d 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein", "setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein", "set-swimlane-height": "Stelle die Höhe der Swimlane ein", diff --git a/imports/i18n/data/el-GR.i18n.json b/imports/i18n/data/el-GR.i18n.json index 214cb2236..3786e71a1 100644 --- a/imports/i18n/data/el-GR.i18n.json +++ b/imports/i18n/data/el-GR.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/el.i18n.json b/imports/i18n/data/el.i18n.json index acc1cd24e..108cb9321 100644 --- a/imports/i18n/data/el.i18n.json +++ b/imports/i18n/data/el.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/en-BR.i18n.json b/imports/i18n/data/en-BR.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/en-BR.i18n.json +++ b/imports/i18n/data/en-BR.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/en-DE.i18n.json b/imports/i18n/data/en-DE.i18n.json index 6b8d9943b..1f1eed9c6 100644 --- a/imports/i18n/data/en-DE.i18n.json +++ b/imports/i18n/data/en-DE.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/en-GB.i18n.json b/imports/i18n/data/en-GB.i18n.json index 649b09357..42e60f40b 100644 --- a/imports/i18n/data/en-GB.i18n.json +++ b/imports/i18n/data/en-GB.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/en-IT.i18n.json b/imports/i18n/data/en-IT.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/en-IT.i18n.json +++ b/imports/i18n/data/en-IT.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/en-MY.i18n.json b/imports/i18n/data/en-MY.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/en-MY.i18n.json +++ b/imports/i18n/data/en-MY.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/en-YS.i18n.json b/imports/i18n/data/en-YS.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/en-YS.i18n.json +++ b/imports/i18n/data/en-YS.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/en_ZA.i18n.json b/imports/i18n/data/en_ZA.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/en_ZA.i18n.json +++ b/imports/i18n/data/en_ZA.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index ad05bdde3..02beb90d0 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/es-AR.i18n.json b/imports/i18n/data/es-AR.i18n.json index cbb98c171..f8e261685 100644 --- a/imports/i18n/data/es-AR.i18n.json +++ b/imports/i18n/data/es-AR.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/es-CL.i18n.json b/imports/i18n/data/es-CL.i18n.json index 152a7cb40..8e39baa80 100644 --- a/imports/i18n/data/es-CL.i18n.json +++ b/imports/i18n/data/es-CL.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/es-LA.i18n.json b/imports/i18n/data/es-LA.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/es-LA.i18n.json +++ b/imports/i18n/data/es-LA.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/es-MX.i18n.json b/imports/i18n/data/es-MX.i18n.json index 9d3fa2788..aadfeceba 100644 --- a/imports/i18n/data/es-MX.i18n.json +++ b/imports/i18n/data/es-MX.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/es-PE.i18n.json b/imports/i18n/data/es-PE.i18n.json index cbd0bc69e..8b92eecff 100644 --- a/imports/i18n/data/es-PE.i18n.json +++ b/imports/i18n/data/es-PE.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/es-PY.i18n.json b/imports/i18n/data/es-PY.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/es-PY.i18n.json +++ b/imports/i18n/data/es-PY.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 7bfbb2d52..25329e88e 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/es_CO.i18n.json b/imports/i18n/data/es_CO.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/es_CO.i18n.json +++ b/imports/i18n/data/es_CO.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/et-EE.i18n.json b/imports/i18n/data/et-EE.i18n.json index bd81a5291..0c2f97a2d 100644 --- a/imports/i18n/data/et-EE.i18n.json +++ b/imports/i18n/data/et-EE.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 955ac27eb..9786598b4 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Zerrendaren zabalerak zenbaki oso positiboa izan behar du", "setSwimlaneHeightPopup-title": "Errailaren altuera ezarri", "set-swimlane-height": "Errailaren altuera ezarri", diff --git a/imports/i18n/data/fa-IR.i18n.json b/imports/i18n/data/fa-IR.i18n.json index 09ce3b179..eeed1de05 100644 --- a/imports/i18n/data/fa-IR.i18n.json +++ b/imports/i18n/data/fa-IR.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/fa.i18n.json b/imports/i18n/data/fa.i18n.json index 09ce3b179..eeed1de05 100644 --- a/imports/i18n/data/fa.i18n.json +++ b/imports/i18n/data/fa.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/fi.i18n.json b/imports/i18n/data/fi.i18n.json index d84309560..d6595b4a1 100644 --- a/imports/i18n/data/fi.i18n.json +++ b/imports/i18n/data/fi.i18n.json @@ -87,8 +87,8 @@ "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ä)", + "set-list-width": "Aseta minimi leveys", + "set-list-width-value": "Minimi leveys (pikseliä)", "list-width-error-message": "Listan leveyden täytyy olla positiivinen kokonaisluku", "setSwimlaneHeightPopup-title": "Aseta uimaradan korkeus", "set-swimlane-height": "Aseta uimaradan korkeus", diff --git a/imports/i18n/data/fr-CH.i18n.json b/imports/i18n/data/fr-CH.i18n.json index 173d16aea..f776a6a55 100644 --- a/imports/i18n/data/fr-CH.i18n.json +++ b/imports/i18n/data/fr-CH.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/fr-FR.i18n.json b/imports/i18n/data/fr-FR.i18n.json index b32098f12..1256f49fd 100644 --- a/imports/i18n/data/fr-FR.i18n.json +++ b/imports/i18n/data/fr-FR.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "La largeur de la liste doit être un entier positif", "setSwimlaneHeightPopup-title": "Définir la hauteur du couloir", "set-swimlane-height": "Définir la hauteur du couloir", diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index 7ff45651a..949fe2496 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "La largeur de la liste doit être un entier positif", "setSwimlaneHeightPopup-title": "Définir la hauteur du couloir", "set-swimlane-height": "Définir la hauteur du couloir", diff --git a/imports/i18n/data/fy-NL.i18n.json b/imports/i18n/data/fy-NL.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/fy-NL.i18n.json +++ b/imports/i18n/data/fy-NL.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/fy.i18n.json b/imports/i18n/data/fy.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/fy.i18n.json +++ b/imports/i18n/data/fy.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/gl-ES.i18n.json b/imports/i18n/data/gl-ES.i18n.json index 7dc380d80..f648975db 100644 --- a/imports/i18n/data/gl-ES.i18n.json +++ b/imports/i18n/data/gl-ES.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/gl.i18n.json b/imports/i18n/data/gl.i18n.json index c0986a632..f4f9e382e 100644 --- a/imports/i18n/data/gl.i18n.json +++ b/imports/i18n/data/gl.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/gu-IN.i18n.json b/imports/i18n/data/gu-IN.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/gu-IN.i18n.json +++ b/imports/i18n/data/gu-IN.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/he-IL.i18n.json b/imports/i18n/data/he-IL.i18n.json index 54325437d..fb43f5770 100644 --- a/imports/i18n/data/he-IL.i18n.json +++ b/imports/i18n/data/he-IL.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index a93f7fee8..128ca815d 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "הוספת כרטיס לראש הרשימה", "add-card-to-bottom-of-list": "הוספת כרטיס לתחתית הרשימה", "setListWidthPopup-title": "הגדרת רוחב רשימה", - "set-list-width": "הגדרת רוחב רשימה", - "set-list-width-value": "רוחב רשימה (פיקסלים)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "רוחב הרשימה חייב להיות מספר שלם וחיובי", "setSwimlaneHeightPopup-title": "הגדרת גובה מסלול", "set-swimlane-height": "הגדרת גובה מסלול", diff --git a/imports/i18n/data/hi-IN.i18n.json b/imports/i18n/data/hi-IN.i18n.json index 758568edd..1d23093d6 100644 --- a/imports/i18n/data/hi-IN.i18n.json +++ b/imports/i18n/data/hi-IN.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/hi.i18n.json b/imports/i18n/data/hi.i18n.json index 92f21ca24..6b75c3731 100644 --- a/imports/i18n/data/hi.i18n.json +++ b/imports/i18n/data/hi.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/hr.i18n.json b/imports/i18n/data/hr.i18n.json index 21291418a..461860e84 100644 --- a/imports/i18n/data/hr.i18n.json +++ b/imports/i18n/data/hr.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/hu.i18n.json b/imports/i18n/data/hu.i18n.json index 1aab80703..174dae224 100644 --- a/imports/i18n/data/hu.i18n.json +++ b/imports/i18n/data/hu.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/hy.i18n.json b/imports/i18n/data/hy.i18n.json index a41d7a627..3647bb7ff 100644 --- a/imports/i18n/data/hy.i18n.json +++ b/imports/i18n/data/hy.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/id.i18n.json b/imports/i18n/data/id.i18n.json index de11ec153..01d911ef9 100644 --- a/imports/i18n/data/id.i18n.json +++ b/imports/i18n/data/id.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Lebar daftar harus dalam sebuah bilangan bulat posiif", "setSwimlaneHeightPopup-title": "Atur Tinggi Swimlane ", "set-swimlane-height": "Atur Tinggi Swimlane ", diff --git a/imports/i18n/data/ig.i18n.json b/imports/i18n/data/ig.i18n.json index 7b23f12b4..383432bca 100644 --- a/imports/i18n/data/ig.i18n.json +++ b/imports/i18n/data/ig.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/it.i18n.json b/imports/i18n/data/it.i18n.json index cdd3bc110..bebf5818b 100644 --- a/imports/i18n/data/it.i18n.json +++ b/imports/i18n/data/it.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "La larghezza della lista deve essere un intero positivo", "setSwimlaneHeightPopup-title": "Impostare l'altezza della corsia", "set-swimlane-height": "Impostare l'altezza della corsia", diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index 470a0454e..88baf1838 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -87,8 +87,8 @@ "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": "リストの幅(ピクセル)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "リストの幅は正の整数を入力してください", "setSwimlaneHeightPopup-title": "スイムレーンの高さを設定", "set-swimlane-height": "スイムレーンの高さを設定", diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index 571401a1f..0a305d12b 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -87,8 +87,8 @@ "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": "リストの幅(ピクセル)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "リストの幅は正の整数を入力してください", "setSwimlaneHeightPopup-title": "スイムレーンの高さを設定", "set-swimlane-height": "スイムレーンの高さを設定", diff --git a/imports/i18n/data/ka.i18n.json b/imports/i18n/data/ka.i18n.json index 3d37c7a1a..a3dddfdef 100644 --- a/imports/i18n/data/ka.i18n.json +++ b/imports/i18n/data/ka.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/km.i18n.json b/imports/i18n/data/km.i18n.json index c55aedde7..2bdac039d 100644 --- a/imports/i18n/data/km.i18n.json +++ b/imports/i18n/data/km.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ko-KR.i18n.json b/imports/i18n/data/ko-KR.i18n.json index 7c8c39363..7b7503153 100644 --- a/imports/i18n/data/ko-KR.i18n.json +++ b/imports/i18n/data/ko-KR.i18n.json @@ -87,8 +87,8 @@ "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": "목록 너비 (픽셀)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "목록 너비는 양수여야 합니다", "setSwimlaneHeightPopup-title": "Swimlane 높이 설정", "set-swimlane-height": "Swimlane 높이 설정", diff --git a/imports/i18n/data/ko.i18n.json b/imports/i18n/data/ko.i18n.json index 5de819f4d..0074ff6a6 100644 --- a/imports/i18n/data/ko.i18n.json +++ b/imports/i18n/data/ko.i18n.json @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "리스트 맨앞에 카드를 추가함", "add-card-to-bottom-of-list": "리스트 맨뒤에 카드를 추가함", "setListWidthPopup-title": "목록 너비 설정", - "set-list-width": "목록 너비 설정", - "set-list-width-value": "목록 너비 (픽셀)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "목록 너비는 양수여야 합니다", "setSwimlaneHeightPopup-title": "Swimlane 높이 설정", "set-swimlane-height": "Swimlane 높이 설정", diff --git a/imports/i18n/data/lt.i18n.json b/imports/i18n/data/lt.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/lt.i18n.json +++ b/imports/i18n/data/lt.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/lv.i18n.json b/imports/i18n/data/lv.i18n.json index 1ac4eaca8..183d4bacc 100644 --- a/imports/i18n/data/lv.i18n.json +++ b/imports/i18n/data/lv.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/mk.i18n.json b/imports/i18n/data/mk.i18n.json index 0dbb4b237..f4dc313d4 100644 --- a/imports/i18n/data/mk.i18n.json +++ b/imports/i18n/data/mk.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/mn.i18n.json b/imports/i18n/data/mn.i18n.json index 0e374a73d..80127fe9c 100644 --- a/imports/i18n/data/mn.i18n.json +++ b/imports/i18n/data/mn.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/ms-MY.i18n.json +++ b/imports/i18n/data/ms-MY.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ms.i18n.json b/imports/i18n/data/ms.i18n.json index 0ac2d6992..b8344c663 100644 --- a/imports/i18n/data/ms.i18n.json +++ b/imports/i18n/data/ms.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/nb.i18n.json b/imports/i18n/data/nb.i18n.json index 98ae6ae55..84b9eab95 100644 --- a/imports/i18n/data/nb.i18n.json +++ b/imports/i18n/data/nb.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/nl-NL.i18n.json b/imports/i18n/data/nl-NL.i18n.json index d17444513..a515830ee 100644 --- a/imports/i18n/data/nl-NL.i18n.json +++ b/imports/i18n/data/nl-NL.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 756aac502..689355fb7 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Lijstbreedte moet positief geheel getal zijn", "setSwimlaneHeightPopup-title": "Stel Swimlane-hoogte in", "set-swimlane-height": "Stel Swimlane-hoogte in", diff --git a/imports/i18n/data/oc.i18n.json b/imports/i18n/data/oc.i18n.json index 74cdc7eab..92aa00d8a 100644 --- a/imports/i18n/data/oc.i18n.json +++ b/imports/i18n/data/oc.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/or_IN.i18n.json b/imports/i18n/data/or_IN.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/or_IN.i18n.json +++ b/imports/i18n/data/or_IN.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/pa.i18n.json b/imports/i18n/data/pa.i18n.json index 8d0eedb12..1d13b8624 100644 --- a/imports/i18n/data/pa.i18n.json +++ b/imports/i18n/data/pa.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/pl-PL.i18n.json b/imports/i18n/data/pl-PL.i18n.json index 6e7ec1eb6..f1741d4b1 100644 --- a/imports/i18n/data/pl-PL.i18n.json +++ b/imports/i18n/data/pl-PL.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/pl.i18n.json b/imports/i18n/data/pl.i18n.json index fb42592b5..eb1c92202 100644 --- a/imports/i18n/data/pl.i18n.json +++ b/imports/i18n/data/pl.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Szerokość listy musi mieć wartość dodatnią", "setSwimlaneHeightPopup-title": "Ustaw wysokość ścieżki", "set-swimlane-height": "Ustaw wysokość ścieżki", diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index 376769df5..90b9c3b8b 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Largura da Lista deve ser um inteiro positivo", "setSwimlaneHeightPopup-title": "Definir Altura da Raia", "set-swimlane-height": "Definir Altura da Raia", diff --git a/imports/i18n/data/pt.i18n.json b/imports/i18n/data/pt.i18n.json index 1d81777d6..830f17ddb 100644 --- a/imports/i18n/data/pt.i18n.json +++ b/imports/i18n/data/pt.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/pt_PT.i18n.json b/imports/i18n/data/pt_PT.i18n.json index d9d4bd488..b5c17d1f1 100644 --- a/imports/i18n/data/pt_PT.i18n.json +++ b/imports/i18n/data/pt_PT.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ro-RO.i18n.json b/imports/i18n/data/ro-RO.i18n.json index e8d2f4dd5..bf8e7b7d3 100644 --- a/imports/i18n/data/ro-RO.i18n.json +++ b/imports/i18n/data/ro-RO.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ro.i18n.json b/imports/i18n/data/ro.i18n.json index cf1d1b8fb..96b37bc29 100644 --- a/imports/i18n/data/ro.i18n.json +++ b/imports/i18n/data/ro.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ru-UA.i18n.json b/imports/i18n/data/ru-UA.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/ru-UA.i18n.json +++ b/imports/i18n/data/ru-UA.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ru.i18n.json b/imports/i18n/data/ru.i18n.json index 539918215..72a9c8c3a 100644 --- a/imports/i18n/data/ru.i18n.json +++ b/imports/i18n/data/ru.i18n.json @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "Добавить карточку в начало списка", "add-card-to-bottom-of-list": "Добавить карточку в конец списка", "setListWidthPopup-title": "Настроить ширину списка", - "set-list-width": "Настроить ширину списка", - "set-list-width-value": "Ширина списка (px)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Ширина списка может принимать только положительное значение", "setSwimlaneHeightPopup-title": "Настроить высоту дорожки", "set-swimlane-height": "Настроить высоту дорожки", diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index e5536d0d0..2bb4c879e 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/sl.i18n.json b/imports/i18n/data/sl.i18n.json index e18d45029..945ffa3d5 100644 --- a/imports/i18n/data/sl.i18n.json +++ b/imports/i18n/data/sl.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/sr.i18n.json b/imports/i18n/data/sr.i18n.json index 6e08de398..c591c08e5 100644 --- a/imports/i18n/data/sr.i18n.json +++ b/imports/i18n/data/sr.i18n.json @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "Додај картицу/задатак на врх деонице", "add-card-to-bottom-of-list": "Додај картицу/задатак на дно деонице", "setListWidthPopup-title": "Подеси ширину листе", - "set-list-width": "Подеси ширину листе", - "set-list-width-value": "Ширина листе (у пикселима)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Ширина стазе мора бити позитиван број", "setSwimlaneHeightPopup-title": "Подеси висину стазе", "set-swimlane-height": "Подеси висину стазе", diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index 6d9ab397b..c41b70334 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Listbredden måste vara ett positivt heltal", "setSwimlaneHeightPopup-title": "Ställ in simbanans höjd", "set-swimlane-height": "Ställ in simbanans höjd", diff --git a/imports/i18n/data/sw.i18n.json b/imports/i18n/data/sw.i18n.json index 1ba4b6626..02ccc9485 100644 --- a/imports/i18n/data/sw.i18n.json +++ b/imports/i18n/data/sw.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ta.i18n.json b/imports/i18n/data/ta.i18n.json index 887af6654..478115c83 100644 --- a/imports/i18n/data/ta.i18n.json +++ b/imports/i18n/data/ta.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/th.i18n.json b/imports/i18n/data/th.i18n.json index 653b31e25..091c44fc0 100644 --- a/imports/i18n/data/th.i18n.json +++ b/imports/i18n/data/th.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/tlh.i18n.json b/imports/i18n/data/tlh.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/tlh.i18n.json +++ b/imports/i18n/data/tlh.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index 7c3ae4ad8..f6deadbfd 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "Listenin Başına Kart Ekle", "add-card-to-bottom-of-list": "Listenin Sonuna Kart Ekle", "setListWidthPopup-title": "Liste Genişliğini Ayarla", - "set-list-width": "Liste Genişliğini Ayarla", - "set-list-width-value": "Liste Genişliği (piksel)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Liste Genişliği pozitif bir tam sayı olmak zorundadır.", "setSwimlaneHeightPopup-title": "Kulvar Uzunluğunu Ayarla", "set-swimlane-height": "Kulvar Uzunluğunu Ayarla", diff --git a/imports/i18n/data/ug.i18n.json b/imports/i18n/data/ug.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/ug.i18n.json +++ b/imports/i18n/data/ug.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index 75adc776b..52141ec3a 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "Додати картку на початок списку", "add-card-to-bottom-of-list": "Додати картку у кінець списку", "setListWidthPopup-title": "Встановити ширину списку", - "set-list-width": "Встановити ширину списку", - "set-list-width-value": "Ширина списку (у пікселях)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Список має бути цілим числом, що є більше за 0", "setSwimlaneHeightPopup-title": "Встановити довжину доріжки", "set-swimlane-height": "Встановити довжину доріжки", @@ -295,7 +295,7 @@ "color-white": "білий", "color-yellow": "жовтий", "unset-color": "Скасувати колір", - "comments": "Comments", + "comments": "Коментарі", "comment": "Коментар", "comment-placeholder": "Написати коментар", "comment-only": "Тільки коментарі", @@ -574,7 +574,7 @@ "select-board": "Обрати дошку", "set-wip-limit-value": "Встановіть ліміт максимальної кількості завдань у цьому списку", "setWipLimitPopup-title": "Встановити WIP ліміт", - "shortcut-add-self": "Add yourself to current card", + "shortcut-add-self": "Додати себе до поточної картки", "shortcut-assign-self": "Призначити себе до поточної картки", "shortcut-autocomplete-emoji": "Автозаповнення емодзі", "shortcut-autocomplete-members": "Автозавершення учасників", @@ -959,7 +959,7 @@ "delete-linked-card-before-this-card": "Ви не можете видалити цю картку, поки не видалите пов'язану картку, яка має", "delete-linked-cards-before-this-list": "Ви не можете видалити цей список, поки не видалите пов'язані картки, які вказують на картки в цьому списку", "hide-checked-items": "Сховати відмічені елементи", - "hide-finished-checklist": "Hide finished checklist", + "hide-finished-checklist": "Сховати виконані контрольні списки", "task": "Завдання", "create-task": "Створити завдання", "ok": "OK", @@ -1254,6 +1254,6 @@ "import-board-zip": "Додати файл .zip, який містить файли JSON дошки та підкаталоги з назвами дошок і вкладеннями", "collapse": "Згорнути", "uncollapse": "Розгорнути", - "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideCheckedChecklistItems": "Приховати відмічені елементи чек-листа", + "hideAllChecklistItems": "Приховати всі пункти чек-листа" } diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index 75adc776b..4258d0d4d 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -44,7 +44,7 @@ "act-withCardTitle": "[__board__] __card__", "actions": "Дії", "activities": "Діяльності", - "activity": "Діяльність", + "activity": "Активність", "activity-added": "%s додано до %s", "activity-archived": "%s перенесено до архіву", "activity-attached": "%s прикріплено до %s", @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "Додати картку на початок списку", "add-card-to-bottom-of-list": "Додати картку у кінець списку", "setListWidthPopup-title": "Встановити ширину списку", - "set-list-width": "Встановити ширину списку", - "set-list-width-value": "Ширина списку (у пікселях)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Список має бути цілим числом, що є більше за 0", "setSwimlaneHeightPopup-title": "Встановити довжину доріжки", "set-swimlane-height": "Встановити довжину доріжки", @@ -295,7 +295,7 @@ "color-white": "білий", "color-yellow": "жовтий", "unset-color": "Скасувати колір", - "comments": "Comments", + "comments": "Коментарі", "comment": "Коментар", "comment-placeholder": "Написати коментар", "comment-only": "Тільки коментарі", @@ -574,7 +574,7 @@ "select-board": "Обрати дошку", "set-wip-limit-value": "Встановіть ліміт максимальної кількості завдань у цьому списку", "setWipLimitPopup-title": "Встановити WIP ліміт", - "shortcut-add-self": "Add yourself to current card", + "shortcut-add-self": "Додати себе до поточної картки", "shortcut-assign-self": "Призначити себе до поточної картки", "shortcut-autocomplete-emoji": "Автозаповнення емодзі", "shortcut-autocomplete-members": "Автозавершення учасників", @@ -959,7 +959,7 @@ "delete-linked-card-before-this-card": "Ви не можете видалити цю картку, поки не видалите пов'язану картку, яка має", "delete-linked-cards-before-this-list": "Ви не можете видалити цей список, поки не видалите пов'язані картки, які вказують на картки в цьому списку", "hide-checked-items": "Сховати відмічені елементи", - "hide-finished-checklist": "Hide finished checklist", + "hide-finished-checklist": "Сховати виконані контрольні списки", "task": "Завдання", "create-task": "Створити завдання", "ok": "OK", @@ -1254,6 +1254,6 @@ "import-board-zip": "Додати файл .zip, який містить файли JSON дошки та підкаталоги з назвами дошок і вкладеннями", "collapse": "Згорнути", "uncollapse": "Розгорнути", - "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideCheckedChecklistItems": "Приховати відмічені елементи чек-листа", + "hideAllChecklistItems": "Приховати всі пункти чек-листа" } diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz-AR.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/uz-AR.i18n.json +++ b/imports/i18n/data/uz-AR.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/uz-LA.i18n.json b/imports/i18n/data/uz-LA.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/uz-LA.i18n.json +++ b/imports/i18n/data/uz-LA.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/uz-UZ.i18n.json b/imports/i18n/data/uz-UZ.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/uz-UZ.i18n.json +++ b/imports/i18n/data/uz-UZ.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/uz.i18n.json b/imports/i18n/data/uz.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/uz.i18n.json +++ b/imports/i18n/data/uz.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ve-CC.i18n.json b/imports/i18n/data/ve-CC.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/ve-CC.i18n.json +++ b/imports/i18n/data/ve-CC.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ve-PP.i18n.json b/imports/i18n/data/ve-PP.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/ve-PP.i18n.json +++ b/imports/i18n/data/ve-PP.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/ve.i18n.json b/imports/i18n/data/ve.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/ve.i18n.json +++ b/imports/i18n/data/ve.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/vi-VN.i18n.json b/imports/i18n/data/vi-VN.i18n.json index 28db5b55a..04fae1790 100644 --- a/imports/i18n/data/vi-VN.i18n.json +++ b/imports/i18n/data/vi-VN.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/vi.i18n.json b/imports/i18n/data/vi.i18n.json index d5aaecb3b..5067009df 100644 --- a/imports/i18n/data/vi.i18n.json +++ b/imports/i18n/data/vi.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/vl-SS.i18n.json b/imports/i18n/data/vl-SS.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/vl-SS.i18n.json +++ b/imports/i18n/data/vl-SS.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/vo.i18n.json b/imports/i18n/data/vo.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/vo.i18n.json +++ b/imports/i18n/data/vo.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/wa-RR.i18n.json b/imports/i18n/data/wa-RR.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/wa-RR.i18n.json +++ b/imports/i18n/data/wa-RR.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/wa.i18n.json b/imports/i18n/data/wa.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/wa.i18n.json +++ b/imports/i18n/data/wa.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/wo.i18n.json b/imports/i18n/data/wo.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/wo.i18n.json +++ b/imports/i18n/data/wo.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/xh.i18n.json b/imports/i18n/data/xh.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/xh.i18n.json +++ b/imports/i18n/data/xh.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/yi.i18n.json b/imports/i18n/data/yi.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/yi.i18n.json +++ b/imports/i18n/data/yi.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/yo.i18n.json b/imports/i18n/data/yo.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/yo.i18n.json +++ b/imports/i18n/data/yo.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/yue_CN.i18n.json b/imports/i18n/data/yue_CN.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/yue_CN.i18n.json +++ b/imports/i18n/data/yue_CN.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/zgh.i18n.json b/imports/i18n/data/zgh.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/zgh.i18n.json +++ b/imports/i18n/data/zgh.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/zh-CN.i18n.json b/imports/i18n/data/zh-CN.i18n.json index c0c1dbeb1..dca85a880 100644 --- a/imports/i18n/data/zh-CN.i18n.json +++ b/imports/i18n/data/zh-CN.i18n.json @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "添加卡片到列表顶部", "add-card-to-bottom-of-list": "添加卡片到列表底部", "setListWidthPopup-title": "设置列表宽度", - "set-list-width": "设置列表宽度", - "set-list-width-value": "列表宽度(px)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "列表宽度需要设置数字类型", "setSwimlaneHeightPopup-title": "设置泳道高度", "set-swimlane-height": "设置泳道高度", diff --git a/imports/i18n/data/zh-GB.i18n.json b/imports/i18n/data/zh-GB.i18n.json index a6788c6f5..abdce361b 100644 --- a/imports/i18n/data/zh-GB.i18n.json +++ b/imports/i18n/data/zh-GB.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/zh-HK.i18n.json b/imports/i18n/data/zh-HK.i18n.json index 578508580..033fa557d 100644 --- a/imports/i18n/data/zh-HK.i18n.json +++ b/imports/i18n/data/zh-HK.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/zh-Hans.i18n.json b/imports/i18n/data/zh-Hans.i18n.json index 3e2412580..18694c911 100644 --- a/imports/i18n/data/zh-Hans.i18n.json +++ b/imports/i18n/data/zh-Hans.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/zh-Hant.i18n.json b/imports/i18n/data/zh-Hant.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/zh-Hant.i18n.json +++ b/imports/i18n/data/zh-Hant.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index e8481e9b4..99f6f13af 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s 已被移到封存", "activity-attached": "已新增附件 %s 到 %s", "activity-created": "新增 %s", - "activity-changedListTitle": "renamed list to %s", + "activity-changedListTitle": "重新命名清單為 %s", "activity-customfield-created": "已建立的自訂欄位 %s", "activity-excluded": "排除 %s 從 %s", "activity-imported": "匯入 %s 到 %s 從 %s 中", @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "新增卡片至清單頂部", "add-card-to-bottom-of-list": "新增卡片至清單底部", "setListWidthPopup-title": "設定清單寬度", - "set-list-width": "設定清單寬度", - "set-list-width-value": "清單寬度(畫素)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "清單寬度必須為正整數", "setSwimlaneHeightPopup-title": "設定泳道高度", "set-swimlane-height": "設定泳道高度", @@ -295,15 +295,15 @@ "color-white": "白色", "color-yellow": "黃色", "unset-color": "未設定", - "comments": "Comments", + "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": "從本機上傳", @@ -445,7 +445,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": "返回您的看板頁面", - "show-activities": "Show Activities", + "show-activities": "顯示活動", "headerBarCreateBoardPopup-title": "建立看板", "home": "首頁", "import": "匯入", @@ -574,7 +574,7 @@ "select-board": "選擇看板", "set-wip-limit-value": "設定此清單中的最大任務數", "setWipLimitPopup-title": "設定 WIP 限制", - "shortcut-add-self": "Add yourself to current card", + "shortcut-add-self": "將您新增至目前的卡片", "shortcut-assign-self": "分配當前卡片給自己", "shortcut-autocomplete-emoji": "自動完成表情符號", "shortcut-autocomplete-members": "自動補齊成員", @@ -959,7 +959,7 @@ "delete-linked-card-before-this-card": "在刪除指向此卡片的鏈結卡之前,您不能刪除此卡片", "delete-linked-cards-before-this-list": "在刪除指向該清單中卡片的鏈結卡之前,您不能刪除此清單", "hide-checked-items": "隱藏已勾選項目", - "hide-finished-checklist": "Hide finished checklist", + "hide-finished-checklist": "隱藏完成的待辦清單", "task": "任務", "create-task": "建立任務", "ok": "確定", @@ -1113,8 +1113,8 @@ "created-at-newest-first": "建立於(最新優先)", "created-at-oldest-first": "建立於(最早優先)", "links-heading": "連結", - "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", + "hide-activities-of-all-boards": "不要在所有看板上顯示看板活動", + "now-activities-of-all-boards-are-hidden": "現在所有看板的所有活動都隱藏了", "move-swimlane": "移動泳道流程圖", "moveSwimlanePopup-title": "移動泳道流程圖", "custom-field-stringtemplate": "文字範本", @@ -1197,10 +1197,10 @@ "checklistActionsPopup-title": "檢查清單動作", "moveChecklist": "移動檢查清單", "moveChecklistPopup-title": "移動檢查清單", - "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", + "newlineBecomesNewChecklistItem": "每行文字都會成為待辦清單的其中一個項目", + "newLineNewItem": "一行文字 = 一個待辦清單項目", + "newlineBecomesNewChecklistItemOriginOrder": "每行文字都會成為待辦清單的其中一個項目,並維持原始排序", + "originOrder": "原始排序", "copyChecklist": "複製檢查清單", "copyChecklistPopup-title": "複製檢查清單", "card-show-lists": "卡片顯示清單", @@ -1254,6 +1254,6 @@ "import-board-zip": "新增包含看板 JSON 檔案與帶有附件的看板名稱子目錄的 .zip 檔案", "collapse": "損毀", "uncollapse": "展開", - "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideCheckedChecklistItems": "隱藏已勾選的待辦清單項目", + "hideAllChecklistItems": "隱藏所有待辦清單項目" } diff --git a/imports/i18n/data/zh.i18n.json b/imports/i18n/data/zh.i18n.json index b4b0be926..a11f233e5 100644 --- a/imports/i18n/data/zh.i18n.json +++ b/imports/i18n/data/zh.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/zu-ZA.i18n.json b/imports/i18n/data/zu-ZA.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/zu-ZA.i18n.json +++ b/imports/i18n/data/zu-ZA.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", diff --git a/imports/i18n/data/zu.i18n.json b/imports/i18n/data/zu.i18n.json index 46fdf6fd9..8de471b27 100644 --- a/imports/i18n/data/zu.i18n.json +++ b/imports/i18n/data/zu.i18n.json @@ -87,8 +87,8 @@ "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)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "List width must be a positive integer", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", From 09a96c111836ad85f414c531332e4e33971547ca Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 20 Nov 2024 08:15:19 +0200 Subject: [PATCH 104/356] Updated translations. --- imports/i18n/data/zh-TW.i18n.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index 99f6f13af..426341be3 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "新增卡片至清單頂部", "add-card-to-bottom-of-list": "新增卡片至清單底部", "setListWidthPopup-title": "設定清單寬度", - "set-list-width": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", + "set-list-width": "設定最小寬度", + "set-list-width-value": "最小寬度(畫素)", "list-width-error-message": "清單寬度必須為正整數", "setSwimlaneHeightPopup-title": "設定泳道高度", "set-swimlane-height": "設定泳道高度", From 332b9f581690e1f6a7a735c4c8d6c9cee0a830e3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 20 Nov 2024 08:49:46 +0200 Subject: [PATCH 105/356] Updated translations. --- imports/i18n/data/uk.i18n.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index 4258d0d4d..66f2d54ae 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "Додати картку на початок списку", "add-card-to-bottom-of-list": "Додати картку у кінець списку", "setListWidthPopup-title": "Встановити ширину списку", - "set-list-width": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", + "set-list-width": "Встановити мін. ширину списку", + "set-list-width-value": "Мін. ширина списку (у пікселях)", "list-width-error-message": "Список має бути цілим числом, що є більше за 0", "setSwimlaneHeightPopup-title": "Встановити довжину доріжки", "set-swimlane-height": "Встановити довжину доріжки", From 017628e2a67c5f9656dee510244b81322789fc3f Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 20 Nov 2024 08:57:40 +0200 Subject: [PATCH 106/356] Updated ChangeLog. --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f18709315..8b1d898b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,21 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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: From 12d22f92b21acd25672f4cf88d3e430d7c52a555 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 20 Nov 2024 09:08:49 +0200 Subject: [PATCH 107/356] v7.64 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/DeveloperDocs/Design-Principles.md | 3 ++- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 7 ++++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 10 files changed, 19 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b1d898b1..5e0907a28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.64 2024-11-20 WeKan ® release This release fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 0358e73cb..1f094eae2 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.63.0" +appVersion: "v7.64.0" files: userUploads: - README.md diff --git a/docs/DeveloperDocs/Design-Principles.md b/docs/DeveloperDocs/Design-Principles.md index 04ba5d308..7f9b20bd5 100644 --- a/docs/DeveloperDocs/Design-Principles.md +++ b/docs/DeveloperDocs/Design-Principles.md @@ -7,7 +7,8 @@ - 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. + - 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 diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index ed3ab3d9c..bc77fbc99 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -8,7 +8,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.63-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.63/wekan-7.63-amd64-windows.zip) +1. [wekan-7.64-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.64/wekan-7.64-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -20,7 +20,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.63-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.64-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 19e0dadc5..befe4f1c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.63.0", + "version": "v7.64.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 735e3efb1..36cb51fe7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.63.0", + "version": "v7.64.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 57790856c..29351cc09 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.63 + Wekan REST API v7.64 @@ -750,6 +750,7 @@ html, body { border: 1px solid #F7E633; background: linear-gradient(to top left, #F7E633 0%, #F1D32F 100%); } + .content pre, .content blockquote { background-color: #1E2224; color: #fff; @@ -1548,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
              • - Wekan REST API v7.63 + Wekan REST API v7.64
              • @@ -2067,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                -

                Wekan REST API v7.63

                +

                Wekan REST API v7.64

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

                diff --git a/public/api/wekan.yml b/public/api/wekan.yml index a3e6a90ba..2b90e071e 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.63 + version: v7.64 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 9b0ce7779..9d9ed8d8f 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 = 763, + appVersion = 764, # Increment this for every release. - appMarketingVersion = (defaultText = "7.63.0~2024-11-16"), + appMarketingVersion = (defaultText = "7.64.0~2024-11-20"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index a99f8a7c7..a784056ea 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.63' +version: '7.64' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.63/wekan-7.63-amd64.zip - unzip wekan-7.63-amd64.zip - rm wekan-7.63-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.64/wekan-7.64-amd64.zip + unzip wekan-7.64-amd64.zip + rm wekan-7.64-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 096fe130f68e0d8d082d309901c75ed04285b7e2 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 20 Nov 2024 21:08:06 +0200 Subject: [PATCH 108/356] Revert some scrollbar, sidebar and list width changes. Thanks to xet7 ! Fixes #5585, fixes https://github.com/wekan/wekan/pull/5583 --- client/components/boards/boardBody.css | 3 ++ client/components/boards/boardBody.jade | 2 +- client/components/boards/boardColors.css | 6 ++++ client/components/cards/cardDetails.css | 3 +- client/components/lists/list.css | 6 ---- client/components/lists/list.jade | 2 +- client/components/sidebar/sidebar.css | 36 +++++++++++++--------- client/components/sidebar/sidebar.jade | 12 ++++---- client/components/swimlanes/swimlanes.css | 6 +++- client/components/swimlanes/swimlanes.jade | 2 +- client/components/users/userAvatar.css | 1 - 11 files changed, 45 insertions(+), 34 deletions(-) diff --git a/client/components/boards/boardBody.css b/client/components/boards/boardBody.css index 1138aa19a..cb091b57d 100644 --- a/client/components/boards/boardBody.css +++ b/client/components/boards/boardBody.css @@ -16,6 +16,9 @@ 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 32cd274f2..6dce982d9 100644 --- a/client/components/boards/boardBody.jade +++ b/client/components/boards/boardBody.jade @@ -17,6 +17,7 @@ template(name="boardBody") | {{_ 'tableVisibilityMode-allowPrivateOnly'}} else .board-wrapper(class=currentBoard.colorClass) + +sidebar .board-canvas.js-swimlanes.dragscroll( class="{{#if Sidebar.isOpen}}is-sibling-sidebar-open{{/if}}" class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}" @@ -35,7 +36,6 @@ template(name="boardBody") +calendarView else +listsGroup(currentBoard) - +sidebar template(name="calendarView") if isViewCalendar diff --git a/client/components/boards/boardColors.css b/client/components/boards/boardColors.css index 38161eff2..dc794f365 100644 --- a/client/components/boards/boardColors.css +++ b/client/components/boards/boardColors.css @@ -3269,6 +3269,11 @@ THEME - Clean Light color: #FFFFFF; } +.board-color-cleanlight .list:first-child, +.board-color-cleandark .list:first-child { + margin-right: -32px; +} + .board-color-cleanlight .list .list-header .list-header-menu, .board-color-cleandark .list .list-header .list-header-menu { display: flex; @@ -3352,6 +3357,7 @@ THEME - Clean Light .board-color-cleanlight .swimlane, .board-color-cleandark .swimlane { background: none; + gap: 32px; } .board-color-cleanlight .swimlane-height-apply, diff --git a/client/components/cards/cardDetails.css b/client/components/cards/cardDetails.css index f18fcb962..370cafb76 100644 --- a/client/components/cards/cardDetails.css +++ b/client/components/cards/cardDetails.css @@ -5,7 +5,7 @@ float: left; height: 30px; width: 30px; - margin: .3vh; + margin: 0 4px 4px 0; cursor: pointer; user-select: none; z-index: 1; @@ -89,7 +89,6 @@ box-shadow: 0 0 7px 0 #b3b3b3; transition: flex-basis 0.1s; box-sizing: border-box; - scrollbar-width: none; } .card-details .mCustomScrollBox { padding-left: 0; diff --git a/client/components/lists/list.css b/client/components/lists/list.css index 0f1bb8e2f..2205af526 100644 --- a/client/components/lists/list.css +++ b/client/components/lists/list.css @@ -7,14 +7,12 @@ border-left: 1px solid #ccc; padding: 0; float: left; - flex: 1; } [id^="swimlane-"] .list:first-child { min-width: 20px; } .list:first-child { border-left: none; - flex: none; } .card-details + .list { border-left: none; @@ -33,9 +31,6 @@ box-shadow: none; height: 100px; } -.list.list-collapsed { - flex: none; -} .list.list-composer .open-list-composer, .list .list-composer .open-list-composer { color: #8c8c8c; @@ -152,7 +147,6 @@ display: flex; overflow-y: auto; padding: 5px 11px; - scrollbar-width: none; } .list-body .minicards { flex-grow: 1; diff --git a/client/components/lists/list.jade b/client/components/lists/list.jade index 62a719f92..e7f06c6ca 100644 --- a/client/components/lists/list.jade +++ b/client/components/lists/list.jade @@ -1,6 +1,6 @@ template(name='list') .list.js-list(id="js-list-{{_id}}" - style="{{#unless collapsed}}min-width:{{listWidth}}px;{{/unless}}" + style="{{#unless collapsed}}width:{{listWidth}}px;{{/unless}}" class="{{#if collapsed}}list-collapsed{{/if}}") +listHeader +listBody diff --git a/client/components/sidebar/sidebar.css b/client/components/sidebar/sidebar.css index 4533c3ef3..d50c2f933 100644 --- a/client/components/sidebar/sidebar.css +++ b/client/components/sidebar/sidebar.css @@ -3,13 +3,16 @@ top: 0; bottom: 0; right: 0; - overflow-y: scroll; - scrollbar-width: none; } .sidebar .sidebar-shadow { + position: absolute; + top: 0; + bottom: 0; + right: 0; + left: 0; background: #f7f7f7; box-shadow: -10px 0px 5px -10px #b3b3b3; - height: 100%; + z-index: 10; } .sidebar-xmark { position: absolute; @@ -21,16 +24,17 @@ .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: 0 12px; + padding: 12px; margin-bottom: 1.6em; + position: absolute; + top: 0; + bottom: 0; + right: 0; + left: 0; + overflow-x: hidden; + overflow-y: auto; + width: 90%; } .sidebar .sidebar-content .hide-btn { display: none; @@ -106,19 +110,21 @@ margin-right: 10px; } .sidebar .sidebar-shortcuts { + position: absolute; + margin-left: 40%; + padding: 0; top: 7px; font-size: 0.8em; line-height: 1.6em; color: #999; } .board-sidebar { - display: none; - width: 30vw; - z-index: 100; + width: 548px; + right: -548px; transition: top 0.1s, right 0.1s, width 0.1s; } .board-sidebar.is-open { - display: block; + right: 0; } .board-widget h4 { margin: 5px 0; diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 0924fcd28..a2a788aad 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -5,12 +5,7 @@ template(name="sidebar") // title="{{showTongueTitle}}") // i.fa.fa-navicon .sidebar-shadow - .sidebar-actions - .sidebar-shortcuts - a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") - i.fa.fa-keyboard-o - span {{_ 'keyboard-shortcuts' }} - a.sidebar-xmark.js-close-sidebar ✕ + a.sidebar-xmark.js-close-sidebar ✕ .sidebar-content.js-board-sidebar-content //a.hide-btn.js-hide-sidebar // i.fa.fa-navicon @@ -52,6 +47,11 @@ 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/swimlanes/swimlanes.css b/client/components/swimlanes/swimlanes.css index 8101bcf62..9fb0ad275 100644 --- a/client/components/swimlanes/swimlanes.css +++ b/client/components/swimlanes/swimlanes.css @@ -1,3 +1,8 @@ +@media screen and (min-width: 801px) { + .swimlane.ui-sortable { + width: max-content; + } +} [class=swimlane] { position: sticky; left: 0; @@ -8,7 +13,6 @@ flex-direction: row; overflow: auto; max-height: 100%; - scrollbar-width: none; } .swimlane-header-menu .swimlane-header-collapse-down { font-size: 50%; diff --git a/client/components/swimlanes/swimlanes.jade b/client/components/swimlanes/swimlanes.jade index 2643b4575..f01ca7efd 100644 --- a/client/components/swimlanes/swimlanes.jade +++ b/client/components/swimlanes/swimlanes.jade @@ -2,7 +2,7 @@ template(name="swimlane") .swimlane.nodragscroll +swimlaneHeader unless collapseSwimlane - .swimlane.js-lists.js-swimlane.dragscroll(id="swimlane-{{_id}}" + .swimlane.js-lists.js-swimlane(id="swimlane-{{_id}}" style="height:{{swimlaneHeight}};") if isMiniScreen if currentListIsInThisSwimlane _id diff --git a/client/components/users/userAvatar.css b/client/components/users/userAvatar.css index b65a98bd9..a26ed10e4 100644 --- a/client/components/users/userAvatar.css +++ b/client/components/users/userAvatar.css @@ -5,7 +5,6 @@ float: left; height: 30px; width: 30px; - margin: .3vh; cursor: pointer; user-select: none; z-index: 1; From 83a12a9a26b39469162e2bc0b8fed0f95d38d03f Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 20 Nov 2024 21:14:01 +0200 Subject: [PATCH 109/356] Updated translations. --- imports/i18n/data/de.i18n.json | 4 ++-- imports/i18n/data/he.i18n.json | 4 ++-- imports/i18n/data/pt-BR.i18n.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index 496079c40..4723430cd 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -87,8 +87,8 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", + "set-list-width": "Stelle die minimale Breite ein", + "set-list-width-value": "Minimale Breite (Pixel)", "list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein", "setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein", "set-swimlane-height": "Stelle die Höhe der Swimlane ein", diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index 128ca815d..a5d8b8d73 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "הוספת כרטיס לראש הרשימה", "add-card-to-bottom-of-list": "הוספת כרטיס לתחתית הרשימה", "setListWidthPopup-title": "הגדרת רוחב רשימה", - "set-list-width": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", + "set-list-width": "הגדרת רוחב מזערי", + "set-list-width-value": "רוחב מזערי (פיקסלים)", "list-width-error-message": "רוחב הרשימה חייב להיות מספר שלם וחיובי", "setSwimlaneHeightPopup-title": "הגדרת גובה מסלול", "set-swimlane-height": "הגדרת גובה מסלול", diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index 90b9c3b8b..e26cf9961 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -87,8 +87,8 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", + "set-list-width": "Definir Largura Mínima", + "set-list-width-value": "Largura Mínima (píxeis)", "list-width-error-message": "Largura da Lista deve ser um inteiro positivo", "setSwimlaneHeightPopup-title": "Definir Altura da Raia", "set-swimlane-height": "Definir Altura da Raia", From a2c7c230efffcced39c4ea9bcd2d6a63a0f435b6 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 20 Nov 2024 21:16:21 +0200 Subject: [PATCH 110/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e0907a28..85c1a4a7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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: From e207bff91fbf8605f242b5ab8827b6fe3810dc60 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 20 Nov 2024 21:22:23 +0200 Subject: [PATCH 111/356] v7.65 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85c1a4a7f..fba0b25a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.65 2024-11-20 WeKan ® release This release fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 1f094eae2..c236591e9 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.64.0" +appVersion: "v7.65.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index bc77fbc99..6911b862e 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -8,7 +8,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.64-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.64/wekan-7.64-amd64-windows.zip) +1. [wekan-7.65-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.65/wekan-7.65-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -20,7 +20,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.64-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.65-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index befe4f1c2..bb9d36431 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.64.0", + "version": "v7.65.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 36cb51fe7..2fa1eed13 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.64.0", + "version": "v7.65.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 29351cc09..4cb50445c 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.64 + Wekan REST API v7.65 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                • - Wekan REST API v7.64 + Wekan REST API v7.65
                • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                  -

                  Wekan REST API v7.64

                  +

                  Wekan REST API v7.65

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

                  diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 2b90e071e..d302d9eeb 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.64 + version: v7.65 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 9d9ed8d8f..e01eff507 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 = 764, + appVersion = 765, # Increment this for every release. - appMarketingVersion = (defaultText = "7.64.0~2024-11-20"), + appMarketingVersion = (defaultText = "7.65.0~2024-11-20"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index a784056ea..7986aef2b 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.64' +version: '7.65' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.64/wekan-7.64-amd64.zip - unzip wekan-7.64-amd64.zip - rm wekan-7.64-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.65/wekan-7.65-amd64.zip + unzip wekan-7.65-amd64.zip + rm wekan-7.65-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From f5f8a4f6fbfbe49f4f21a20275290b720154e389 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Thu, 21 Nov 2024 00:10:30 +0200 Subject: [PATCH 112/356] Revert "Updated translations." This reverts commit 83a12a9a26b39469162e2bc0b8fed0f95d38d03f. --- imports/i18n/data/de.i18n.json | 4 ++-- imports/i18n/data/he.i18n.json | 4 ++-- imports/i18n/data/pt-BR.i18n.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index 4723430cd..496079c40 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -87,8 +87,8 @@ "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 minimale Breite ein", - "set-list-width-value": "Minimale Breite (Pixel)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein", "setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein", "set-swimlane-height": "Stelle die Höhe der Swimlane ein", diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index a5d8b8d73..128ca815d 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "הוספת כרטיס לראש הרשימה", "add-card-to-bottom-of-list": "הוספת כרטיס לתחתית הרשימה", "setListWidthPopup-title": "הגדרת רוחב רשימה", - "set-list-width": "הגדרת רוחב מזערי", - "set-list-width-value": "רוחב מזערי (פיקסלים)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "רוחב הרשימה חייב להיות מספר שלם וחיובי", "setSwimlaneHeightPopup-title": "הגדרת גובה מסלול", "set-swimlane-height": "הגדרת גובה מסלול", diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index e26cf9961..90b9c3b8b 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -87,8 +87,8 @@ "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 Mínima", - "set-list-width-value": "Largura Mínima (píxeis)", + "set-list-width": "Set Min Width", + "set-list-width-value": "Min Width (pixels)", "list-width-error-message": "Largura da Lista deve ser um inteiro positivo", "setSwimlaneHeightPopup-title": "Definir Altura da Raia", "set-swimlane-height": "Definir Altura da Raia", From a36e80099aab6fcc235714dfbf169adaa94c09d4 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Thu, 21 Nov 2024 00:10:49 +0200 Subject: [PATCH 113/356] Revert "Revert some scrollbar, sidebar and list width changes." This reverts commit 096fe130f68e0d8d082d309901c75ed04285b7e2. --- client/components/boards/boardBody.css | 3 -- client/components/boards/boardBody.jade | 2 +- client/components/boards/boardColors.css | 6 ---- client/components/cards/cardDetails.css | 3 +- client/components/lists/list.css | 6 ++++ client/components/lists/list.jade | 2 +- client/components/sidebar/sidebar.css | 36 +++++++++------------- client/components/sidebar/sidebar.jade | 12 ++++---- client/components/swimlanes/swimlanes.css | 6 +--- client/components/swimlanes/swimlanes.jade | 2 +- client/components/users/userAvatar.css | 1 + 11 files changed, 34 insertions(+), 45 deletions(-) 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 6dce982d9..32cd274f2 100644 --- a/client/components/boards/boardBody.jade +++ b/client/components/boards/boardBody.jade @@ -17,7 +17,6 @@ template(name="boardBody") | {{_ 'tableVisibilityMode-allowPrivateOnly'}} else .board-wrapper(class=currentBoard.colorClass) - +sidebar .board-canvas.js-swimlanes.dragscroll( class="{{#if Sidebar.isOpen}}is-sibling-sidebar-open{{/if}}" class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}" @@ -36,6 +35,7 @@ template(name="boardBody") +calendarView else +listsGroup(currentBoard) + +sidebar template(name="calendarView") if isViewCalendar diff --git a/client/components/boards/boardColors.css b/client/components/boards/boardColors.css index dc794f365..38161eff2 100644 --- a/client/components/boards/boardColors.css +++ b/client/components/boards/boardColors.css @@ -3269,11 +3269,6 @@ THEME - Clean Light color: #FFFFFF; } -.board-color-cleanlight .list:first-child, -.board-color-cleandark .list:first-child { - margin-right: -32px; -} - .board-color-cleanlight .list .list-header .list-header-menu, .board-color-cleandark .list .list-header .list-header-menu { display: flex; @@ -3357,7 +3352,6 @@ THEME - Clean Light .board-color-cleanlight .swimlane, .board-color-cleandark .swimlane { background: none; - gap: 32px; } .board-color-cleanlight .swimlane-height-apply, diff --git a/client/components/cards/cardDetails.css b/client/components/cards/cardDetails.css index 370cafb76..f18fcb962 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; @@ -89,6 +89,7 @@ box-shadow: 0 0 7px 0 #b3b3b3; transition: flex-basis 0.1s; box-sizing: border-box; + scrollbar-width: none; } .card-details .mCustomScrollBox { padding-left: 0; diff --git a/client/components/lists/list.css b/client/components/lists/list.css index 2205af526..0f1bb8e2f 100644 --- a/client/components/lists/list.css +++ b/client/components/lists/list.css @@ -7,12 +7,14 @@ border-left: 1px solid #ccc; padding: 0; float: left; + flex: 1; } [id^="swimlane-"] .list:first-child { min-width: 20px; } .list:first-child { border-left: none; + flex: none; } .card-details + .list { border-left: none; @@ -31,6 +33,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; @@ -147,6 +152,7 @@ display: flex; overflow-y: auto; padding: 5px 11px; + scrollbar-width: none; } .list-body .minicards { flex-grow: 1; diff --git a/client/components/lists/list.jade b/client/components/lists/list.jade index e7f06c6ca..62a719f92 100644 --- a/client/components/lists/list.jade +++ b/client/components/lists/list.jade @@ -1,6 +1,6 @@ template(name='list') .list.js-list(id="js-list-{{_id}}" - style="{{#unless collapsed}}width:{{listWidth}}px;{{/unless}}" + style="{{#unless collapsed}}min-width:{{listWidth}}px;{{/unless}}" class="{{#if collapsed}}list-collapsed{{/if}}") +listHeader +listBody diff --git a/client/components/sidebar/sidebar.css b/client/components/sidebar/sidebar.css index d50c2f933..4533c3ef3 100644 --- a/client/components/sidebar/sidebar.css +++ b/client/components/sidebar/sidebar.css @@ -3,16 +3,13 @@ top: 0; bottom: 0; right: 0; + overflow-y: scroll; + scrollbar-width: none; } .sidebar .sidebar-shadow { - position: absolute; - top: 0; - bottom: 0; - right: 0; - left: 0; background: #f7f7f7; box-shadow: -10px 0px 5px -10px #b3b3b3; - z-index: 10; + height: 100%; } .sidebar-xmark { position: absolute; @@ -24,17 +21,16 @@ .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; + padding: 0 12px; margin-bottom: 1.6em; - position: absolute; - top: 0; - bottom: 0; - right: 0; - left: 0; - overflow-x: hidden; - overflow-y: auto; - width: 90%; } .sidebar .sidebar-content .hide-btn { display: none; @@ -110,21 +106,19 @@ margin-right: 10px; } .sidebar .sidebar-shortcuts { - position: absolute; - margin-left: 40%; - padding: 0; top: 7px; font-size: 0.8em; line-height: 1.6em; color: #999; } .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 a2a788aad..0924fcd28 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -5,7 +5,12 @@ template(name="sidebar") // title="{{showTongueTitle}}") // i.fa.fa-navicon .sidebar-shadow - a.sidebar-xmark.js-close-sidebar ✕ + .sidebar-actions + .sidebar-shortcuts + a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") + i.fa.fa-keyboard-o + span {{_ 'keyboard-shortcuts' }} + a.sidebar-xmark.js-close-sidebar ✕ .sidebar-content.js-board-sidebar-content //a.hide-btn.js-hide-sidebar // i.fa.fa-navicon @@ -47,11 +52,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/swimlanes/swimlanes.css b/client/components/swimlanes/swimlanes.css index 9fb0ad275..8101bcf62 100644 --- a/client/components/swimlanes/swimlanes.css +++ b/client/components/swimlanes/swimlanes.css @@ -1,8 +1,3 @@ -@media screen and (min-width: 801px) { - .swimlane.ui-sortable { - width: max-content; - } -} [class=swimlane] { position: sticky; left: 0; @@ -13,6 +8,7 @@ flex-direction: row; overflow: auto; max-height: 100%; + scrollbar-width: none; } .swimlane-header-menu .swimlane-header-collapse-down { font-size: 50%; diff --git a/client/components/swimlanes/swimlanes.jade b/client/components/swimlanes/swimlanes.jade index f01ca7efd..2643b4575 100644 --- a/client/components/swimlanes/swimlanes.jade +++ b/client/components/swimlanes/swimlanes.jade @@ -2,7 +2,7 @@ template(name="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 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; From 585635494abf52419649c06ee54ba14a27b00182 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Thu, 21 Nov 2024 00:13:22 +0200 Subject: [PATCH 114/356] Disable scrollbar hiding in cardDetails --- client/components/cards/cardDetails.css | 1 - 1 file changed, 1 deletion(-) diff --git a/client/components/cards/cardDetails.css b/client/components/cards/cardDetails.css index f18fcb962..c04dddffb 100644 --- a/client/components/cards/cardDetails.css +++ b/client/components/cards/cardDetails.css @@ -89,7 +89,6 @@ box-shadow: 0 0 7px 0 #b3b3b3; transition: flex-basis 0.1s; box-sizing: border-box; - scrollbar-width: none; } .card-details .mCustomScrollBox { padding-left: 0; From 7696b7b7694ad53d0c6141472f3eed1c9dce67d9 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Thu, 21 Nov 2024 00:13:34 +0200 Subject: [PATCH 115/356] Disable scrollbar hiding in list --- client/components/lists/list.css | 1 - 1 file changed, 1 deletion(-) diff --git a/client/components/lists/list.css b/client/components/lists/list.css index 0f1bb8e2f..9afa62004 100644 --- a/client/components/lists/list.css +++ b/client/components/lists/list.css @@ -152,7 +152,6 @@ display: flex; overflow-y: auto; padding: 5px 11px; - scrollbar-width: none; } .list-body .minicards { flex-grow: 1; From 547261abb6a22e67745672de2c12ec7152b3bd69 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Thu, 21 Nov 2024 00:13:50 +0200 Subject: [PATCH 116/356] Disable scrollbar hiding in sidebar --- client/components/sidebar/sidebar.css | 1 - 1 file changed, 1 deletion(-) diff --git a/client/components/sidebar/sidebar.css b/client/components/sidebar/sidebar.css index 4533c3ef3..bc3eef0e6 100644 --- a/client/components/sidebar/sidebar.css +++ b/client/components/sidebar/sidebar.css @@ -4,7 +4,6 @@ bottom: 0; right: 0; overflow-y: scroll; - scrollbar-width: none; } .sidebar .sidebar-shadow { background: #f7f7f7; From c39fdab11d378317c2a9cf4440b2b05c723c50bf Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Thu, 21 Nov 2024 00:14:04 +0200 Subject: [PATCH 117/356] Disable scrollbar hiding in swimlanes --- client/components/swimlanes/swimlanes.css | 1 - 1 file changed, 1 deletion(-) diff --git a/client/components/swimlanes/swimlanes.css b/client/components/swimlanes/swimlanes.css index 8101bcf62..373de8ab3 100644 --- a/client/components/swimlanes/swimlanes.css +++ b/client/components/swimlanes/swimlanes.css @@ -8,7 +8,6 @@ flex-direction: row; overflow: auto; max-height: 100%; - scrollbar-width: none; } .swimlane-header-menu .swimlane-header-collapse-down { font-size: 50%; From 6ef2d9cb9db0d691f2b93fdc41cea06bb8f20dbc Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Thu, 21 Nov 2024 00:24:40 +0200 Subject: [PATCH 118/356] Remove bottom margin from sidebar (causes an out-of-theme white gap) --- client/components/sidebar/sidebar.css | 1 - 1 file changed, 1 deletion(-) diff --git a/client/components/sidebar/sidebar.css b/client/components/sidebar/sidebar.css index bc3eef0e6..3d8dbe432 100644 --- a/client/components/sidebar/sidebar.css +++ b/client/components/sidebar/sidebar.css @@ -29,7 +29,6 @@ } .sidebar .sidebar-content { padding: 0 12px; - margin-bottom: 1.6em; } .sidebar .sidebar-content .hide-btn { display: none; From 65015ea7c7728055769a3868dfb7c21016bd0bb7 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Thu, 21 Nov 2024 00:41:57 +0200 Subject: [PATCH 119/356] Remove non-required sidebar-shadow div in favor of direct sidebar background --- client/components/boards/boardColors.css | 24 +++++++++--------- client/components/sidebar/sidebar.css | 2 +- client/components/sidebar/sidebar.jade | 31 ++++++++++++------------ 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/client/components/boards/boardColors.css b/client/components/boards/boardColors.css index 38161eff2..b6cda99c2 100644 --- a/client/components/boards/boardColors.css +++ b/client/components/boards/boardColors.css @@ -1958,7 +1958,7 @@ THEME - Modern .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 { @@ -2431,7 +2431,7 @@ THEME - Modern Dark 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; @@ -2776,16 +2776,16 @@ THEME - Clean Dark background: #0A0A14; } -.board-color-cleandark .sidebar .sidebar-shadow { +.board-color-cleandark .sidebar { background: rgba(35, 35, 43, 1) !important; box-shadow: none; } -.board-color-cleandark .sidebar .sidebar-shadow hr { +.board-color-cleandark .sidebar hr { background:rgba(255, 255, 255, 0.05); } -.board-color-cleandark .sidebar .sidebar-shadow .tab-item { +.board-color-cleandark .sidebar .tab-item { border-radius: 16px; padding: 4px 12px 4px 12px; font-size: 16px; @@ -2795,14 +2795,14 @@ THEME - Clean Dark background: rgba(57, 57, 71, 1); } -.board-color-cleandark .sidebar .sidebar-shadow .tab-item.active { +.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 .sidebar-shadow .tabs-content-container { +.board-color-cleandark .sidebar .tabs-content-container { border: none; } @@ -3414,16 +3414,16 @@ THEME - Clean Light display: none; } -.board-color-cleanlight .sidebar .sidebar-shadow { +.board-color-cleanlight .sidebar { background: rgba(248, 248, 249, 1) !important; box-shadow: none; } -.board-color-cleanlight .sidebar .sidebar-shadow hr { +.board-color-cleanlight .sidebar hr { background: rgba(23, 23, 28, 0.05); } -.board-color-cleanlight .sidebar .sidebar-shadow .tab-item { +.board-color-cleanlight .sidebar .tab-item { border-radius: 16px; padding: 4px 12px 4px 12px; font-size: 16px; @@ -3433,14 +3433,14 @@ THEME - Clean Light background: rgba(234, 234, 237, 1); } -.board-color-cleanlight .sidebar .sidebar-shadow .tab-item.active { +.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 .sidebar-shadow .tabs-content-container { +.board-color-cleanlight .sidebar .tabs-content-container { border: none; } diff --git a/client/components/sidebar/sidebar.css b/client/components/sidebar/sidebar.css index 3d8dbe432..2dbe4be4f 100644 --- a/client/components/sidebar/sidebar.css +++ b/client/components/sidebar/sidebar.css @@ -5,7 +5,7 @@ right: 0; overflow-y: scroll; } -.sidebar .sidebar-shadow { +.sidebar { background: #f7f7f7; box-shadow: -10px 0px 5px -10px #b3b3b3; height: 100%; diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 0924fcd28..65c002a47 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -4,22 +4,21 @@ template(name="sidebar") // class="{{#if isTongueHidden}}is-hidden{{/if}}", // title="{{showTongueTitle}}") // i.fa.fa-navicon - .sidebar-shadow - .sidebar-actions - .sidebar-shortcuts - a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") - i.fa.fa-keyboard-o - span {{_ 'keyboard-shortcuts' }} - 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-actions + .sidebar-shortcuts + a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") + i.fa.fa-keyboard-o + span {{_ 'keyboard-shortcuts' }} + 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) template(name='homeSidebar') hr From d764047c1fbe4e46fb51b4523b782ace6bd4cbde Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Thu, 21 Nov 2024 00:42:23 +0200 Subject: [PATCH 120/356] Remove non-effective height property (does nothing here) --- client/components/sidebar/sidebar.css | 1 - 1 file changed, 1 deletion(-) diff --git a/client/components/sidebar/sidebar.css b/client/components/sidebar/sidebar.css index 2dbe4be4f..769be3a95 100644 --- a/client/components/sidebar/sidebar.css +++ b/client/components/sidebar/sidebar.css @@ -8,7 +8,6 @@ .sidebar { background: #f7f7f7; box-shadow: -10px 0px 5px -10px #b3b3b3; - height: 100%; } .sidebar-xmark { position: absolute; From 78f7c3e5bd1959c631b83fc79ba9fe7bc5eaa38a Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Thu, 21 Nov 2024 00:43:20 +0200 Subject: [PATCH 121/356] Updated theming documentation on sidebar coloring --- docs/Theme/Custom-CSS-themes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Theme/Custom-CSS-themes.md b/docs/Theme/Custom-CSS-themes.md index 6ccbbde02..1b69eedc0 100644 --- a/docs/Theme/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; } ``` From aed4bfb7f42bcd54e17d43ff37a6c7c259a3d7c9 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 21 Nov 2024 01:33:11 +0200 Subject: [PATCH 122/356] Updated translations. --- imports/i18n/data/de.i18n.json | 4 ++-- imports/i18n/data/he.i18n.json | 4 ++-- imports/i18n/data/pt-BR.i18n.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index 496079c40..4723430cd 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -87,8 +87,8 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", + "set-list-width": "Stelle die minimale Breite ein", + "set-list-width-value": "Minimale Breite (Pixel)", "list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein", "setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein", "set-swimlane-height": "Stelle die Höhe der Swimlane ein", diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index 128ca815d..a5d8b8d73 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -87,8 +87,8 @@ "add-card-to-top-of-list": "הוספת כרטיס לראש הרשימה", "add-card-to-bottom-of-list": "הוספת כרטיס לתחתית הרשימה", "setListWidthPopup-title": "הגדרת רוחב רשימה", - "set-list-width": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", + "set-list-width": "הגדרת רוחב מזערי", + "set-list-width-value": "רוחב מזערי (פיקסלים)", "list-width-error-message": "רוחב הרשימה חייב להיות מספר שלם וחיובי", "setSwimlaneHeightPopup-title": "הגדרת גובה מסלול", "set-swimlane-height": "הגדרת גובה מסלול", diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index 90b9c3b8b..e26cf9961 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -87,8 +87,8 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", + "set-list-width": "Definir Largura Mínima", + "set-list-width-value": "Largura Mínima (píxeis)", "list-width-error-message": "Largura da Lista deve ser um inteiro positivo", "setSwimlaneHeightPopup-title": "Definir Altura da Raia", "set-swimlane-height": "Definir Altura da Raia", From 33a17a9a1bb5df952d6c38d3677e0ebbcabe24ae Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 21 Nov 2024 01:42:38 +0200 Subject: [PATCH 123/356] v7.67 --- CHANGELOG.md | 9 +++++++++ Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 24 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fba0b25a1..e4b014b1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# 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: diff --git a/Stackerfile.yml b/Stackerfile.yml index c236591e9..41d4e9060 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.65.0" +appVersion: "v7.67.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 6911b862e..097c6e230 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -8,7 +8,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.65-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.65/wekan-7.65-amd64-windows.zip) +1. [wekan-7.67-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.67/wekan-7.67-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -20,7 +20,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.65-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.67-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index bb9d36431..0510bd289 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.65.0", + "version": "v7.67.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2fa1eed13..9a6173675 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.65.0", + "version": "v7.67.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 4cb50445c..d980b7189 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.65 + Wekan REST API v7.67 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                  • - Wekan REST API v7.65 + Wekan REST API v7.67
                  • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                    -

                    Wekan REST API v7.65

                    +

                    Wekan REST API v7.67

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

                    diff --git a/public/api/wekan.yml b/public/api/wekan.yml index d302d9eeb..b45d0b272 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.65 + version: v7.67 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index e01eff507..7f3cf9db9 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 = 765, + appVersion = 767, # Increment this for every release. - appMarketingVersion = (defaultText = "7.65.0~2024-11-20"), + appMarketingVersion = (defaultText = "7.67.0~2024-11-21"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 7986aef2b..312b4cdb6 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.65' +version: '7.67' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.65/wekan-7.65-amd64.zip - unzip wekan-7.65-amd64.zip - rm wekan-7.65-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.67/wekan-7.67-amd64.zip + unzip wekan-7.67-amd64.zip + rm wekan-7.67-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 3e0ef3d070aa466255a532490ba6632840da57fa Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 23 Nov 2024 23:20:57 +0200 Subject: [PATCH 124/356] Created efficient multi-stage Dockerfile --- Dockerfile | 229 ++++++++++++++++++++++------------------------------- 1 file changed, 95 insertions(+), 134 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1fadc367b..bc34ba7af 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,31 +1,76 @@ -FROM ubuntu:24.10 +FROM scratch AS downloads + +# Download NodeJS bundle +ADD https://nodejs.org/download/release/v14.21.3/node-v14.21.3-linux-x64.tar.gz node.tar.gz + +# Download Meteor bundle +ADD https://static.meteor.com/packages-bootstrap/2.16/meteor-bootstrap-os.linux.x86_64.tar.gz meteor.tar.gz + +FROM ubuntu:24.04 AS build + +# Install node from official archive +RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \ + tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner + +# Install meteor from official archive +RUN --mount=type=bind,from=downloads,source=meteor.tar.gz,target=meteor.tar.gz \ + tar xzf meteor.tar.gz -C $HOME --no-same-owner + +# Update the npm version +RUN npm install -g npm@6.14.17 + +# Install several build dependencies +RUN apt update && \ + apt install --yes --no-install-suggests --no-install-recommends ssh git g++ curl ca-certificates && \ + rm -r /var/lib/apt/lists + +# Change to temporary working directory +WORKDIR /workdir + +# Copy package.json and package-lock.json to install application dependencies +COPY package.json . +COPY package-lock.json . + +# Install build dependencies +RUN $HOME/.meteor/meteor npm install --production + +# Copy meteor application configurations +COPY .meteor .meteor + +# Copy application sources +COPY packages packages +COPY imports imports +COPY config config +COPY models models +COPY public public +COPY server server +COPY client client + +# Build the application +RUN $HOME/.meteor/meteor build --directory /build --allow-superuser + +# Enter server bundle directory +WORKDIR /build/bundle/programs/server + +# Install server dependencies +RUN $HOME/.meteor/meteor npm install --production + +# Enter installation directory of fibers +WORKDIR /build/bundle/programs/server/node_modules/fibers + +# Build fibers integrations +RUN node build.js + +FROM ubuntu:24.04 AS wekan + +# Add metadata to image LABEL maintainer="wekan" LABEL org.opencontainers.image.ref.name="ubuntu" -LABEL org.opencontainers.image.version="24.10" +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 - -# 2021-09-18: -# - Above Ubuntu base image copied from Docker Hub ubuntu:hirsute-20210825 -# to Quay to avoid Docker Hub rate limits. -ARG DEBIAN_FRONTEND=noninteractive - -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.14 \ - USE_EDGE=false \ - METEOR_EDGE=1.5-beta.17 \ - NPM_VERSION=6.14.17 \ - FIBERS_VERSION=4.0.1 \ - ARCHITECTURE=linux-x64 \ - SRC_PATH=./ \ - WITH_API=true \ +# Set default environment variables +ENV WITH_API=true \ RESULTS_PER_PAGE="" \ DEFAULT_BOARD_ID="" \ ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \ @@ -158,119 +203,35 @@ ENV \ WRITABLE_PATH=/data \ S3="" -# NODE_OPTIONS="--max_old_space_size=4096" - -#--------------------------------------------- -# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ==== -# https://github.com/wekan/wekan/wiki/autologin -#- OIDC_REDIRECTION_ENABLED=true -#--------------------------------------------------------------------- - -# Copy the app to the image -COPY ${SRC_PATH} /home/wekan/app - -# Install OS -RUN < Date: Sat, 23 Nov 2024 23:10:42 +0200 Subject: [PATCH 125/356] Change source of GitHub wekan packages to HTTPs (eliminates git ls-remote) --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2fa1eed13..6e9d11d36 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,8 @@ "@babel/runtime": "^7.25.0", "@mapbox/node-pre-gyp": "^1.0.10", "@rwap/jquery-ui-touch-punch": "^1.0.11", - "@wekanteam/dragscroll": "github:wekan/dragscroll", - "@wekanteam/exceljs": "github:wekan/exceljs", + "@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", From 447ae934762ed332cee423e44753b5a6aed5c380 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sun, 24 Nov 2024 00:46:29 +0200 Subject: [PATCH 126/356] Updated NodeJS version to v14.21.4 (Meteor ESM) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index bc34ba7af..1d8cd0736 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM scratch AS downloads # Download NodeJS bundle -ADD https://nodejs.org/download/release/v14.21.3/node-v14.21.3-linux-x64.tar.gz node.tar.gz +ADD https://static.meteor.com/dev-bundle-node-os/v14.21.4/node-v14.21.4-linux-x64.tar.gz node.tar.gz # Download Meteor bundle ADD https://static.meteor.com/packages-bootstrap/2.16/meteor-bootstrap-os.linux.x86_64.tar.gz meteor.tar.gz From 7e1c65f616959d48f3370e32416e6d552b466441 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sun, 24 Nov 2024 01:29:56 +0200 Subject: [PATCH 127/356] Removed stack-size changing, replaced with FD limit --- Dockerfile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1d8cd0736..f098541af 100644 --- a/Dockerfile +++ b/Dockerfile @@ -224,9 +224,6 @@ USER wekan ENV PORT=8080 EXPOSE ${PORT} -# Set the maximum stack size -ENV STACK_SIZE=65500 - # Define the stop signal for node STOPSIGNAL SIGINT @@ -234,4 +231,4 @@ STOPSIGNAL SIGINT VOLUME /data # Set startup command -CMD ["bash", "-c", "ulimit -s ${STACK_SIZE} && exec node /wekan/main.js"] +CMD ["bash", "-c", "ulimit -n 65500 && exec node /wekan/main.js"] From b9f32c17395957a14163326e493ac495f3abf33d Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sun, 24 Nov 2024 02:01:10 +0200 Subject: [PATCH 128/356] Remove ulimit from Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f098541af..400462b25 100644 --- a/Dockerfile +++ b/Dockerfile @@ -231,4 +231,4 @@ STOPSIGNAL SIGINT VOLUME /data # Set startup command -CMD ["bash", "-c", "ulimit -n 65500 && exec node /wekan/main.js"] +CMD ["node", "/wekan/main.js"] From 203bf92a0ab3a906bbedc424229184438877ae52 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sun, 24 Nov 2024 19:49:32 +0200 Subject: [PATCH 129/356] Fix data directory regression --- Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 400462b25..ff920af9d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -215,7 +215,11 @@ RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \ # Remove the web.browser.legacy platform rm -r /wekan/programs/web.browser.legacy && \ # Change ownership of wekan directory - chown wekan:wekan -R /wekan + chown wekan:wekan -R /wekan && \ + # Create the data directory + mkdir /data && \ + # Change ownership of data directory + chown wekan:root -R /data # Change to the wekan user USER wekan From 609c2a5ddb7f770e1d35dde2ab09cf5df24b06b6 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 24 Nov 2024 20:33:32 +0200 Subject: [PATCH 130/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e4b014b1a..b5db8fa34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ 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: + +- [Speed improvements to building WeKan x86_64 Dockerfile](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: From 3027f0acb0365d4c8c876fd39ca024b37b6e0431 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 24 Nov 2024 20:34:34 +0200 Subject: [PATCH 131/356] Updated translations. --- imports/i18n/data/pl.i18n.json | 22 +++++++++++----------- imports/i18n/data/sv.i18n.json | 30 +++++++++++++++--------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/imports/i18n/data/pl.i18n.json b/imports/i18n/data/pl.i18n.json index eb1c92202..44a2532d1 100644 --- a/imports/i18n/data/pl.i18n.json +++ b/imports/i18n/data/pl.i18n.json @@ -87,8 +87,8 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", + "set-list-width": "Ustaw min. szerokość", + "set-list-width-value": "Min. szerokość (piksele)", "list-width-error-message": "Szerokość listy musi mieć wartość dodatnią", "setSwimlaneHeightPopup-title": "Ustaw wysokość ścieżki", "set-swimlane-height": "Ustaw wysokość ścieżki", @@ -295,7 +295,7 @@ "color-white": "biała", "color-yellow": "żółta", "unset-color": "Nieustawiony", - "comments": "Comments", + "comments": "Komentarze", "comment": "Komentarz", "comment-placeholder": "Dodaj komentarz", "comment-only": "Tylko komentowanie", @@ -445,7 +445,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.", - "show-activities": "Show Activities", + "show-activities": "Pokaż aktywności", "headerBarCreateBoardPopup-title": "Utwórz tablicę", "home": "Strona główna", "import": "Importuj", @@ -574,7 +574,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-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", @@ -959,7 +959,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", + "hide-finished-checklist": "Ukryj ukończoną listę", "task": "Zadanie", "create-task": "Utwórz zadanie", "ok": "OK", @@ -1113,8 +1113,8 @@ "created-at-newest-first": "daty utworzenia (najpierw najnowsze)", "created-at-oldest-first": "daty utworzenia (najpierw najstarsze)", "links-heading": "Linki", - "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", + "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", @@ -1197,10 +1197,10 @@ "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", - "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "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": "original order", + "originOrder": "pierwotna kolejność", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1253,7 +1253,7 @@ "convert-to-markdown": "Zamień na markdown", "import-board-zip": "Dodaj plik .zip z tablicą plików JSON, nazwą tablicy i podkatalogami z załącznikami", "collapse": "Zwiń", - "uncollapse": "Uncollapse", + "uncollapse": "Rozwiń", "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items" } diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index c41b70334..e0c382aaa 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s flyttades till Arkiv", "activity-attached": "bifogade %s till %s", "activity-created": "skapade %s", - "activity-changedListTitle": "renamed list to %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", @@ -87,8 +87,8 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", + "set-list-width": "Ställ in min bredd", + "set-list-width-value": "Min bredd (pixlar)", "list-width-error-message": "Listbredden måste vara ett positivt heltal", "setSwimlaneHeightPopup-title": "Ställ in simbanans höjd", "set-swimlane-height": "Ställ in simbanans höjd", @@ -295,7 +295,7 @@ "color-white": "vit", "color-yellow": "gul", "unset-color": "Ta bort", - "comments": "Comments", + "comments": "Kommentarer", "comment": "Kommentera", "comment-placeholder": "Skriv kommentar", "comment-only": "Kommentera endast", @@ -445,7 +445,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.", - "show-activities": "Show Activities", + "show-activities": "Visa aktiviteter", "headerBarCreateBoardPopup-title": "Skapa tavla", "home": "Hem", "import": "Importera", @@ -574,7 +574,7 @@ "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": "Add yourself to current card", + "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", @@ -959,7 +959,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": "Hide finished checklist", + "hide-finished-checklist": "Göm färdig checklista", "task": "Uppgift", "create-task": "Skapa uppgift", "ok": "OK", @@ -1113,8 +1113,8 @@ "created-at-newest-first": "Skapad den (Nyast först)", "created-at-oldest-first": "Skapad den (äldst först)", "links-heading": "Länkar", - "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", + "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", @@ -1197,10 +1197,10 @@ "checklistActionsPopup-title": "Liståtgärder", "moveChecklist": "Flytta checklista", "moveChecklistPopup-title": "Flytta checklista", - "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", + "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", @@ -1254,6 +1254,6 @@ "import-board-zip": "Lägga till .zip-filen till tavlans JSON filer, och tavla", "collapse": "Fäll ihop", "uncollapse": "Expandera", - "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideCheckedChecklistItems": "Dölj markerade objekt i checklistan", + "hideAllChecklistItems": "Dölj alla objekt i checklistan" } From b9a01eb5d6866ff08e5d5e336c51b20e031347e8 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 24 Nov 2024 20:35:28 +0200 Subject: [PATCH 132/356] Updated ChangeLog. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5db8fa34..3f0d4dda8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ Fixing other platforms In Progress. This release adds the following updates: -- [Speed improvements to building WeKan x86_64 Dockerfile](https://github.com/wekan/wekan/pull/5588). +- [Speed improvements to building WeKan x86_64 Dockerfile. 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. From 391218185718c845cce12196e585d6b9f9d43fd7 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 24 Nov 2024 20:44:30 +0200 Subject: [PATCH 133/356] v7.68 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f0d4dda8..43ba0e49f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.68 2024-11-24 WeKan ® release This release adds the following updates: diff --git a/Stackerfile.yml b/Stackerfile.yml index 41d4e9060..92c07b340 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.67.0" +appVersion: "v7.68.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 097c6e230..241cdcf0b 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -8,7 +8,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.67-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.67/wekan-7.67-amd64-windows.zip) +1. [wekan-7.68-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.68/wekan-7.68-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -20,7 +20,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.67-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.68-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 0510bd289..acb06ce47 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.67.0", + "version": "v7.68.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index ae7d981c6..d2da8ae05 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.67.0", + "version": "v7.68.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index d980b7189..8dda03280 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.67 + Wekan REST API v7.68 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                    • - Wekan REST API v7.67 + Wekan REST API v7.68
                    • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                      -

                      Wekan REST API v7.67

                      +

                      Wekan REST API v7.68

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

                      diff --git a/public/api/wekan.yml b/public/api/wekan.yml index b45d0b272..9f8fe2dd3 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.67 + version: v7.68 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 7f3cf9db9..982a48b8b 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 = 767, + appVersion = 768, # Increment this for every release. - appMarketingVersion = (defaultText = "7.67.0~2024-11-21"), + appMarketingVersion = (defaultText = "7.68.0~2024-11-24"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 312b4cdb6..c3f2f1176 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.67' +version: '7.68' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.67/wekan-7.67-amd64.zip - unzip wekan-7.67-amd64.zip - rm wekan-7.67-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.68/wekan-7.68-amd64.zip + unzip wekan-7.68-amd64.zip + rm wekan-7.68-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 35c1057527948ac2b7b89c4dfb79ebeb6651263e Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sun, 24 Nov 2024 20:55:36 +0200 Subject: [PATCH 134/356] Change archive-card shortcut to backtick for better ergonomics --- client/lib/keyboard.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 8dd392066..fe58d2ca6 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -190,7 +190,7 @@ Mousetrap.bind('space', evt => { } }); -Mousetrap.bind('-', evt => { +Mousetrap.bind('`', evt => { const cardId = getSelectedCardId(); if (!cardId) { return; @@ -285,7 +285,7 @@ Template.keyboardShortcuts.helpers({ action: 'shortcut-assign-self', }, { - keys: ['-'], + keys: ['`'], action: 'archive-card', }, { From 5d975c5da48e71f955b35b06d3ad32a6f390c03f Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 24 Nov 2024 21:17:10 +0200 Subject: [PATCH 135/356] Updated ChangeLog. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43ba0e49f..8204c4435 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ Fixing other platforms In Progress. This release adds the following updates: -- [Speed improvements to building WeKan x86_64 Dockerfile. Using Ubuntu 24.04 Docker base image](https://github.com/wekan/wekan/pull/5588). +- [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. From 90abe01286e100eaca4fcfc5d306fc2de3bebd17 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:17:31 +0000 Subject: [PATCH 136/356] Bump docker/metadata-action from 5.5.1 to 5.6.1 Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.5.1 to 5.6.1. - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](https://github.com/docker/metadata-action/compare/8e5442c4ef9f78752691e2d8f8d19755c6f78e81...369eb591f429131d6889c46b94e711f089e6ca96) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 651aa8d67..0dc996818 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -48,7 +48,7 @@ jobs: # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta - uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 + uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} From 1d9a710e3bd397f34ab36bae9019b16b930c5287 Mon Sep 17 00:00:00 2001 From: walster001 Date: Wed, 27 Nov 2024 22:05:43 +1030 Subject: [PATCH 137/356] Fix issue with comments not showing --- client/components/boards/boardColors.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/components/boards/boardColors.css b/client/components/boards/boardColors.css index b6cda99c2..cecf559f0 100644 --- a/client/components/boards/boardColors.css +++ b/client/components/boards/boardColors.css @@ -2648,6 +2648,9 @@ THEME - Exodark 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; From 65765f6c2f012cbbfb32aaa69c543ad9ae335e65 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Nov 2024 16:16:31 +0200 Subject: [PATCH 138/356] Updated ChangeLog. --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8204c4435..6842650c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,22 @@ 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: + +- [Bump docker/metadata-action from 5.5.1 to 5.6.1](https://github.com/wekan/wekan/pull/5590). + Thanks to dependabot. + +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 NadavTasher. + +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: From 9c87572f90f16fbdddb6a4dff3984e64acac20cc Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Nov 2024 16:24:11 +0200 Subject: [PATCH 139/356] Updated dependencies. Thanks to developers of dependencies ! --- package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index acb06ce47..0f69e36ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -109,12 +109,12 @@ "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" }, "@wekanteam/dragscroll": { - "version": "github:wekan/dragscroll#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2", - "from": "github:wekan/dragscroll" + "version": "git+https://github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2", + "from": "git+https://github.com/wekan/dragscroll.git" }, "@wekanteam/exceljs": { - "version": "github:wekan/exceljs#e0229907e7a81bc3fe6daf4e42b1fdfbecdcb7cb", - "from": "github:wekan/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", @@ -533,9 +533,9 @@ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" }, "dayjs": { - "version": "1.11.12", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz", - "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==" + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" }, "debug": { "version": "4.3.4", From 77e7350e961b56ec0b459283879042bffaae2439 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Nov 2024 16:25:51 +0200 Subject: [PATCH 140/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6842650c2..51d2118a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ 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. and fixes the following bugs: From b3f0392e7d830757117dbc623f30a5bc9fe855c0 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Nov 2024 16:28:48 +0200 Subject: [PATCH 141/356] Updated translations. --- imports/i18n/data/fr.i18n.json | 30 +++++++++++++++--------------- imports/i18n/data/nl.i18n.json | 30 +++++++++++++++--------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index 949fe2496..be88a4489 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -49,7 +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-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", @@ -87,8 +87,8 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", + "set-list-width": "Définir la largeur mini.", + "set-list-width-value": "Largeur mini. (pixels)", "list-width-error-message": "La largeur de la liste doit être un entier positif", "setSwimlaneHeightPopup-title": "Définir la hauteur du couloir", "set-swimlane-height": "Définir la hauteur du couloir", @@ -295,7 +295,7 @@ "color-white": "blanc", "color-yellow": "jaune", "unset-color": "Enlever", - "comments": "Comments", + "comments": "Commentaires", "comment": "Commenter", "comment-placeholder": "Écrire un commentaire", "comment-only": "Commentaire uniquement", @@ -445,7 +445,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", - "show-activities": "Show Activities", + "show-activities": "Afficher les activités", "headerBarCreateBoardPopup-title": "Créer un tableau", "home": "Accueil", "import": "Importer", @@ -574,7 +574,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-add-self": "S'ajouter à la carte courante", "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", @@ -959,7 +959,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", + "hide-finished-checklist": "Cacher la check-list terminée", "task": "Tâche", "create-task": "Créer une tâche", "ok": "OK", @@ -1113,8 +1113,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-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", + "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", @@ -1197,10 +1197,10 @@ "checklistActionsPopup-title": "Actions sur la check-list", "moveChecklist": "Déplacer la check-list", "moveChecklistPopup-title": "Déplacer la check-list", - "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", + "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", @@ -1254,6 +1254,6 @@ "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" + "hideCheckedChecklistItems": "Cacher les éléments cochés de la check-list", + "hideAllChecklistItems": "Cacher tous les éléments de la check-list" } diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 689355fb7..fa740c21e 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -49,7 +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-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", @@ -87,8 +87,8 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", + "set-list-width": "Stel Min. Breedte In", + "set-list-width-value": "Min. Breedte (pixels)", "list-width-error-message": "Lijstbreedte moet positief geheel getal zijn", "setSwimlaneHeightPopup-title": "Stel Swimlane-hoogte in", "set-swimlane-height": "Stel Swimlane-hoogte in", @@ -295,7 +295,7 @@ "color-white": "wit", "color-yellow": "geel", "unset-color": "Ongedefinieerd", - "comments": "Comments", + "comments": "Aantekeningen", "comment": "Aantekening Opslaan", "comment-placeholder": "Schrijf aantekening", "comment-only": "Alleen aantekeningen maken", @@ -445,7 +445,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.", - "show-activities": "Show Activities", + "show-activities": "Toon Activiteiten", "headerBarCreateBoardPopup-title": "Bord aanmaken", "home": "Voorpagina", "import": "Importeer", @@ -574,7 +574,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-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", @@ -959,7 +959,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": "Hide finished checklist", + "hide-finished-checklist": "Verberg afgewerkte checklist", "task": "Taak", "create-task": "Taak aanmaken", "ok": "OK", @@ -1113,8 +1113,8 @@ "created-at-newest-first": "Aangemaakt op (Nieuwste Eerst)", "created-at-oldest-first": "Aangemaakt op (Oudste Eerst)", "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", + "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", @@ -1197,10 +1197,10 @@ "checklistActionsPopup-title": "Checklist acties", "moveChecklist": "Verplaats Checklist", "moveChecklistPopup-title": "Verplaats 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", + "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", @@ -1254,6 +1254,6 @@ "import-board-zip": "Voeg .zip bestand toe met bord JSON bestanden, en bordnaam subdirectories met bijlagen.", "collapse": "Inklappen", "uncollapse": "Uitklappen", - "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideCheckedChecklistItems": "Verberg aangevinkte checklist items", + "hideAllChecklistItems": "Verberg alle checklist items" } From 54b7591ca04142cc079581a2d00a5bd7bf0ef2cf Mon Sep 17 00:00:00 2001 From: malteprang Date: Thu, 28 Nov 2024 15:00:00 +0100 Subject: [PATCH 142/356] Update docker-compose.yml keycloak part --- docker-compose.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index bfc1bce6a..752b2ad8d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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 From 94cf2a80a50926cc56301e7768ba11a8c21a1c52 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 28 Nov 2024 16:37:52 +0200 Subject: [PATCH 143/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51d2118a4..59eebeedb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,8 @@ and fixes the following bugs: Thanks to walster001. - [Change archive-card shortcut to backtick for better ergonomics](https://github.com/wekan/wekan/pull/5589). Thanks to NadavTasher. +- [Update docker-compose.yml Keycloak part](https://github.com/wekan/wekan/pull/5597). + Thanks to malteprang. Thanks to above GitHub users for their contributions and translators for their translations. From aa33ead7b2efd11bfd9e3f1fb94b564b6bdce119 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 2 Dec 2024 06:17:40 +0200 Subject: [PATCH 144/356] Updated Windows docs. --- docs/Platforms/Propietary/Windows/Offline.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 241cdcf0b..a056b5563 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -4,6 +4,8 @@ Also see: [Windows](Windows) ## Wekan Windows 64bit version On-Premise +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: From bd3a7e1068a5e0b39da01aa321796a7b3b10fce7 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 2 Dec 2024 06:19:38 +0200 Subject: [PATCH 145/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59eebeedb..00a2cbbe9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ This release adds the following updates: 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. and fixes the following bugs: From ab4c3bd2fc49e6fa82ec47dccdf9670110cddf98 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 2 Dec 2024 08:10:32 +0200 Subject: [PATCH 146/356] Updated Keycloak etc login settings at start-wekan.bat and start-wekan.sh. Thanks to xet7 ! --- start-wekan.bat | 134 +++++++++++++++++++++++++++++++++++++++++++++--- start-wekan.sh | 6 ++- 2 files changed, 133 insertions(+), 7 deletions(-) diff --git a/start-wekan.bat b/start-wekan.bat index 50940d2ee..41d90c8fb 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 ==== @@ -493,11 +613,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 +REML ## https://github.com/wekan/wekan/wiki/SAML REM SET SAML_ENABLED=true REM SET SAML_PROVIDER= REM SET SAML_ENTRYPOINT= @@ -510,7 +632,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 a3b78865b..c67a16bfa 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 From 79f7ec27159825db9206f385d9281fd68a2aacf5 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 2 Dec 2024 08:14:54 +0200 Subject: [PATCH 147/356] Updated release scripts. Thanks to xet7 ! --- releases/release-bundle.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/releases/release-bundle.sh b/releases/release-bundle.sh index 54c5099c2..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 20i:/data/websites/ - scp wekan-$1-amd64.zip 20i:/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 build script uploaded to 20i." +#echo "x64 bundle and build script uploaded to 20i." +echo "x64 bundle done." From 57ddd82ef1cf25c4c953d65e08dab245daa8aab6 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 2 Dec 2024 08:22:51 +0200 Subject: [PATCH 148/356] v7.69 --- CHANGELOG.md | 10 +++++++--- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 22 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00a2cbbe9..910b2ba64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.69 2024-12-02 WeKan ® release This release adds the following updates: @@ -25,14 +25,18 @@ This release adds the following updates: 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 NadavTasher. -- [Update docker-compose.yml Keycloak part](https://github.com/wekan/wekan/pull/5597). Thanks to malteprang. Thanks to above GitHub users for their contributions and translators for their translations. diff --git a/Stackerfile.yml b/Stackerfile.yml index 92c07b340..816ed4001 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.68.0" +appVersion: "v7.69.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index a056b5563..3c310c9db 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.68-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.68/wekan-7.68-amd64-windows.zip) +1. [wekan-7.69-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.69/wekan-7.69-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.68-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.69-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 0f69e36ef..f907d914b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.68.0", + "version": "v7.69.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d2da8ae05..61afe339b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.68.0", + "version": "v7.69.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 8dda03280..8f2995d0e 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.68 + Wekan REST API v7.69 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                      • - Wekan REST API v7.68 + Wekan REST API v7.69
                      • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                        -

                        Wekan REST API v7.68

                        +

                        Wekan REST API v7.69

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

                        diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 9f8fe2dd3..556355569 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.68 + version: v7.69 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 982a48b8b..5152a7bb5 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 = 768, + appVersion = 769, # Increment this for every release. - appMarketingVersion = (defaultText = "7.68.0~2024-11-24"), + appMarketingVersion = (defaultText = "7.69.0~2024-12-02"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index c3f2f1176..24b05dc18 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.68' +version: '7.69' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.68/wekan-7.68-amd64.zip - unzip wekan-7.68-amd64.zip - rm wekan-7.68-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.69/wekan-7.69-amd64.zip + unzip wekan-7.69-amd64.zip + rm wekan-7.69-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From de2ddbe8b5714b0448dab9a4324849c91800e232 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 2 Dec 2024 10:51:48 +0200 Subject: [PATCH 149/356] Fix typo. --- start-wekan.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start-wekan.bat b/start-wekan.bat index 41d90c8fb..2cf6fa92f 100644 --- a/start-wekan.bat +++ b/start-wekan.bat @@ -619,7 +619,7 @@ 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 -REML ## https://github.com/wekan/wekan/wiki/SAML +REM ## https://github.com/wekan/wekan/wiki/SAML REM SET SAML_ENABLED=true REM SET SAML_PROVIDER= REM SET SAML_ENTRYPOINT= From 729d8fb435d1ef3b8f614467d5237dd2cd89c4f7 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 2 Dec 2024 14:17:58 +0200 Subject: [PATCH 150/356] Accessibility statement. Part 1. In Progress. Thanks to xet7 ! --- client/components/main/accessibility.css | 74 +++++++++++++++++++++ client/components/main/accessibility.jade | 8 +++ client/components/main/accessibility.js | 11 +++ client/components/settings/settingBody.jade | 15 +++++ client/components/settings/settingBody.js | 15 ++++- config/router.js | 24 +++++++ imports/i18n/data/en.i18n.json | 5 +- models/accessibilitySettings.js | 65 ++++++++++++++++++ models/settings.js | 13 ++++ server/publications/settings.js | 3 + 10 files changed, 231 insertions(+), 2 deletions(-) create mode 100644 client/components/main/accessibility.css create mode 100644 client/components/main/accessibility.jade create mode 100644 client/components/main/accessibility.js create mode 100644 models/accessibilitySettings.js 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/settings/settingBody.jade b/client/components/settings/settingBody.jade index d4ece7827..c2f9fe956 100644 --- a/client/components/settings/settingBody.jade +++ b/client/components/settings/settingBody.jade @@ -249,6 +249,21 @@ template(name='layoutSettings') .title {{_ 'custom-top-left-corner-logo-height'}} .form-group input.wekan-form-control#custom-top-left-corner-logo-height(type="text", placeholder="" value="{{currentSetting.customTopLeftCornerLogoHeight}}") + li.layout-form + .title {{_ 'accessibility-page-enabled'}} + .form-group.flex + input.wekan-form-control#accessibility-page-enabled(type="radio" name="accessibilityPageEnabled" value="true" checked="{{#if currentSetting.accessibilityEnabled}}checked{{/if}}") + label {{_ 'yes'}} + input.wekan-form-control#accessibility-page-enabled(type="radio" name="accessibilityPageEnabled" value="false" checked="{{#unless currentSetting.accessibilityEnabled}}checked{{/unless}}") + label {{_ 'no'}} + li.layout-form + .title {{_ 'accessibility-title'}} + .form-group + input.wekan-form-control#accessibility-title(type="text", placeholder="" value="{{currentSetting.accessibilityTitle}}") + li.layout-form + .title {{_ 'accessibility-content'}} + .form-group + textarea#accessibility-content.wekan-form-control= currentSetting.accessibilityContent li.layout-form .title {{_ 'automatic-linked-url-schemes'}} .form-group diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js index 9a345d42a..616600b5b 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,13 @@ 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 { @@ -263,6 +272,9 @@ BlazeComponent.extendComponent({ oidcBtnText, mailDomainName, legalNotice, + accessibilityPageEnabled, + accessibilityTitle, + accessibilityContent, }, }); } catch (e) { @@ -301,6 +313,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, 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/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 8de471b27..70f6cb2e8 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -1255,5 +1255,8 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } 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/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/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, }, }, ); From e621ad6d7cca87078642dc3479b4bf972d9e7147 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 20:59:24 +0000 Subject: [PATCH 151/356] Bump docker/build-push-action from 6.9.0 to 6.10.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.10.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/4f58ea79222b3b9dc2c8bbdd6debcef730109a75...48aba3b46d1b1fec4febb7c5d0c644b249a11355) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 0dc996818..93ed800bf 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # 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@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 + uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 with: context: . push: ${{ github.event_name != 'pull_request' }} From aa46b4235688cfabacd2b13c43729adf87933841 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 4 Dec 2024 13:08:25 +0200 Subject: [PATCH 152/356] Updated ChangeLog. --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 910b2ba64..51c09f9d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,20 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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. + +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: From 80ea1782f935c74f1b7b1fd0fb7700ef9a39dc64 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 4 Dec 2024 14:11:10 +0200 Subject: [PATCH 153/356] =?UTF-8?q?Move=20card=20to=20archive,=20add=20sho?= =?UTF-8?q?rtcut=20key=20=C3=B7=20for=20Persian=20keyboard.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to mohammadZahedian and xet7 ! Fixes https://github.com/wekan/wekan/pull/5589, fixes https://github.com/wekan/wekan/pull/5576. --- client/lib/keyboard.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index fe58d2ca6..cb42b2533 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -210,6 +210,28 @@ Mousetrap.bind('`', evt => { } }); +// Same as above, this time for Persian keyboard. +// https://github.com/wekan/wekan/pull/5589#issuecomment-2516776519 +Mousetrap.bind('÷', evt => { + const cardId = getSelectedCardId(); + if (!cardId) { + return; + } + + const currentUserId = Meteor.userId(); + if (currentUserId === null) { + return; + } + + if (Utils.canModifyBoard()) { + const card = ReactiveCache.getCard(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(); + } +}); + Mousetrap.bind('n', evt => { const cardId = getSelectedCardId(); if (!cardId) { @@ -285,7 +307,7 @@ Template.keyboardShortcuts.helpers({ action: 'shortcut-assign-self', }, { - keys: ['`'], + keys: ['`', '÷'], action: 'archive-card', }, { From 7af0ddc226a57ab7ad14e66513a4446a7aecc55f Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 4 Dec 2024 14:18:43 +0200 Subject: [PATCH 154/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51c09f9d7..835aff8ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ 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: From d4c8ea936153fe4e7b2047d24e3ec098aefaabd1 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 4 Dec 2024 18:41:05 +0200 Subject: [PATCH 155/356] v7.70 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 835aff8ee..53e7cf532 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.70 2024-12-04 WeKan ® release This release adds the following new features: diff --git a/Stackerfile.yml b/Stackerfile.yml index 816ed4001..4d6c82f31 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.69.0" +appVersion: "v7.70.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 3c310c9db..357ec946d 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.69-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.69/wekan-7.69-amd64-windows.zip) +1. [wekan-7.70-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.70/wekan-7.70-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.69-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.70-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index f907d914b..356b1005c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.69.0", + "version": "v7.70.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 61afe339b..243a40d33 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.69.0", + "version": "v7.70.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 8f2995d0e..f27642357 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.69 + Wekan REST API v7.70 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                        • - Wekan REST API v7.69 + Wekan REST API v7.70
                        • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                          -

                          Wekan REST API v7.69

                          +

                          Wekan REST API v7.70

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

                          diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 556355569..8ce722167 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.69 + version: v7.70 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 5152a7bb5..7e633c253 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 = 769, + appVersion = 770, # Increment this for every release. - appMarketingVersion = (defaultText = "7.69.0~2024-12-02"), + appMarketingVersion = (defaultText = "7.70.0~2024-12-04"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 24b05dc18..ec863a01d 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.69' +version: '7.70' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.69/wekan-7.69-amd64.zip - unzip wekan-7.69-amd64.zip - rm wekan-7.69-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.70/wekan-7.70-amd64.zip + unzip wekan-7.70-amd64.zip + rm wekan-7.70-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 46327f19a1c6d37f2e5591aa0cc2a882e4c56ee5 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 5 Dec 2024 10:29:15 +0200 Subject: [PATCH 156/356] To menu right top username, added Support, to have info about from where to get support. Thanks to xet7 ! --- client/components/users/userHeader.jade | 23 +++++++++++++++++++++++ client/components/users/userHeader.js | 1 + imports/i18n/data/af.i18n.json | 4 +++- imports/i18n/data/af_ZA.i18n.json | 4 +++- imports/i18n/data/ar-DZ.i18n.json | 4 +++- imports/i18n/data/ar-EG.i18n.json | 4 +++- imports/i18n/data/ar.i18n.json | 4 +++- imports/i18n/data/ary.i18n.json | 4 +++- imports/i18n/data/ast-ES.i18n.json | 4 +++- imports/i18n/data/az-AZ.i18n.json | 4 +++- imports/i18n/data/az-LA.i18n.json | 4 +++- imports/i18n/data/az.i18n.json | 4 +++- imports/i18n/data/bg.i18n.json | 4 +++- imports/i18n/data/br.i18n.json | 4 +++- imports/i18n/data/ca.i18n.json | 4 +++- imports/i18n/data/ca_ES.i18n.json | 4 +++- imports/i18n/data/cmn.i18n.json | 4 +++- imports/i18n/data/cs-CZ.i18n.json | 4 +++- imports/i18n/data/cs.i18n.json | 4 +++- imports/i18n/data/cy-GB.i18n.json | 4 +++- imports/i18n/data/cy.i18n.json | 4 +++- imports/i18n/data/da.i18n.json | 4 +++- imports/i18n/data/de-AT.i18n.json | 4 +++- imports/i18n/data/de-CH.i18n.json | 4 +++- imports/i18n/data/de.i18n.json | 4 +++- imports/i18n/data/de_DE.i18n.json | 4 +++- imports/i18n/data/el-GR.i18n.json | 4 +++- imports/i18n/data/el.i18n.json | 4 +++- imports/i18n/data/en-BR.i18n.json | 4 +++- imports/i18n/data/en-DE.i18n.json | 4 +++- imports/i18n/data/en-GB.i18n.json | 4 +++- imports/i18n/data/en-IT.i18n.json | 4 +++- imports/i18n/data/en-MY.i18n.json | 4 +++- imports/i18n/data/en-YS.i18n.json | 4 +++- imports/i18n/data/en.i18n.json | 4 +++- imports/i18n/data/en_ZA.i18n.json | 4 +++- imports/i18n/data/eo.i18n.json | 4 +++- imports/i18n/data/es-AR.i18n.json | 4 +++- imports/i18n/data/es-CL.i18n.json | 4 +++- imports/i18n/data/es-LA.i18n.json | 4 +++- imports/i18n/data/es-MX.i18n.json | 4 +++- imports/i18n/data/es-PE.i18n.json | 4 +++- imports/i18n/data/es-PY.i18n.json | 4 +++- imports/i18n/data/es.i18n.json | 4 +++- imports/i18n/data/es_CO.i18n.json | 4 +++- imports/i18n/data/et-EE.i18n.json | 4 +++- imports/i18n/data/eu.i18n.json | 4 +++- imports/i18n/data/fa-IR.i18n.json | 4 +++- imports/i18n/data/fa.i18n.json | 4 +++- imports/i18n/data/fi.i18n.json | 4 +++- imports/i18n/data/fr-CH.i18n.json | 4 +++- imports/i18n/data/fr-FR.i18n.json | 4 +++- imports/i18n/data/fr.i18n.json | 4 +++- imports/i18n/data/fy-NL.i18n.json | 4 +++- imports/i18n/data/fy.i18n.json | 4 +++- imports/i18n/data/gl-ES.i18n.json | 4 +++- imports/i18n/data/gl.i18n.json | 4 +++- imports/i18n/data/gu-IN.i18n.json | 4 +++- imports/i18n/data/he-IL.i18n.json | 4 +++- imports/i18n/data/he.i18n.json | 4 +++- imports/i18n/data/hi-IN.i18n.json | 4 +++- imports/i18n/data/hi.i18n.json | 4 +++- imports/i18n/data/hr.i18n.json | 4 +++- imports/i18n/data/hu.i18n.json | 4 +++- imports/i18n/data/hy.i18n.json | 4 +++- imports/i18n/data/id.i18n.json | 4 +++- imports/i18n/data/ig.i18n.json | 4 +++- imports/i18n/data/it.i18n.json | 4 +++- imports/i18n/data/ja-HI.i18n.json | 4 +++- imports/i18n/data/ja.i18n.json | 4 +++- imports/i18n/data/ka.i18n.json | 4 +++- imports/i18n/data/km.i18n.json | 4 +++- imports/i18n/data/ko-KR.i18n.json | 4 +++- imports/i18n/data/ko.i18n.json | 4 +++- imports/i18n/data/lt.i18n.json | 4 +++- imports/i18n/data/lv.i18n.json | 4 +++- imports/i18n/data/mk.i18n.json | 4 +++- imports/i18n/data/mn.i18n.json | 4 +++- imports/i18n/data/ms-MY.i18n.json | 4 +++- imports/i18n/data/ms.i18n.json | 4 +++- imports/i18n/data/nb.i18n.json | 4 +++- imports/i18n/data/nl-NL.i18n.json | 4 +++- imports/i18n/data/nl.i18n.json | 4 +++- imports/i18n/data/oc.i18n.json | 4 +++- imports/i18n/data/or_IN.i18n.json | 4 +++- imports/i18n/data/pa.i18n.json | 4 +++- imports/i18n/data/pl-PL.i18n.json | 4 +++- imports/i18n/data/pl.i18n.json | 4 +++- imports/i18n/data/pt-BR.i18n.json | 4 +++- imports/i18n/data/pt.i18n.json | 4 +++- imports/i18n/data/pt_PT.i18n.json | 4 +++- imports/i18n/data/ro-RO.i18n.json | 4 +++- imports/i18n/data/ro.i18n.json | 4 +++- imports/i18n/data/ru-UA.i18n.json | 4 +++- imports/i18n/data/ru.i18n.json | 4 +++- imports/i18n/data/sk.i18n.json | 4 +++- imports/i18n/data/sl.i18n.json | 4 +++- imports/i18n/data/sr.i18n.json | 4 +++- imports/i18n/data/sv.i18n.json | 4 +++- imports/i18n/data/sw.i18n.json | 4 +++- imports/i18n/data/ta.i18n.json | 4 +++- imports/i18n/data/th.i18n.json | 4 +++- imports/i18n/data/tlh.i18n.json | 4 +++- imports/i18n/data/tr.i18n.json | 4 +++- imports/i18n/data/ug.i18n.json | 4 +++- imports/i18n/data/uk-UA.i18n.json | 4 +++- imports/i18n/data/uk.i18n.json | 4 +++- imports/i18n/data/uz-AR.i18n.json | 4 +++- imports/i18n/data/uz-LA.i18n.json | 4 +++- imports/i18n/data/uz-UZ.i18n.json | 4 +++- imports/i18n/data/uz.i18n.json | 4 +++- imports/i18n/data/ve-CC.i18n.json | 4 +++- imports/i18n/data/ve-PP.i18n.json | 4 +++- imports/i18n/data/ve.i18n.json | 4 +++- imports/i18n/data/vi-VN.i18n.json | 4 +++- imports/i18n/data/vi.i18n.json | 4 +++- imports/i18n/data/vl-SS.i18n.json | 4 +++- imports/i18n/data/vo.i18n.json | 4 +++- imports/i18n/data/wa-RR.i18n.json | 4 +++- imports/i18n/data/wa.i18n.json | 4 +++- imports/i18n/data/wo.i18n.json | 4 +++- imports/i18n/data/xh.i18n.json | 4 +++- imports/i18n/data/yi.i18n.json | 4 +++- imports/i18n/data/yo.i18n.json | 4 +++- imports/i18n/data/yue_CN.i18n.json | 4 +++- imports/i18n/data/zgh.i18n.json | 4 +++- imports/i18n/data/zh-CN.i18n.json | 4 +++- imports/i18n/data/zh-GB.i18n.json | 4 +++- imports/i18n/data/zh-HK.i18n.json | 4 +++- imports/i18n/data/zh-Hans.i18n.json | 4 +++- imports/i18n/data/zh-Hant.i18n.json | 4 +++- imports/i18n/data/zh-TW.i18n.json | 4 +++- imports/i18n/data/zh.i18n.json | 4 +++- imports/i18n/data/zu-ZA.i18n.json | 4 +++- imports/i18n/data/zu.i18n.json | 4 +++- 135 files changed, 423 insertions(+), 133 deletions(-) diff --git a/client/components/users/userHeader.jade b/client/components/users/userHeader.jade index 14f6cadcf..6477be571 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,25 @@ template(name="editProfilePopup") div input#deleteButton.primary.wide(type="button" value="{{_ 'delete'}}") + +template(name="supportPopup") + ul.pop-over-list + li + | You get support from name of this app, + | that has Admin access to help you. + br + br + | a) If app name or logo or URL is https://something.yourcompany.com, you get support from https://yourcompany.com. + | This app may come preinstalled at some devices. + br + br + | b) If this app name is WeKan from https://wekan.team/app/ or URL is https://boards.wekan.team, + | then this is WeKan Open Source kanban software with MIT license https://wekan.github.io with all source code + | at https://github.com/wekan/wekan, PRs are very welcome at https://github.com/wekan/wekan/pulls. + | Free public Open Source support is at https://github.com/wekan/wekan/issues for feature requests and bug reports. + | Optional paid private Commercial Support for Features/Fixes/Support/Hosting is at https://wekan.team from maintainer of WeKan. + | If possible, please sponsor continuing maintaining of WeKan at https://wekan.github.io/sponsors/ + template(name="changePasswordPopup") +atForm(state='changePwd') diff --git a/client/components/users/userHeader.js b/client/components/users/userHeader.js index 33212d94b..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(); diff --git a/imports/i18n/data/af.i18n.json b/imports/i18n/data/af.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/af.i18n.json +++ b/imports/i18n/data/af.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/af_ZA.i18n.json b/imports/i18n/data/af_ZA.i18n.json index 9b5e33a80..165774d89 100644 --- a/imports/i18n/data/af_ZA.i18n.json +++ b/imports/i18n/data/af_ZA.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ar-DZ.i18n.json b/imports/i18n/data/ar-DZ.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/ar-DZ.i18n.json +++ b/imports/i18n/data/ar-DZ.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ar-EG.i18n.json b/imports/i18n/data/ar-EG.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/ar-EG.i18n.json +++ b/imports/i18n/data/ar-EG.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index ef83c2675..098a096e0 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "انهيار", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ary.i18n.json b/imports/i18n/data/ary.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/ary.i18n.json +++ b/imports/i18n/data/ary.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ast-ES.i18n.json b/imports/i18n/data/ast-ES.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/ast-ES.i18n.json +++ b/imports/i18n/data/ast-ES.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/az-AZ.i18n.json b/imports/i18n/data/az-AZ.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/az-AZ.i18n.json +++ b/imports/i18n/data/az-AZ.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/az-LA.i18n.json b/imports/i18n/data/az-LA.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/az-LA.i18n.json +++ b/imports/i18n/data/az-LA.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/az.i18n.json b/imports/i18n/data/az.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/az.i18n.json +++ b/imports/i18n/data/az.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/bg.i18n.json b/imports/i18n/data/bg.i18n.json index 33fe876ab..f85ade3be 100644 --- a/imports/i18n/data/bg.i18n.json +++ b/imports/i18n/data/bg.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Събери", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index 1a7481eda..da1359e20 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ca.i18n.json b/imports/i18n/data/ca.i18n.json index 30935ffae..6b3e32b23 100644 --- a/imports/i18n/data/ca.i18n.json +++ b/imports/i18n/data/ca.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Contraure", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ca_ES.i18n.json b/imports/i18n/data/ca_ES.i18n.json index fc688e598..ae93981b3 100644 --- a/imports/i18n/data/ca_ES.i18n.json +++ b/imports/i18n/data/ca_ES.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/cmn.i18n.json b/imports/i18n/data/cmn.i18n.json index 55f1d315e..35a2a45e6 100644 --- a/imports/i18n/data/cmn.i18n.json +++ b/imports/i18n/data/cmn.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/cs-CZ.i18n.json b/imports/i18n/data/cs-CZ.i18n.json index afba60a88..fd7ea36c5 100644 --- a/imports/i18n/data/cs-CZ.i18n.json +++ b/imports/i18n/data/cs-CZ.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Sbalit", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/cs.i18n.json b/imports/i18n/data/cs.i18n.json index 8ad75c795..79bbea204 100644 --- a/imports/i18n/data/cs.i18n.json +++ b/imports/i18n/data/cs.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Sbalit", "uncollapse": "Rozbalit", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/cy-GB.i18n.json b/imports/i18n/data/cy-GB.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/cy-GB.i18n.json +++ b/imports/i18n/data/cy-GB.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/cy.i18n.json b/imports/i18n/data/cy.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/cy.i18n.json +++ b/imports/i18n/data/cy.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/da.i18n.json b/imports/i18n/data/da.i18n.json index 80569304c..ae231633b 100644 --- a/imports/i18n/data/da.i18n.json +++ b/imports/i18n/data/da.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Sammenfold", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/de-AT.i18n.json b/imports/i18n/data/de-AT.i18n.json index 74363ee72..8965770fc 100644 --- a/imports/i18n/data/de-AT.i18n.json +++ b/imports/i18n/data/de-AT.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Einklappen", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/de-CH.i18n.json b/imports/i18n/data/de-CH.i18n.json index 93a02e179..fb3ae85a3 100644 --- a/imports/i18n/data/de-CH.i18n.json +++ b/imports/i18n/data/de-CH.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Einklappen", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index 4723430cd..19078f0f7 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Einklappen", "uncollapse": "Aufklappen", "hideCheckedChecklistItems": "Erledigte Checklisteneinträge ausblenden", - "hideAllChecklistItems": "Verberge alle Checklisteneinträge" + "hideAllChecklistItems": "Verberge alle Checklisteneinträge", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index 03d7bee7d..b03b54f7a 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Einklappen", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/el-GR.i18n.json b/imports/i18n/data/el-GR.i18n.json index 3786e71a1..b9969baf0 100644 --- a/imports/i18n/data/el-GR.i18n.json +++ b/imports/i18n/data/el-GR.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Σύμπτυξη", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/el.i18n.json b/imports/i18n/data/el.i18n.json index 108cb9321..184c00e6d 100644 --- a/imports/i18n/data/el.i18n.json +++ b/imports/i18n/data/el.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Σύμπτυξη", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/en-BR.i18n.json b/imports/i18n/data/en-BR.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/en-BR.i18n.json +++ b/imports/i18n/data/en-BR.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/en-DE.i18n.json b/imports/i18n/data/en-DE.i18n.json index 1f1eed9c6..b441a0d85 100644 --- a/imports/i18n/data/en-DE.i18n.json +++ b/imports/i18n/data/en-DE.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/en-GB.i18n.json b/imports/i18n/data/en-GB.i18n.json index 42e60f40b..98fb68039 100644 --- a/imports/i18n/data/en-GB.i18n.json +++ b/imports/i18n/data/en-GB.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/en-IT.i18n.json b/imports/i18n/data/en-IT.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/en-IT.i18n.json +++ b/imports/i18n/data/en-IT.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/en-MY.i18n.json b/imports/i18n/data/en-MY.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/en-MY.i18n.json +++ b/imports/i18n/data/en-MY.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/en-YS.i18n.json b/imports/i18n/data/en-YS.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/en-YS.i18n.json +++ b/imports/i18n/data/en-YS.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/en_ZA.i18n.json b/imports/i18n/data/en_ZA.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/en_ZA.i18n.json +++ b/imports/i18n/data/en_ZA.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index 02beb90d0..c54bdc5b7 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/es-AR.i18n.json b/imports/i18n/data/es-AR.i18n.json index f8e261685..8ba4b3643 100644 --- a/imports/i18n/data/es-AR.i18n.json +++ b/imports/i18n/data/es-AR.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/es-CL.i18n.json b/imports/i18n/data/es-CL.i18n.json index 8e39baa80..e519c373b 100644 --- a/imports/i18n/data/es-CL.i18n.json +++ b/imports/i18n/data/es-CL.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Contraer", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/es-LA.i18n.json b/imports/i18n/data/es-LA.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/es-LA.i18n.json +++ b/imports/i18n/data/es-LA.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/es-MX.i18n.json b/imports/i18n/data/es-MX.i18n.json index aadfeceba..07be2c9d1 100644 --- a/imports/i18n/data/es-MX.i18n.json +++ b/imports/i18n/data/es-MX.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/es-PE.i18n.json b/imports/i18n/data/es-PE.i18n.json index 8b92eecff..9b0722ce3 100644 --- a/imports/i18n/data/es-PE.i18n.json +++ b/imports/i18n/data/es-PE.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Contraer", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/es-PY.i18n.json b/imports/i18n/data/es-PY.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/es-PY.i18n.json +++ b/imports/i18n/data/es-PY.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 25329e88e..965a56915 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Contraer", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/es_CO.i18n.json b/imports/i18n/data/es_CO.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/es_CO.i18n.json +++ b/imports/i18n/data/es_CO.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/et-EE.i18n.json b/imports/i18n/data/et-EE.i18n.json index 0c2f97a2d..f61aa6a31 100644 --- a/imports/i18n/data/et-EE.i18n.json +++ b/imports/i18n/data/et-EE.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Kokkupõrge", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 9786598b4..68d8f88c8 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Tolestu", "uncollapse": "Zabaldu", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/fa-IR.i18n.json b/imports/i18n/data/fa-IR.i18n.json index eeed1de05..c1217c207 100644 --- a/imports/i18n/data/fa-IR.i18n.json +++ b/imports/i18n/data/fa-IR.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "جمع کردن", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/fa.i18n.json b/imports/i18n/data/fa.i18n.json index eeed1de05..c1217c207 100644 --- a/imports/i18n/data/fa.i18n.json +++ b/imports/i18n/data/fa.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "جمع کردن", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/fi.i18n.json b/imports/i18n/data/fi.i18n.json index d6595b4a1..da14d8cb4 100644 --- a/imports/i18n/data/fi.i18n.json +++ b/imports/i18n/data/fi.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Pienennä", "uncollapse": "Suurenna", "hideCheckedChecklistItems": "Piilota ruksatut tarkistuslistan kohdat", - "hideAllChecklistItems": "Piilota kaikki tarkistuslistan kohdat" + "hideAllChecklistItems": "Piilota kaikki tarkistuslistan kohdat", + "support": "Tuki", + "supportPopup-title": "Tuki" } diff --git a/imports/i18n/data/fr-CH.i18n.json b/imports/i18n/data/fr-CH.i18n.json index f776a6a55..bd6e340e5 100644 --- a/imports/i18n/data/fr-CH.i18n.json +++ b/imports/i18n/data/fr-CH.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/fr-FR.i18n.json b/imports/i18n/data/fr-FR.i18n.json index 1256f49fd..ea95224fd 100644 --- a/imports/i18n/data/fr-FR.i18n.json +++ b/imports/i18n/data/fr-FR.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Réduire", "uncollapse": "Développer", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index be88a4489..06811307d 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -1255,5 +1255,7 @@ "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" + "hideAllChecklistItems": "Cacher tous les éléments de la check-list", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/fy-NL.i18n.json b/imports/i18n/data/fy-NL.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/fy-NL.i18n.json +++ b/imports/i18n/data/fy-NL.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/fy.i18n.json b/imports/i18n/data/fy.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/fy.i18n.json +++ b/imports/i18n/data/fy.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/gl-ES.i18n.json b/imports/i18n/data/gl-ES.i18n.json index f648975db..327b3aa36 100644 --- a/imports/i18n/data/gl-ES.i18n.json +++ b/imports/i18n/data/gl-ES.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/gl.i18n.json b/imports/i18n/data/gl.i18n.json index f4f9e382e..633664c61 100644 --- a/imports/i18n/data/gl.i18n.json +++ b/imports/i18n/data/gl.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/gu-IN.i18n.json b/imports/i18n/data/gu-IN.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/gu-IN.i18n.json +++ b/imports/i18n/data/gu-IN.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/he-IL.i18n.json b/imports/i18n/data/he-IL.i18n.json index fb43f5770..da5786625 100644 --- a/imports/i18n/data/he-IL.i18n.json +++ b/imports/i18n/data/he-IL.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index a5d8b8d73..b92ab7e7d 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "צמצום", "uncollapse": "ביטול צמצום", "hideCheckedChecklistItems": "הסתרת פריטים שסומנו ברשימת הפריטים", - "hideAllChecklistItems": "הסתרת כל הפריטים ברשימת המטלות" + "hideAllChecklistItems": "הסתרת כל הפריטים ברשימת המטלות", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/hi-IN.i18n.json b/imports/i18n/data/hi-IN.i18n.json index 1d23093d6..0ac4ebca3 100644 --- a/imports/i18n/data/hi-IN.i18n.json +++ b/imports/i18n/data/hi-IN.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "संक्षिप्त करें", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/hi.i18n.json b/imports/i18n/data/hi.i18n.json index 6b75c3731..46ad0b589 100644 --- a/imports/i18n/data/hi.i18n.json +++ b/imports/i18n/data/hi.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "संक्षिप्त करें", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/hr.i18n.json b/imports/i18n/data/hr.i18n.json index 461860e84..2463809f9 100644 --- a/imports/i18n/data/hr.i18n.json +++ b/imports/i18n/data/hr.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/hu.i18n.json b/imports/i18n/data/hu.i18n.json index 174dae224..f27d5b9ac 100644 --- a/imports/i18n/data/hu.i18n.json +++ b/imports/i18n/data/hu.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Összecsukás", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/hy.i18n.json b/imports/i18n/data/hy.i18n.json index 3647bb7ff..7b74a32a0 100644 --- a/imports/i18n/data/hy.i18n.json +++ b/imports/i18n/data/hy.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/id.i18n.json b/imports/i18n/data/id.i18n.json index 01d911ef9..0525ada95 100644 --- a/imports/i18n/data/id.i18n.json +++ b/imports/i18n/data/id.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Ciutkan", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ig.i18n.json b/imports/i18n/data/ig.i18n.json index 383432bca..ee9834537 100644 --- a/imports/i18n/data/ig.i18n.json +++ b/imports/i18n/data/ig.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/it.i18n.json b/imports/i18n/data/it.i18n.json index bebf5818b..aed108433 100644 --- a/imports/i18n/data/it.i18n.json +++ b/imports/i18n/data/it.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Comprimi", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index 88baf1838..999618a4b 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "展開", "hideCheckedChecklistItems": "チェック済みチェックリスト項目を非表示", - "hideAllChecklistItems": "すべてのチェックリスト項目を非表示" + "hideAllChecklistItems": "すべてのチェックリスト項目を非表示", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index 0a305d12b..3631a45a3 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "折りたたむ", "uncollapse": "展開", "hideCheckedChecklistItems": "チェック済みチェックリスト項目を非表示", - "hideAllChecklistItems": "すべてのチェックリスト項目を非表示" + "hideAllChecklistItems": "すべてのチェックリスト項目を非表示", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ka.i18n.json b/imports/i18n/data/ka.i18n.json index a3dddfdef..f95399cee 100644 --- a/imports/i18n/data/ka.i18n.json +++ b/imports/i18n/data/ka.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/km.i18n.json b/imports/i18n/data/km.i18n.json index 2bdac039d..aaebf6b94 100644 --- a/imports/i18n/data/km.i18n.json +++ b/imports/i18n/data/km.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ko-KR.i18n.json b/imports/i18n/data/ko-KR.i18n.json index 7b7503153..c4a797d6b 100644 --- a/imports/i18n/data/ko-KR.i18n.json +++ b/imports/i18n/data/ko-KR.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ko.i18n.json b/imports/i18n/data/ko.i18n.json index 0074ff6a6..049c78239 100644 --- a/imports/i18n/data/ko.i18n.json +++ b/imports/i18n/data/ko.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "접기", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/lt.i18n.json b/imports/i18n/data/lt.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/lt.i18n.json +++ b/imports/i18n/data/lt.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/lv.i18n.json b/imports/i18n/data/lv.i18n.json index 183d4bacc..2f2b05400 100644 --- a/imports/i18n/data/lv.i18n.json +++ b/imports/i18n/data/lv.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Sakļaut", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/mk.i18n.json b/imports/i18n/data/mk.i18n.json index f4dc313d4..14d2d075a 100644 --- a/imports/i18n/data/mk.i18n.json +++ b/imports/i18n/data/mk.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/mn.i18n.json b/imports/i18n/data/mn.i18n.json index 80127fe9c..5f5a81921 100644 --- a/imports/i18n/data/mn.i18n.json +++ b/imports/i18n/data/mn.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/ms-MY.i18n.json +++ b/imports/i18n/data/ms-MY.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ms.i18n.json b/imports/i18n/data/ms.i18n.json index b8344c663..5737c9559 100644 --- a/imports/i18n/data/ms.i18n.json +++ b/imports/i18n/data/ms.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Buka", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/nb.i18n.json b/imports/i18n/data/nb.i18n.json index 84b9eab95..ae0bb43bc 100644 --- a/imports/i18n/data/nb.i18n.json +++ b/imports/i18n/data/nb.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Slå sammen", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/nl-NL.i18n.json b/imports/i18n/data/nl-NL.i18n.json index a515830ee..8dd29208a 100644 --- a/imports/i18n/data/nl-NL.i18n.json +++ b/imports/i18n/data/nl-NL.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Klap in", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index fa740c21e..82650112f 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Inklappen", "uncollapse": "Uitklappen", "hideCheckedChecklistItems": "Verberg aangevinkte checklist items", - "hideAllChecklistItems": "Verberg alle checklist items" + "hideAllChecklistItems": "Verberg alle checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/oc.i18n.json b/imports/i18n/data/oc.i18n.json index 92aa00d8a..dc01e6913 100644 --- a/imports/i18n/data/oc.i18n.json +++ b/imports/i18n/data/oc.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/or_IN.i18n.json b/imports/i18n/data/or_IN.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/or_IN.i18n.json +++ b/imports/i18n/data/or_IN.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/pa.i18n.json b/imports/i18n/data/pa.i18n.json index 1d13b8624..223fc6d32 100644 --- a/imports/i18n/data/pa.i18n.json +++ b/imports/i18n/data/pa.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/pl-PL.i18n.json b/imports/i18n/data/pl-PL.i18n.json index f1741d4b1..3e9db697a 100644 --- a/imports/i18n/data/pl-PL.i18n.json +++ b/imports/i18n/data/pl-PL.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Zwiń", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/pl.i18n.json b/imports/i18n/data/pl.i18n.json index 44a2532d1..117ea5100 100644 --- a/imports/i18n/data/pl.i18n.json +++ b/imports/i18n/data/pl.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Zwiń", "uncollapse": "Rozwiń", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index e26cf9961..ddd508222 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Expandir", "uncollapse": "Compactar", "hideCheckedChecklistItems": "Esconder itens concluídos da lista de verificação", - "hideAllChecklistItems": "Esconder todos os itens da lista de verificação" + "hideAllChecklistItems": "Esconder todos os itens da lista de verificação", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/pt.i18n.json b/imports/i18n/data/pt.i18n.json index 830f17ddb..80cf00070 100644 --- a/imports/i18n/data/pt.i18n.json +++ b/imports/i18n/data/pt.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Colapsar", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/pt_PT.i18n.json b/imports/i18n/data/pt_PT.i18n.json index b5c17d1f1..b4543494a 100644 --- a/imports/i18n/data/pt_PT.i18n.json +++ b/imports/i18n/data/pt_PT.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Colapsar", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ro-RO.i18n.json b/imports/i18n/data/ro-RO.i18n.json index bf8e7b7d3..7e875688a 100644 --- a/imports/i18n/data/ro-RO.i18n.json +++ b/imports/i18n/data/ro-RO.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ro.i18n.json b/imports/i18n/data/ro.i18n.json index 96b37bc29..5d83a6fb0 100644 --- a/imports/i18n/data/ro.i18n.json +++ b/imports/i18n/data/ro.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ru-UA.i18n.json b/imports/i18n/data/ru-UA.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/ru-UA.i18n.json +++ b/imports/i18n/data/ru-UA.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ru.i18n.json b/imports/i18n/data/ru.i18n.json index 72a9c8c3a..d36864b63 100644 --- a/imports/i18n/data/ru.i18n.json +++ b/imports/i18n/data/ru.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Свернуть", "uncollapse": "Развернуть", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index 2bb4c879e..4a77c5a3f 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/sl.i18n.json b/imports/i18n/data/sl.i18n.json index 945ffa3d5..2ed0362c6 100644 --- a/imports/i18n/data/sl.i18n.json +++ b/imports/i18n/data/sl.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Skrči", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/sr.i18n.json b/imports/i18n/data/sr.i18n.json index c591c08e5..b05cbe6b5 100644 --- a/imports/i18n/data/sr.i18n.json +++ b/imports/i18n/data/sr.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Сажми", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index e0c382aaa..67f6de789 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Fäll ihop", "uncollapse": "Expandera", "hideCheckedChecklistItems": "Dölj markerade objekt i checklistan", - "hideAllChecklistItems": "Dölj alla objekt i checklistan" + "hideAllChecklistItems": "Dölj alla objekt i checklistan", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/sw.i18n.json b/imports/i18n/data/sw.i18n.json index 02ccc9485..401851c16 100644 --- a/imports/i18n/data/sw.i18n.json +++ b/imports/i18n/data/sw.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ta.i18n.json b/imports/i18n/data/ta.i18n.json index 478115c83..159189893 100644 --- a/imports/i18n/data/ta.i18n.json +++ b/imports/i18n/data/ta.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/th.i18n.json b/imports/i18n/data/th.i18n.json index 091c44fc0..0803d081c 100644 --- a/imports/i18n/data/th.i18n.json +++ b/imports/i18n/data/th.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/tlh.i18n.json b/imports/i18n/data/tlh.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/tlh.i18n.json +++ b/imports/i18n/data/tlh.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index f6deadbfd..a20ee886c 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Katla", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ug.i18n.json b/imports/i18n/data/ug.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/ug.i18n.json +++ b/imports/i18n/data/ug.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index 52141ec3a..f46f93723 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Згорнути", "uncollapse": "Розгорнути", "hideCheckedChecklistItems": "Приховати відмічені елементи чек-листа", - "hideAllChecklistItems": "Приховати всі пункти чек-листа" + "hideAllChecklistItems": "Приховати всі пункти чек-листа", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index 66f2d54ae..d52f2a700 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Згорнути", "uncollapse": "Розгорнути", "hideCheckedChecklistItems": "Приховати відмічені елементи чек-листа", - "hideAllChecklistItems": "Приховати всі пункти чек-листа" + "hideAllChecklistItems": "Приховати всі пункти чек-листа", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz-AR.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/uz-AR.i18n.json +++ b/imports/i18n/data/uz-AR.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/uz-LA.i18n.json b/imports/i18n/data/uz-LA.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/uz-LA.i18n.json +++ b/imports/i18n/data/uz-LA.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/uz-UZ.i18n.json b/imports/i18n/data/uz-UZ.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/uz-UZ.i18n.json +++ b/imports/i18n/data/uz-UZ.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/uz.i18n.json b/imports/i18n/data/uz.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/uz.i18n.json +++ b/imports/i18n/data/uz.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ve-CC.i18n.json b/imports/i18n/data/ve-CC.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/ve-CC.i18n.json +++ b/imports/i18n/data/ve-CC.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ve-PP.i18n.json b/imports/i18n/data/ve-PP.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/ve-PP.i18n.json +++ b/imports/i18n/data/ve-PP.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/ve.i18n.json b/imports/i18n/data/ve.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/ve.i18n.json +++ b/imports/i18n/data/ve.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/vi-VN.i18n.json b/imports/i18n/data/vi-VN.i18n.json index 04fae1790..5f7d1022f 100644 --- a/imports/i18n/data/vi-VN.i18n.json +++ b/imports/i18n/data/vi-VN.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/vi.i18n.json b/imports/i18n/data/vi.i18n.json index 5067009df..2ff0a0d85 100644 --- a/imports/i18n/data/vi.i18n.json +++ b/imports/i18n/data/vi.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Thu gọn", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/vl-SS.i18n.json b/imports/i18n/data/vl-SS.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/vl-SS.i18n.json +++ b/imports/i18n/data/vl-SS.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/vo.i18n.json b/imports/i18n/data/vo.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/vo.i18n.json +++ b/imports/i18n/data/vo.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/wa-RR.i18n.json b/imports/i18n/data/wa-RR.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/wa-RR.i18n.json +++ b/imports/i18n/data/wa-RR.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/wa.i18n.json b/imports/i18n/data/wa.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/wa.i18n.json +++ b/imports/i18n/data/wa.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/wo.i18n.json b/imports/i18n/data/wo.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/wo.i18n.json +++ b/imports/i18n/data/wo.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/xh.i18n.json b/imports/i18n/data/xh.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/xh.i18n.json +++ b/imports/i18n/data/xh.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/yi.i18n.json b/imports/i18n/data/yi.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/yi.i18n.json +++ b/imports/i18n/data/yi.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/yo.i18n.json b/imports/i18n/data/yo.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/yo.i18n.json +++ b/imports/i18n/data/yo.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/yue_CN.i18n.json b/imports/i18n/data/yue_CN.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/yue_CN.i18n.json +++ b/imports/i18n/data/yue_CN.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/zgh.i18n.json b/imports/i18n/data/zgh.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/zgh.i18n.json +++ b/imports/i18n/data/zgh.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/zh-CN.i18n.json b/imports/i18n/data/zh-CN.i18n.json index dca85a880..130245c2f 100644 --- a/imports/i18n/data/zh-CN.i18n.json +++ b/imports/i18n/data/zh-CN.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "崩溃", "uncollapse": "展开", "hideCheckedChecklistItems": "隐藏勾选的清单项", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/zh-GB.i18n.json b/imports/i18n/data/zh-GB.i18n.json index abdce361b..b7451620e 100644 --- a/imports/i18n/data/zh-GB.i18n.json +++ b/imports/i18n/data/zh-GB.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/zh-HK.i18n.json b/imports/i18n/data/zh-HK.i18n.json index 033fa557d..72d959b69 100644 --- a/imports/i18n/data/zh-HK.i18n.json +++ b/imports/i18n/data/zh-HK.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/zh-Hans.i18n.json b/imports/i18n/data/zh-Hans.i18n.json index 18694c911..f7cf27768 100644 --- a/imports/i18n/data/zh-Hans.i18n.json +++ b/imports/i18n/data/zh-Hans.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/zh-Hant.i18n.json b/imports/i18n/data/zh-Hant.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/zh-Hant.i18n.json +++ b/imports/i18n/data/zh-Hant.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index 426341be3..90fe6f6d5 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "損毀", "uncollapse": "展開", "hideCheckedChecklistItems": "隱藏已勾選的待辦清單項目", - "hideAllChecklistItems": "隱藏所有待辦清單項目" + "hideAllChecklistItems": "隱藏所有待辦清單項目", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/zh.i18n.json b/imports/i18n/data/zh.i18n.json index a11f233e5..83efb3abc 100644 --- a/imports/i18n/data/zh.i18n.json +++ b/imports/i18n/data/zh.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/zu-ZA.i18n.json b/imports/i18n/data/zu-ZA.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/zu-ZA.i18n.json +++ b/imports/i18n/data/zu-ZA.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } diff --git a/imports/i18n/data/zu.i18n.json b/imports/i18n/data/zu.i18n.json index 8de471b27..420477fcd 100644 --- a/imports/i18n/data/zu.i18n.json +++ b/imports/i18n/data/zu.i18n.json @@ -1255,5 +1255,7 @@ "collapse": "Collapse", "uncollapse": "Uncollapse", "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items" + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support" } From 6d004b209552ccb4bb5f833f9189c3779cd171fc Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 5 Dec 2024 10:33:31 +0200 Subject: [PATCH 157/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 53e7cf532..e7ef4f966 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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: From 05eca83b15d68622388b5e55137f8c5c365cb288 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 5 Dec 2024 13:35:32 +0200 Subject: [PATCH 158/356] v7.71 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e7ef4f966..22ac1ca53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.71 2024-12-05 WeKan ® release This release adds the following new features: diff --git a/Stackerfile.yml b/Stackerfile.yml index 4d6c82f31..36f101cad 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.70.0" +appVersion: "v7.71.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 357ec946d..40144493d 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.70-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.70/wekan-7.70-amd64-windows.zip) +1. [wekan-7.71-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.71/wekan-7.71-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.70-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.71-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 356b1005c..be03450cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.70.0", + "version": "v7.71.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 243a40d33..25cd4aab4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.70.0", + "version": "v7.71.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index f27642357..b644960f0 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.70 + Wekan REST API v7.71 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                          • - Wekan REST API v7.70 + Wekan REST API v7.71
                          • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                            -

                            Wekan REST API v7.70

                            +

                            Wekan REST API v7.71

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

                            diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 8ce722167..2d4df0064 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.70 + version: v7.71 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 7e633c253..de89d06a3 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 = 770, + appVersion = 771, # Increment this for every release. - appMarketingVersion = (defaultText = "7.70.0~2024-12-04"), + appMarketingVersion = (defaultText = "7.71.0~2024-12-05"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index ec863a01d..cee5b339c 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.70' +version: '7.71' base: core20 summary: Open Source kanban description: | From 17d5fae7bbd96eb6721ad869802cc980c9791c7f Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 5 Dec 2024 15:52:14 +0200 Subject: [PATCH 159/356] Updated release scripts: Disabled Docker registry sync. Only pushing WeKan to GitHub, Quay and Docker Hub. Thanks to xet7 ! --- releases/docker-push-wekan.sh | 4 +-- releases/docker-registry-sync.sh | 53 +++++++++++++++++++------------- 2 files changed, 34 insertions(+), 23 deletions(-) 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 +# From f6341de61083f6bf8d29fbb84707f4a75458dd82 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 5 Dec 2024 15:55:49 +0200 Subject: [PATCH 160/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 22ac1ca53..62af439d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ 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 release scripts: Disabled Docker registry sync. Only pushing WeKan to GitHub, Quay and Docker Hub](https://github.com/wekan/wekan/commit/17d5fae7bbd96eb6721ad869802cc980c9791c7f). + Thanks to 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: From 0097674fc068d5a66d21af6367a16aae722ef77d Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Thu, 28 Nov 2024 01:18:51 +0200 Subject: [PATCH 161/356] Added initial support for auto-width lists option --- client/components/boards/boardHeader.jade | 8 ++++++++ client/components/boards/boardHeader.js | 9 +++++++++ client/components/lists/list.jade | 4 ++-- client/components/lists/list.js | 6 ++++++ models/users.js | 16 ++++++++++++++++ server/migrations.js | 13 +++++++++++++ 6 files changed, 54 insertions(+), 2 deletions(-) diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index 06cb0d549..10c4ccd7c 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -23,6 +23,10 @@ template(name="boardHeaderBar") span = currentBoard.stars + a.board-header-btn.js-auto-width-board(class="{{#if isAutoWidth}}is-active{{/if}}" + 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}}") + a.board-header-btn( class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}" title="{{_ currentBoard.permission}}") @@ -66,6 +70,10 @@ template(name="boardHeaderBar") span = currentBoard.stars + a.board-header-btn.js-auto-width-board(class="{{#if isAutoWidth}}is-active{{/if}}" + 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}}") + a.board-header-btn( class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}" title="{{_ currentBoard.permission}}") diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index 22408b3c6..e4c6a7c47 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -38,6 +38,12 @@ BlazeComponent.extendComponent({ return user && user.hasStarred(boardId); }, + isAutoWidth() { + const boardId = Session.get('currentBoard'); + const user = ReactiveCache.getCurrentUser(); + return user && user.hasAutoWidth(boardId); + }, + // Only show the star counter if the number of star is greater than 2 showStarCounter() { const currentBoard = Utils.getCurrentBoard(); @@ -71,6 +77,9 @@ BlazeComponent.extendComponent({ 'click .js-star-board'() { ReactiveCache.getCurrentUser().toggleBoardStar(Session.get('currentBoard')); }, + 'click .js-auto-width-board'() { + ReactiveCache.getCurrentUser().toggleAutoWidth(Session.get('currentBoard')); + }, 'click .js-open-board-menu': Popup.open('boardMenu'), 'click .js-change-visibility': Popup.open('boardChangeVisibility'), 'click .js-watch-board': Popup.open('boardChangeWatch'), diff --git a/client/components/lists/list.jade b/client/components/lists/list.jade index 62a719f92..09129d6ce 100644 --- a/client/components/lists/list.jade +++ b/client/components/lists/list.jade @@ -1,7 +1,7 @@ template(name='list') .list.js-list(id="js-list-{{_id}}" - style="{{#unless collapsed}}min-width:{{listWidth}}px;{{/unless}}" - class="{{#if collapsed}}list-collapsed{{/if}}") + style="{{#unless collapsed}}{{#if autoWidth}}min-{{/if}}width:{{listWidth}}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 c49f00780..a3ac18cdb 100644 --- a/client/components/lists/list.js +++ b/client/components/lists/list.js @@ -200,6 +200,12 @@ BlazeComponent.extendComponent({ const list = Template.currentData(); return user.getListWidth(list.boardId, list._id); }, + + autoWidth() { + const user = ReactiveCache.getCurrentUser(); + const list = Template.currentData(); + return user.hasAutoWidth(list.boardId); + }, }).register('list'); Template.miniList.events({ diff --git a/models/users.js b/models/users.js index 7bee1c0f3..de38602bc 100644 --- a/models/users.js +++ b/models/users.js @@ -716,6 +716,11 @@ Users.helpers({ return _.contains(starredBoards, boardId); }, + hasAutoWidth(boardId) { + const { autoWidths = {} } = this.profile || {}; + return autoWidths[boardId] === true; + }, + invitedBoards() { const { invitedBoards = [] } = this.profile || {}; return Boards.userBoards( @@ -974,6 +979,17 @@ Users.mutations({ }, }; }, + toggleAutoWidth(boardId) { + const { autoWidths = {} } = this.profile || {}; + + autoWidths[boardId] = !autoWidths[boardId]; + + return { + $set: { + 'profile.autoWidths': autoWidths, + }, + }; + }, addInvite(boardId) { return { diff --git a/server/migrations.js b/server/migrations.js index 2930d6fa7..815f3d2c5 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -1489,3 +1489,16 @@ Migrations.add('remove-user-profile-hideCheckedItems', () => { noValidateMulti, ); }); + +Migrations.add('add-default-auto-width-boards', () => { + Users.find().forEach(user => { + if (!user.hasOwnProperty('profile.autoWidths')) { + // Set default auto widths + Users.direct.update( + { _id: user._id }, + { $set: { 'profile.autoWidths': {} } }, + noValidate, + ); + } + }); +}); From e1fd915ecdba96eaa3bf32dcefb83b8e5bf2379d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 6 Dec 2024 08:31:39 +0200 Subject: [PATCH 162/356] Updated ChangeLog. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62af439d7..5ecc7e667 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ Fixing other platforms In Progress. This release adds the following updates: -- [Updated release scripts: Disabled Docker registry sync. Only pushing WeKan to GitHub, Quay and Docker Hub](https://github.com/wekan/wekan/commit/17d5fae7bbd96eb6721ad869802cc980c9791c7f). +- [Disabled syncing of old and unrelated docker containers between docker registries](https://github.com/wekan/wekan/commit/17d5fae7bbd96eb6721ad869802cc980c9791c7f). Thanks to xet7. Thanks to above GitHub users for their contributions and translators for their translations. From a3f70735ac174ac6c1c37008680e30312bf7fdbc Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 6 Dec 2024 11:22:07 +0200 Subject: [PATCH 163/356] Fix WeKan Snap Candidate v7.71 build. There was old version number. Thanks to xet7 ! --- snapcraft.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/snapcraft.yaml b/snapcraft.yaml index cee5b339c..74fa6fc63 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.70/wekan-7.70-amd64.zip - unzip wekan-7.70-amd64.zip - rm wekan-7.70-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.71/wekan-7.71-amd64.zip + unzip wekan-7.71-amd64.zip + rm wekan-7.71-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 2ebff3a8648efd2af8afebbe38727ecea28e47ec Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 7 Dec 2024 18:56:40 +0200 Subject: [PATCH 164/356] Revert adding migration --- server/migrations.js | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/server/migrations.js b/server/migrations.js index 815f3d2c5..2930d6fa7 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -1489,16 +1489,3 @@ Migrations.add('remove-user-profile-hideCheckedItems', () => { noValidateMulti, ); }); - -Migrations.add('add-default-auto-width-boards', () => { - Users.find().forEach(user => { - if (!user.hasOwnProperty('profile.autoWidths')) { - // Set default auto widths - Users.direct.update( - { _id: user._id }, - { $set: { 'profile.autoWidths': {} } }, - noValidate, - ); - } - }); -}); From fb34dd6114f711c083097821d5a91f57c6383cc8 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 7 Dec 2024 18:57:34 +0200 Subject: [PATCH 165/356] Add auto-width board-header toggle --- client/components/boards/boardHeader.jade | 4 ++-- client/components/boards/boardHeader.js | 2 +- models/users.js | 9 +++++++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index 10c4ccd7c..f5012fbf2 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -23,7 +23,7 @@ template(name="boardHeaderBar") span = currentBoard.stars - a.board-header-btn.js-auto-width-board(class="{{#if isAutoWidth}}is-active{{/if}}" + a.board-header-btn.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}}") @@ -70,7 +70,7 @@ template(name="boardHeaderBar") span = currentBoard.stars - a.board-header-btn.js-auto-width-board(class="{{#if isAutoWidth}}is-active{{/if}}" + a.board-header-btn.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}}") diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index e4c6a7c47..e9f2655e7 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -41,7 +41,7 @@ BlazeComponent.extendComponent({ isAutoWidth() { const boardId = Session.get('currentBoard'); const user = ReactiveCache.getCurrentUser(); - return user && user.hasAutoWidth(boardId); + return user && user.isAutoWidth(boardId); }, // Only show the star counter if the number of star is greater than 2 diff --git a/models/users.js b/models/users.js index de38602bc..c649d1c2d 100644 --- a/models/users.js +++ b/models/users.js @@ -417,6 +417,15 @@ Users.attachSchema( 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). From efe50a65eedcaf912dc9bc40cbe3e53d0fcfa4f7 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 7 Dec 2024 18:59:01 +0200 Subject: [PATCH 166/356] Add list constraint support in set-width popup --- client/components/lists/listHeader.jade | 1 + client/components/lists/listHeader.js | 16 +++++++++++++-- models/users.js | 26 ++++++++++++++++++++++++- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade index 037d91fd9..9686330a6 100644 --- a/client/components/lists/listHeader.jade +++ b/client/components/lists/listHeader.jade @@ -191,6 +191,7 @@ 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 diff --git a/client/components/lists/listHeader.js b/client/components/lists/listHeader.js index c50772e9a..027261675 100644 --- a/client/components/lists/listHeader.js +++ b/client/components/lists/listHeader.js @@ -347,14 +347,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(); } }, @@ -365,6 +371,12 @@ BlazeComponent.extendComponent({ return ReactiveCache.getCurrentUser().getListWidth(board, list._id); }, + listConstraintValue() { + const list = Template.currentData(); + const board = list.boardId; + return ReactiveCache.getCurrentUser().getListConstraint(board, list._id); + }, + events() { return [ { diff --git a/models/users.js b/models/users.js index c649d1c2d..2ecdb6f3b 100644 --- a/models/users.js +++ b/models/users.js @@ -417,6 +417,15 @@ 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). @@ -1173,6 +1182,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]) { @@ -1224,12 +1246,14 @@ 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); + check(constraint, Number); const user = ReactiveCache.getCurrentUser(); user.setListWidth(boardId, listId, width); + user.setListConstraint(boardId, listId, constraint); }, applySwimlaneHeight(boardId, swimlaneId, height) { check(boardId, String); From 9576f6807b055b07d8e09413af4d0784dac454d1 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 7 Dec 2024 18:59:30 +0200 Subject: [PATCH 167/356] Add missing functions to users model for auto-width --- models/users.js | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/models/users.js b/models/users.js index 2ecdb6f3b..148c4f71f 100644 --- a/models/users.js +++ b/models/users.js @@ -734,9 +734,9 @@ Users.helpers({ return _.contains(starredBoards, boardId); }, - hasAutoWidth(boardId) { - const { autoWidths = {} } = this.profile || {}; - return autoWidths[boardId] === true; + isAutoWidth(boardId) { + const { autoWidthBoards = {} } = this.profile || {}; + return autoWidthBoards[boardId] === true; }, invitedBoards() { @@ -780,7 +780,7 @@ Users.helpers({ }, getListWidths() { - const { listWidths = {} } = this.profile || {}; + const { listWidths = {}, } = this.profile || {}; return listWidths; }, getListWidth(boardId, listId) { @@ -791,6 +791,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 350; + } + }, getSwimlaneHeights() { const { swimlaneHeights = {} } = this.profile || {}; @@ -998,13 +1010,11 @@ Users.mutations({ }; }, toggleAutoWidth(boardId) { - const { autoWidths = {} } = this.profile || {}; - - autoWidths[boardId] = !autoWidths[boardId]; - + const { autoWidthBoards = {} } = this.profile || {}; + autoWidthBoards[boardId] = !autoWidthBoards[boardId]; return { $set: { - 'profile.autoWidths': autoWidths, + 'profile.autoWidthBoards': autoWidthBoards, }, }; }, From f7aa5d0871ad35994dd46e602719d6a4bd38de2d Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 7 Dec 2024 19:00:08 +0200 Subject: [PATCH 168/356] Add auto-width and constraint support in list --- client/components/lists/list.css | 4 +++- client/components/lists/list.jade | 2 +- client/components/lists/list.js | 8 +++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/client/components/lists/list.css b/client/components/lists/list.css index 9afa62004..b94a87f24 100644 --- a/client/components/lists/list.css +++ b/client/components/lists/list.css @@ -7,11 +7,13 @@ border-left: 1px solid #ccc; padding: 0; float: left; - flex: 1; } [id^="swimlane-"] .list:first-child { min-width: 20px; } +.list.list-auto-width { + flex: 1; +} .list:first-child { border-left: none; flex: none; diff --git a/client/components/lists/list.jade b/client/components/lists/list.jade index 09129d6ce..e39efcad0 100644 --- a/client/components/lists/list.jade +++ b/client/components/lists/list.jade @@ -1,6 +1,6 @@ template(name='list') .list.js-list(id="js-list-{{_id}}" - style="{{#unless collapsed}}{{#if autoWidth}}min-{{/if}}width:{{listWidth}}px;{{/unless}}" + 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 a3ac18cdb..90c23fa52 100644 --- a/client/components/lists/list.js +++ b/client/components/lists/list.js @@ -201,10 +201,16 @@ BlazeComponent.extendComponent({ 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.hasAutoWidth(list.boardId); + return user.isAutoWidth(list.boardId); }, }).register('list'); From f9f05231129e4594d3792d15714945ec3e26608f Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 7 Dec 2024 19:00:51 +0200 Subject: [PATCH 169/356] Updated translations with new texts for auto-width support --- imports/i18n/data/en.i18n.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", From c06bcac9f3d9fd690097d63235c61cbee890bb66 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 7 Dec 2024 19:47:19 +0200 Subject: [PATCH 170/356] Use utility function is autoWidth function --- client/components/lists/list.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/client/components/lists/list.js b/client/components/lists/list.js index 90c23fa52..4e4bf343e 100644 --- a/client/components/lists/list.js +++ b/client/components/lists/list.js @@ -208,9 +208,7 @@ BlazeComponent.extendComponent({ }, autoWidth() { - const user = ReactiveCache.getCurrentUser(); - const list = Template.currentData(); - return user.isAutoWidth(list.boardId); + return user.isAutoWidth(Utils.getCurrentBoardId()); }, }).register('list'); From eb3377deb83648de811754389a28c0846f92a550 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 7 Dec 2024 20:35:15 +0200 Subject: [PATCH 171/356] Revert "Use utility function is autoWidth function" This reverts commit c06bcac9f3d9fd690097d63235c61cbee890bb66. --- client/components/lists/list.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/client/components/lists/list.js b/client/components/lists/list.js index 4e4bf343e..90c23fa52 100644 --- a/client/components/lists/list.js +++ b/client/components/lists/list.js @@ -208,7 +208,9 @@ BlazeComponent.extendComponent({ }, autoWidth() { - return user.isAutoWidth(Utils.getCurrentBoardId()); + const user = ReactiveCache.getCurrentUser(); + const list = Template.currentData(); + return user.isAutoWidth(list.boardId); }, }).register('list'); From 52a02409f0619df0a4b6e26b71e85fab3e645556 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 7 Dec 2024 20:37:11 +0200 Subject: [PATCH 172/356] Use utility function instead of Session.get --- client/components/boards/boardHeader.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index e9f2655e7..b8cf74992 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -78,7 +78,7 @@ BlazeComponent.extendComponent({ ReactiveCache.getCurrentUser().toggleBoardStar(Session.get('currentBoard')); }, 'click .js-auto-width-board'() { - ReactiveCache.getCurrentUser().toggleAutoWidth(Session.get('currentBoard')); + ReactiveCache.getCurrentUser().toggleAutoWidth(Utils.getCurrentBoardId()); }, 'click .js-open-board-menu': Popup.open('boardMenu'), 'click .js-change-visibility': Popup.open('boardChangeVisibility'), From d1e2db9cb8179f55547b3a78c0beec326a2643be Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sat, 7 Dec 2024 21:26:25 +0200 Subject: [PATCH 173/356] Replace Session.get with utility call --- client/components/boards/boardHeader.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index b8cf74992..ea235a526 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -39,7 +39,7 @@ BlazeComponent.extendComponent({ }, isAutoWidth() { - const boardId = Session.get('currentBoard'); + const boardId = Utils.getCurrentBoardId(); const user = ReactiveCache.getCurrentUser(); return user && user.isAutoWidth(boardId); }, From 32770c02add47baf6a9b2b343e0891e121c8dcae Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 8 Dec 2024 01:02:19 +0200 Subject: [PATCH 174/356] Updated translations. --- imports/i18n/data/af.i18n.json | 10 ++-- imports/i18n/data/af_ZA.i18n.json | 10 ++-- imports/i18n/data/ar-DZ.i18n.json | 10 ++-- imports/i18n/data/ar-EG.i18n.json | 10 ++-- imports/i18n/data/ar.i18n.json | 10 ++-- imports/i18n/data/ary.i18n.json | 10 ++-- imports/i18n/data/ast-ES.i18n.json | 10 ++-- imports/i18n/data/az-AZ.i18n.json | 10 ++-- imports/i18n/data/az-LA.i18n.json | 10 ++-- imports/i18n/data/az.i18n.json | 10 ++-- imports/i18n/data/bg.i18n.json | 10 ++-- imports/i18n/data/br.i18n.json | 10 ++-- imports/i18n/data/ca.i18n.json | 10 ++-- imports/i18n/data/ca_ES.i18n.json | 10 ++-- imports/i18n/data/cmn.i18n.json | 10 ++-- imports/i18n/data/cs-CZ.i18n.json | 10 ++-- imports/i18n/data/cs.i18n.json | 10 ++-- imports/i18n/data/cy-GB.i18n.json | 10 ++-- imports/i18n/data/cy.i18n.json | 10 ++-- imports/i18n/data/da.i18n.json | 10 ++-- imports/i18n/data/de-AT.i18n.json | 10 ++-- imports/i18n/data/de-CH.i18n.json | 10 ++-- imports/i18n/data/de.i18n.json | 10 ++-- imports/i18n/data/de_DE.i18n.json | 10 ++-- imports/i18n/data/el-GR.i18n.json | 10 ++-- imports/i18n/data/el.i18n.json | 10 ++-- imports/i18n/data/en-BR.i18n.json | 10 ++-- imports/i18n/data/en-DE.i18n.json | 10 ++-- imports/i18n/data/en-GB.i18n.json | 10 ++-- imports/i18n/data/en-IT.i18n.json | 10 ++-- imports/i18n/data/en-MY.i18n.json | 10 ++-- imports/i18n/data/en-YS.i18n.json | 10 ++-- imports/i18n/data/en_ZA.i18n.json | 10 ++-- imports/i18n/data/eo.i18n.json | 10 ++-- imports/i18n/data/es-AR.i18n.json | 10 ++-- imports/i18n/data/es-CL.i18n.json | 10 ++-- imports/i18n/data/es-LA.i18n.json | 10 ++-- imports/i18n/data/es-MX.i18n.json | 10 ++-- imports/i18n/data/es-PE.i18n.json | 10 ++-- imports/i18n/data/es-PY.i18n.json | 10 ++-- imports/i18n/data/es.i18n.json | 10 ++-- imports/i18n/data/es_CO.i18n.json | 10 ++-- imports/i18n/data/et-EE.i18n.json | 10 ++-- imports/i18n/data/eu.i18n.json | 10 ++-- imports/i18n/data/fa-IR.i18n.json | 82 +++++++++++++++-------------- imports/i18n/data/fa.i18n.json | 10 ++-- imports/i18n/data/fi.i18n.json | 10 ++-- imports/i18n/data/fr-CH.i18n.json | 10 ++-- imports/i18n/data/fr-FR.i18n.json | 10 ++-- imports/i18n/data/fr.i18n.json | 10 ++-- imports/i18n/data/fy-NL.i18n.json | 10 ++-- imports/i18n/data/fy.i18n.json | 10 ++-- imports/i18n/data/gl-ES.i18n.json | 10 ++-- imports/i18n/data/gl.i18n.json | 10 ++-- imports/i18n/data/gu-IN.i18n.json | 10 ++-- imports/i18n/data/he-IL.i18n.json | 10 ++-- imports/i18n/data/he.i18n.json | 14 ++--- imports/i18n/data/hi-IN.i18n.json | 10 ++-- imports/i18n/data/hi.i18n.json | 10 ++-- imports/i18n/data/hr.i18n.json | 10 ++-- imports/i18n/data/hu.i18n.json | 10 ++-- imports/i18n/data/hy.i18n.json | 10 ++-- imports/i18n/data/id.i18n.json | 10 ++-- imports/i18n/data/ig.i18n.json | 10 ++-- imports/i18n/data/it.i18n.json | 10 ++-- imports/i18n/data/ja-HI.i18n.json | 10 ++-- imports/i18n/data/ja.i18n.json | 10 ++-- imports/i18n/data/ka.i18n.json | 10 ++-- imports/i18n/data/km.i18n.json | 10 ++-- imports/i18n/data/ko-KR.i18n.json | 10 ++-- imports/i18n/data/ko.i18n.json | 10 ++-- imports/i18n/data/lt.i18n.json | 10 ++-- imports/i18n/data/lv.i18n.json | 10 ++-- imports/i18n/data/mk.i18n.json | 10 ++-- imports/i18n/data/mn.i18n.json | 10 ++-- imports/i18n/data/ms-MY.i18n.json | 10 ++-- imports/i18n/data/ms.i18n.json | 10 ++-- imports/i18n/data/nb.i18n.json | 10 ++-- imports/i18n/data/nl-NL.i18n.json | 10 ++-- imports/i18n/data/nl.i18n.json | 10 ++-- imports/i18n/data/oc.i18n.json | 10 ++-- imports/i18n/data/or_IN.i18n.json | 10 ++-- imports/i18n/data/pa.i18n.json | 10 ++-- imports/i18n/data/pl-PL.i18n.json | 10 ++-- imports/i18n/data/pl.i18n.json | 10 ++-- imports/i18n/data/pt-BR.i18n.json | 10 ++-- imports/i18n/data/pt.i18n.json | 10 ++-- imports/i18n/data/pt_PT.i18n.json | 10 ++-- imports/i18n/data/ro-RO.i18n.json | 10 ++-- imports/i18n/data/ro.i18n.json | 10 ++-- imports/i18n/data/ru-UA.i18n.json | 10 ++-- imports/i18n/data/ru.i18n.json | 10 ++-- imports/i18n/data/sk.i18n.json | 10 ++-- imports/i18n/data/sl.i18n.json | 10 ++-- imports/i18n/data/sr.i18n.json | 10 ++-- imports/i18n/data/sv.i18n.json | 10 ++-- imports/i18n/data/sw.i18n.json | 10 ++-- imports/i18n/data/ta.i18n.json | 10 ++-- imports/i18n/data/th.i18n.json | 10 ++-- imports/i18n/data/tlh.i18n.json | 10 ++-- imports/i18n/data/tr.i18n.json | 10 ++-- imports/i18n/data/ug.i18n.json | 10 ++-- imports/i18n/data/uk-UA.i18n.json | 32 +++++------ imports/i18n/data/uk.i18n.json | 32 +++++------ imports/i18n/data/uz-AR.i18n.json | 10 ++-- imports/i18n/data/uz-LA.i18n.json | 10 ++-- imports/i18n/data/uz-UZ.i18n.json | 10 ++-- imports/i18n/data/uz.i18n.json | 10 ++-- imports/i18n/data/ve-CC.i18n.json | 10 ++-- imports/i18n/data/ve-PP.i18n.json | 10 ++-- imports/i18n/data/ve.i18n.json | 10 ++-- imports/i18n/data/vi-VN.i18n.json | 10 ++-- imports/i18n/data/vi.i18n.json | 10 ++-- imports/i18n/data/vl-SS.i18n.json | 10 ++-- imports/i18n/data/vo.i18n.json | 10 ++-- imports/i18n/data/wa-RR.i18n.json | 10 ++-- imports/i18n/data/wa.i18n.json | 10 ++-- imports/i18n/data/wo.i18n.json | 10 ++-- imports/i18n/data/xh.i18n.json | 10 ++-- imports/i18n/data/yi.i18n.json | 10 ++-- imports/i18n/data/yo.i18n.json | 10 ++-- imports/i18n/data/yue_CN.i18n.json | 10 ++-- imports/i18n/data/zgh.i18n.json | 10 ++-- imports/i18n/data/zh-CN.i18n.json | 10 ++-- imports/i18n/data/zh-GB.i18n.json | 10 ++-- imports/i18n/data/zh-HK.i18n.json | 10 ++-- imports/i18n/data/zh-Hans.i18n.json | 10 ++-- imports/i18n/data/zh-Hant.i18n.json | 10 ++-- imports/i18n/data/zh-TW.i18n.json | 14 ++--- imports/i18n/data/zh.i18n.json | 10 ++-- imports/i18n/data/zu-ZA.i18n.json | 10 ++-- imports/i18n/data/zu.i18n.json | 10 ++-- 132 files changed, 854 insertions(+), 590 deletions(-) diff --git a/imports/i18n/data/af.i18n.json b/imports/i18n/data/af.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/af.i18n.json +++ b/imports/i18n/data/af.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/af_ZA.i18n.json b/imports/i18n/data/af_ZA.i18n.json index 165774d89..fe9bddb5b 100644 --- a/imports/i18n/data/af_ZA.i18n.json +++ b/imports/i18n/data/af_ZA.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ar-DZ.i18n.json b/imports/i18n/data/ar-DZ.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/ar-DZ.i18n.json +++ b/imports/i18n/data/ar-DZ.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ar-EG.i18n.json b/imports/i18n/data/ar-EG.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/ar-EG.i18n.json +++ b/imports/i18n/data/ar-EG.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index 098a096e0..b11e30175 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "قوائم التّدقيق", "click-to-star": "اضغط لإضافة اللوحة للمفضلة.", "click-to-unstar": "اضغط لحذف اللوحة من المفضلة.", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "غلق", "close-board": "غلق اللوحة", diff --git a/imports/i18n/data/ary.i18n.json b/imports/i18n/data/ary.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/ary.i18n.json +++ b/imports/i18n/data/ary.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ast-ES.i18n.json b/imports/i18n/data/ast-ES.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/ast-ES.i18n.json +++ b/imports/i18n/data/ast-ES.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/az-AZ.i18n.json b/imports/i18n/data/az-AZ.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/az-AZ.i18n.json +++ b/imports/i18n/data/az-AZ.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/az-LA.i18n.json b/imports/i18n/data/az-LA.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/az-LA.i18n.json +++ b/imports/i18n/data/az-LA.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/az.i18n.json b/imports/i18n/data/az.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/az.i18n.json +++ b/imports/i18n/data/az.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/bg.i18n.json b/imports/i18n/data/bg.i18n.json index f85ade3be..5a3353b36 100644 --- a/imports/i18n/data/bg.i18n.json +++ b/imports/i18n/data/bg.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "Списъци със задачи", "click-to-star": "Click to star this board.", "click-to-unstar": "Натиснете, за да премахнете това табло от любими.", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Клипборда или с драг & дроп", "close": "Затвори", "close-board": "Затвори Таблото", diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index da1359e20..c8f47ec36 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ca.i18n.json b/imports/i18n/data/ca.i18n.json index 6b3e32b23..2470b1b33 100644 --- a/imports/i18n/data/ca.i18n.json +++ b/imports/i18n/data/ca.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Portaretalls o estirar i amollar", "close": "Tanca", "close-board": "Tanca tauler", diff --git a/imports/i18n/data/ca_ES.i18n.json b/imports/i18n/data/ca_ES.i18n.json index ae93981b3..9c41a0a9b 100644 --- a/imports/i18n/data/ca_ES.i18n.json +++ b/imports/i18n/data/ca_ES.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/cmn.i18n.json b/imports/i18n/data/cmn.i18n.json index 35a2a45e6..9ce9c594a 100644 --- a/imports/i18n/data/cmn.i18n.json +++ b/imports/i18n/data/cmn.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/cs-CZ.i18n.json b/imports/i18n/data/cs-CZ.i18n.json index fd7ea36c5..3b2bf64b4 100644 --- a/imports/i18n/data/cs-CZ.i18n.json +++ b/imports/i18n/data/cs-CZ.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Schránka nebo potáhnout a pustit", "close": "Zavřít", "close-board": "Zavřít tablo", diff --git a/imports/i18n/data/cs.i18n.json b/imports/i18n/data/cs.i18n.json index 79bbea204..ad907b25f 100644 --- a/imports/i18n/data/cs.i18n.json +++ b/imports/i18n/data/cs.i18n.json @@ -86,10 +86,10 @@ "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": "Nastavit šířku seznamu", - "set-list-width": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", - "list-width-error-message": "Šířka seznamu musí být kladné celé číslo", + "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", "setSwimlaneHeightPopup-title": "Nastavit výšku swimlane", "set-swimlane-height": "Nastavit výšku swimlane", "set-swimlane-height-value": "Výška swimlane (pixely)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Schránka nebo potáhnout a pustit", "close": "Zavřít", "close-board": "Zavřít tablo", diff --git a/imports/i18n/data/cy-GB.i18n.json b/imports/i18n/data/cy-GB.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/cy-GB.i18n.json +++ b/imports/i18n/data/cy-GB.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/cy.i18n.json b/imports/i18n/data/cy.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/cy.i18n.json +++ b/imports/i18n/data/cy.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/da.i18n.json b/imports/i18n/data/da.i18n.json index ae231633b..b3bbb0e4e 100644 --- a/imports/i18n/data/da.i18n.json +++ b/imports/i18n/data/da.i18n.json @@ -86,10 +86,10 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (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", "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)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Udklipsholder eller træk-og-slip", "close": "Luk", "close-board": "Luk tavle", diff --git a/imports/i18n/data/de-AT.i18n.json b/imports/i18n/data/de-AT.i18n.json index 8965770fc..f12eeed87 100644 --- a/imports/i18n/data/de-AT.i18n.json +++ b/imports/i18n/data/de-AT.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Zwischenablage oder Drag & Drop", "close": "Schließen", "close-board": "Board schließen", diff --git a/imports/i18n/data/de-CH.i18n.json b/imports/i18n/data/de-CH.i18n.json index fb3ae85a3..872e55f9e 100644 --- a/imports/i18n/data/de-CH.i18n.json +++ b/imports/i18n/data/de-CH.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Zwischenablage oder Drag & Drop", "close": "Schliessen", "close-board": "Board schliessen", diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index 19078f0f7..b95f2a631 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -86,10 +86,10 @@ "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 minimale Breite ein", - "set-list-width-value": "Minimale Breite (Pixel)", - "list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein", + "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", "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)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Zwischenablage oder Drag & Drop", "close": "Schließen", "close-board": "Board schließen", diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index b03b54f7a..66e454f83 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -86,10 +86,10 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", - "list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein", + "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", "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)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Zwischenablage oder Drag & Drop", "close": "Schließen", "close-board": "Board schließen", diff --git a/imports/i18n/data/el-GR.i18n.json b/imports/i18n/data/el-GR.i18n.json index b9969baf0..0b49d12d8 100644 --- a/imports/i18n/data/el-GR.i18n.json +++ b/imports/i18n/data/el-GR.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "Λίστες Ελέγχου - Checklists", "click-to-star": "Κλικ για να προσθέσετε αστεράκι στον πίνακα", "click-to-unstar": "Κλικ για να αφαιρέσετε αστεράκι από τον πίνακα", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard ή drag & drop", "close": "Κλείσιμο", "close-board": "Κλείσιμο Πίνακα", diff --git a/imports/i18n/data/el.i18n.json b/imports/i18n/data/el.i18n.json index 184c00e6d..82f1bf7a2 100644 --- a/imports/i18n/data/el.i18n.json +++ b/imports/i18n/data/el.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "Λίστες Ελέγχου - Checklists", "click-to-star": "Κλικ για να προσθέσετε αστεράκι στον πίνακα", "click-to-unstar": "Κλικ για να αφαιρέσετε αστεράκι από τον πίνακα", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard ή drag & drop", "close": "Κλείσιμο", "close-board": "Κλείσιμο Πίνακα", diff --git a/imports/i18n/data/en-BR.i18n.json b/imports/i18n/data/en-BR.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/en-BR.i18n.json +++ b/imports/i18n/data/en-BR.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/en-DE.i18n.json b/imports/i18n/data/en-DE.i18n.json index b441a0d85..eddba87f4 100644 --- a/imports/i18n/data/en-DE.i18n.json +++ b/imports/i18n/data/en-DE.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/en-GB.i18n.json b/imports/i18n/data/en-GB.i18n.json index 98fb68039..1c7a7ba8e 100644 --- a/imports/i18n/data/en-GB.i18n.json +++ b/imports/i18n/data/en-GB.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/en-IT.i18n.json b/imports/i18n/data/en-IT.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/en-IT.i18n.json +++ b/imports/i18n/data/en-IT.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/en-MY.i18n.json b/imports/i18n/data/en-MY.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/en-MY.i18n.json +++ b/imports/i18n/data/en-MY.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/en-YS.i18n.json b/imports/i18n/data/en-YS.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/en-YS.i18n.json +++ b/imports/i18n/data/en-YS.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/en_ZA.i18n.json b/imports/i18n/data/en_ZA.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/en_ZA.i18n.json +++ b/imports/i18n/data/en_ZA.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index c54bdc5b7..91ca06b28 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Fermi", "close-board": "Close Board", diff --git a/imports/i18n/data/es-AR.i18n.json b/imports/i18n/data/es-AR.i18n.json index 8ba4b3643..0c59281cc 100644 --- a/imports/i18n/data/es-AR.i18n.json +++ b/imports/i18n/data/es-AR.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Portapapeles o arrastrar y soltar", "close": "Cerrar", "close-board": "Cerrar Tablero", diff --git a/imports/i18n/data/es-CL.i18n.json b/imports/i18n/data/es-CL.i18n.json index e519c373b..5791c326c 100644 --- a/imports/i18n/data/es-CL.i18n.json +++ b/imports/i18n/data/es-CL.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "el portapapeles o con arrastrar y soltar", "close": "Cerrar", "close-board": "Cerrar el tablero", diff --git a/imports/i18n/data/es-LA.i18n.json b/imports/i18n/data/es-LA.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/es-LA.i18n.json +++ b/imports/i18n/data/es-LA.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/es-MX.i18n.json b/imports/i18n/data/es-MX.i18n.json index 07be2c9d1..c3a80aacb 100644 --- a/imports/i18n/data/es-MX.i18n.json +++ b/imports/i18n/data/es-MX.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/es-PE.i18n.json b/imports/i18n/data/es-PE.i18n.json index 9b0722ce3..3c561d6a5 100644 --- a/imports/i18n/data/es-PE.i18n.json +++ b/imports/i18n/data/es-PE.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "el portapapeles o con arrastrar y soltar", "close": "Cerrar", "close-board": "Cerrar el tablero", diff --git a/imports/i18n/data/es-PY.i18n.json b/imports/i18n/data/es-PY.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/es-PY.i18n.json +++ b/imports/i18n/data/es-PY.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 965a56915..53c987406 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "el portapapeles o con arrastrar y soltar", "close": "Cerrar", "close-board": "Cerrar el tablero", diff --git a/imports/i18n/data/es_CO.i18n.json b/imports/i18n/data/es_CO.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/es_CO.i18n.json +++ b/imports/i18n/data/es_CO.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/et-EE.i18n.json b/imports/i18n/data/et-EE.i18n.json index f61aa6a31..2d559ecc3 100644 --- a/imports/i18n/data/et-EE.i18n.json +++ b/imports/i18n/data/et-EE.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Lõikeplaat või drag & drop", "close": "Sulge", "close-board": "Sulge juhatus", diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 68d8f88c8..934ba16f3 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -86,10 +86,10 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", - "list-width-error-message": "Zerrendaren zabalerak zenbaki oso positiboa izan behar du", + "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", "setSwimlaneHeightPopup-title": "Errailaren altuera ezarri", "set-swimlane-height": "Errailaren altuera ezarri", "set-swimlane-height-value": "Errailaren altuera (pixelak)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Kopiatu eta itsatsi edo arrastatu eta jaregin", "close": "Itxi", "close-board": "Itxi arbela", diff --git a/imports/i18n/data/fa-IR.i18n.json b/imports/i18n/data/fa-IR.i18n.json index c1217c207..9b29fe385 100644 --- a/imports/i18n/data/fa-IR.i18n.json +++ b/imports/i18n/data/fa-IR.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s به آرشیو انتقال یافت", "activity-attached": "%s به %s پیوست شد", "activity-created": "%s ایجاد شد", - "activity-changedListTitle": "renamed list to %s", + "activity-changedListTitle": "نام لیست به %s تغییر یافت", "activity-customfield-created": "فیلد سفارشی %s ایجاد شد", "activity-excluded": "%s از %s مستثنی گردید", "activity-imported": "%s از %s وارد %s شد", @@ -86,14 +86,14 @@ "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 Min Width", - "set-list-width-value": "Min 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", + "setSwimlaneHeightPopup-title": "تنظیم ارتفاع مسیر", + "set-swimlane-height": "تنظیم ارتفاع مسیر", + "set-swimlane-height-value": "تنظیم ارتفاع مسیر ( پیکسل )", + "swimlane-height-error-message": "مقدار ارتقاع مسیر باید یک عدد مثبت باشد", "add-swimlane": "افزودن مسیر شنا", "add-subtask": "افزودن زیر وظیفه", "add-checklist": "افزودن چک‌لیست", @@ -101,10 +101,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": "اعضا", @@ -144,7 +144,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": "تغییر تصویر پس زمینه", @@ -264,6 +264,8 @@ "checklists": "چک‌لیست‌ها", "click-to-star": "با کلیک کردن ستاره بدهید", "click-to-unstar": "با کلیک کردن ستاره را کم کنید", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "ذخیره در حافظه ویا بردار-رهاکن", "close": "بستن", "close-board": "بستن برد", @@ -295,13 +297,13 @@ "color-white": "سفید", "color-yellow": "زرد", "unset-color": "بازنشانی", - "comments": "Comments", + "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": "کارگر", @@ -445,7 +447,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": "بازگشت به صفحه بردها.", - "show-activities": "Show Activities", + "show-activities": "نمایش فعالیت ها", "headerBarCreateBoardPopup-title": "ایجاد برد", "home": "خانه", "import": "وارد کردن", @@ -514,11 +516,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": "تغییر عضو برای انتخاب‌شده‌ها", @@ -574,14 +576,14 @@ "select-board": "انتخاب برد", "set-wip-limit-value": "تعیین بیشینه تعداد وظایف در این فهرست", "setWipLimitPopup-title": "Set WIP Limit", - "shortcut-add-self": "Add yourself to current card", + "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": "کلید نوار جستجوی جانبی", @@ -743,9 +745,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": "زیرنویس با مسیر کامل", @@ -889,9 +891,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": "بازگردانی همه", @@ -959,7 +961,7 @@ "delete-linked-card-before-this-card": "پیش از این‌که کارت‌های لینک شده به این کارت را حذف نکنید، نمی‌توانید این کارت را حذف کنید.", "delete-linked-cards-before-this-list": "پیش از حذف کارت‌هایی که به کارت‌های این لیست لینک شده‌اند نمی‌توانید این لیست را حذف کنید.", "hide-checked-items": "مخفی کردن انتخاب‌شده‌ها", - "hide-finished-checklist": "Hide finished checklist", + "hide-finished-checklist": "پنهان کردن چک لیست های تمام شده", "task": "کار", "create-task": "ایجاد کار", "ok": "تأیید", @@ -996,7 +998,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": "جست و جو در همه برد ها", @@ -1197,10 +1199,10 @@ "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", + "newlineBecomesNewChecklistItem": "هر خط از متن به یک آیتم از چک لیست تبدیل شود", + "newLineNewItem": "یک خط از متن = یک آیتم چک لیست", "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", - "originOrder": "original order", + "originOrder": "مرتب سازی اصلی", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1234,13 +1236,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", @@ -1254,8 +1256,8 @@ "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" + "hideCheckedChecklistItems": "پنهان کردن موارد انجام شده چک لیست", + "hideAllChecklistItems": "پنهان کردن همه موارد چک لیست", + "support": "پشتیبانی", + "supportPopup-title": "پشتیبانی" } diff --git a/imports/i18n/data/fa.i18n.json b/imports/i18n/data/fa.i18n.json index c1217c207..e3fd380ff 100644 --- a/imports/i18n/data/fa.i18n.json +++ b/imports/i18n/data/fa.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "چک‌لیست‌ها", "click-to-star": "با کلیک کردن ستاره بدهید", "click-to-unstar": "با کلیک کردن ستاره را کم کنید", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "ذخیره در حافظه ویا بردار-رهاکن", "close": "بستن", "close-board": "بستن برد", diff --git a/imports/i18n/data/fi.i18n.json b/imports/i18n/data/fi.i18n.json index da14d8cb4..773acf797 100644 --- a/imports/i18n/data/fi.i18n.json +++ b/imports/i18n/data/fi.i18n.json @@ -86,10 +86,10 @@ "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 minimi leveys", - "set-list-width-value": "Minimi 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", "setSwimlaneHeightPopup-title": "Aseta uimaradan korkeus", "set-swimlane-height": "Aseta uimaradan korkeus", "set-swimlane-height-value": "Uimaradan korkeus (pikseliä)", @@ -264,6 +264,8 @@ "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": "Klikkaa ottaaksesi käyttöön automaattinen listan leveys.", + "click-to-disable-auto-width": "Klikkaa poistaaksesi käytöstä automaattinen listan leveys.", "clipboard": "Leikepöytä tai raahaa ja pudota", "close": "Sulje", "close-board": "Sulje taulu", diff --git a/imports/i18n/data/fr-CH.i18n.json b/imports/i18n/data/fr-CH.i18n.json index bd6e340e5..665cccbe6 100644 --- a/imports/i18n/data/fr-CH.i18n.json +++ b/imports/i18n/data/fr-CH.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/fr-FR.i18n.json b/imports/i18n/data/fr-FR.i18n.json index ea95224fd..68b7689fc 100644 --- a/imports/i18n/data/fr-FR.i18n.json +++ b/imports/i18n/data/fr-FR.i18n.json @@ -86,10 +86,10 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (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", "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)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Presse-papier ou glisser-déposer", "close": "Fermer", "close-board": "Fermer le tableau", diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index 06811307d..c3ef2da4e 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -86,10 +86,10 @@ "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 mini.", - "set-list-width-value": "Largeur mini. (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", "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)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Presse-papier ou glisser-déposer", "close": "Fermer", "close-board": "Fermer le tableau", diff --git a/imports/i18n/data/fy-NL.i18n.json b/imports/i18n/data/fy-NL.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/fy-NL.i18n.json +++ b/imports/i18n/data/fy-NL.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/fy.i18n.json b/imports/i18n/data/fy.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/fy.i18n.json +++ b/imports/i18n/data/fy.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/gl-ES.i18n.json b/imports/i18n/data/gl-ES.i18n.json index 327b3aa36..34852bc1f 100644 --- a/imports/i18n/data/gl-ES.i18n.json +++ b/imports/i18n/data/gl-ES.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/gl.i18n.json b/imports/i18n/data/gl.i18n.json index 633664c61..66516e43f 100644 --- a/imports/i18n/data/gl.i18n.json +++ b/imports/i18n/data/gl.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/gu-IN.i18n.json b/imports/i18n/data/gu-IN.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/gu-IN.i18n.json +++ b/imports/i18n/data/gu-IN.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/he-IL.i18n.json b/imports/i18n/data/he-IL.i18n.json index da5786625..57bbcdbea 100644 --- a/imports/i18n/data/he-IL.i18n.json +++ b/imports/i18n/data/he-IL.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index b92ab7e7d..cde10066f 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -86,10 +86,10 @@ "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", "setSwimlaneHeightPopup-title": "הגדרת גובה מסלול", "set-swimlane-height": "הגדרת גובה מסלול", "set-swimlane-height-value": "גובה מסלול (פיקסלים)", @@ -264,6 +264,8 @@ "checklists": "רשימות", "click-to-star": "יש ללחוץ להוספת הלוח למועדפים.", "click-to-unstar": "יש ללחוץ להסרת הלוח מהמועדפים.", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "לוח גזירים או גרירה ושחרור", "close": "סגירה", "close-board": "סגירת לוח", @@ -1256,6 +1258,6 @@ "uncollapse": "ביטול צמצום", "hideCheckedChecklistItems": "הסתרת פריטים שסומנו ברשימת הפריטים", "hideAllChecklistItems": "הסתרת כל הפריטים ברשימת המטלות", - "support": "Support", - "supportPopup-title": "Support" + "support": "תמיכה", + "supportPopup-title": "תמיכה" } diff --git a/imports/i18n/data/hi-IN.i18n.json b/imports/i18n/data/hi-IN.i18n.json index 0ac4ebca3..56dff1efa 100644 --- a/imports/i18n/data/hi-IN.i18n.json +++ b/imports/i18n/data/hi-IN.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "जांच सूची", "click-to-star": "इस बोर्ड को स्टार करने के लिए क्लिक करें ।", "click-to-unstar": "इस बोर्ड को अनस्टार करने के लिए क्लिक करें।", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "क्लिपबोर्ड या खींचें और छोड़ें", "close": "बंद करे", "close-board": "बोर्ड बंद करे", diff --git a/imports/i18n/data/hi.i18n.json b/imports/i18n/data/hi.i18n.json index 46ad0b589..fc6a002dd 100644 --- a/imports/i18n/data/hi.i18n.json +++ b/imports/i18n/data/hi.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "जांच सूची", "click-to-star": "इस बोर्ड को स्टार करने के लिए क्लिक करें ।", "click-to-unstar": "इस बोर्ड को अनस्टार करने के लिए क्लिक करें।", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "क्लिपबोर्ड या खींचें और छोड़ें", "close": "बंद करे", "close-board": "बोर्ड बंद करे", diff --git a/imports/i18n/data/hr.i18n.json b/imports/i18n/data/hr.i18n.json index 2463809f9..9e0cf1940 100644 --- a/imports/i18n/data/hr.i18n.json +++ b/imports/i18n/data/hr.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Međuspremnik ili povucite i ispustite", "close": "Zatvori", "close-board": "Zatvori ploču", diff --git a/imports/i18n/data/hu.i18n.json b/imports/i18n/data/hu.i18n.json index f27d5b9ac..7658f8694 100644 --- a/imports/i18n/data/hu.i18n.json +++ b/imports/i18n/data/hu.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Vágólap vagy fogd és vidd", "close": "Bezárás", "close-board": "Tábla bezárása", diff --git a/imports/i18n/data/hy.i18n.json b/imports/i18n/data/hy.i18n.json index 7b74a32a0..4644cf7d1 100644 --- a/imports/i18n/data/hy.i18n.json +++ b/imports/i18n/data/hy.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/id.i18n.json b/imports/i18n/data/id.i18n.json index 0525ada95..1eea1d628 100644 --- a/imports/i18n/data/id.i18n.json +++ b/imports/i18n/data/id.i18n.json @@ -86,10 +86,10 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", - "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", "setSwimlaneHeightPopup-title": "Atur Tinggi Swimlane ", "set-swimlane-height": "Atur Tinggi Swimlane ", "set-swimlane-height-value": "Tinggi Swimlane (pixel)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard atau drag & drop", "close": "Tutup", "close-board": "Tutup Panel", diff --git a/imports/i18n/data/ig.i18n.json b/imports/i18n/data/ig.i18n.json index ee9834537..df8c9b31b 100644 --- a/imports/i18n/data/ig.i18n.json +++ b/imports/i18n/data/ig.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/it.i18n.json b/imports/i18n/data/it.i18n.json index aed108433..7003d33ac 100644 --- a/imports/i18n/data/it.i18n.json +++ b/imports/i18n/data/it.i18n.json @@ -86,10 +86,10 @@ "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": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", - "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", "setSwimlaneHeightPopup-title": "Impostare l'altezza della corsia", "set-swimlane-height": "Impostare l'altezza della corsia", "set-swimlane-height-value": "Altezza della corsia (in pixel)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Appunti o trascinamento", "close": "Chiudi", "close-board": "Chiudi bacheca", diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index 999618a4b..bb06cc1ea 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min Width (pixels)", - "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", "setSwimlaneHeightPopup-title": "スイムレーンの高さを設定", "set-swimlane-height": "スイムレーンの高さを設定", "set-swimlane-height-value": "スイムレーンの高さ(ピクセル)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index 3631a45a3..3687155a8 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min Width (pixels)", - "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", "setSwimlaneHeightPopup-title": "スイムレーンの高さを設定", "set-swimlane-height": "スイムレーンの高さを設定", "set-swimlane-height-value": "スイムレーンの高さ(ピクセル)", @@ -264,6 +264,8 @@ "checklists": "チェックリスト", "click-to-star": "ボードにスターをつける", "click-to-unstar": "ボードからスターを外す", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "クリップボードもしくはドラッグ&ドロップ", "close": "閉じる", "close-board": "ボードを閉じる", diff --git a/imports/i18n/data/ka.i18n.json b/imports/i18n/data/ka.i18n.json index f95399cee..7e4476ed5 100644 --- a/imports/i18n/data/ka.i18n.json +++ b/imports/i18n/data/ka.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "კატალოგი", "click-to-star": "დააჭირეთ დაფის ვარსკვლავით მოსანიშნად", "click-to-unstar": "დააკლიკეთ დაფიდან ვარსკვლავის მოსახსნელად.", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard ან drag & drop", "close": "დახურვა", "close-board": "დაფის დახურვა", diff --git a/imports/i18n/data/km.i18n.json b/imports/i18n/data/km.i18n.json index aaebf6b94..0a7eee2e5 100644 --- a/imports/i18n/data/km.i18n.json +++ b/imports/i18n/data/km.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ko-KR.i18n.json b/imports/i18n/data/ko-KR.i18n.json index c4a797d6b..6069a14d4 100644 --- a/imports/i18n/data/ko-KR.i18n.json +++ b/imports/i18n/data/ko-KR.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min Width (pixels)", - "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", "setSwimlaneHeightPopup-title": "Swimlane 높이 설정", "set-swimlane-height": "Swimlane 높이 설정", "set-swimlane-height-value": "Swimlane 높이 (픽셀)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ko.i18n.json b/imports/i18n/data/ko.i18n.json index 049c78239..18abba6fa 100644 --- a/imports/i18n/data/ko.i18n.json +++ b/imports/i18n/data/ko.i18n.json @@ -86,10 +86,10 @@ "add-card": "카드 추가", "add-card-to-top-of-list": "리스트 맨앞에 카드를 추가함", "add-card-to-bottom-of-list": "리스트 맨뒤에 카드를 추가함", - "setListWidthPopup-title": "목록 너비 설정", - "set-list-width": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", - "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", "setSwimlaneHeightPopup-title": "Swimlane 높이 설정", "set-swimlane-height": "Swimlane 높이 설정", "set-swimlane-height-value": "Swimlane 높이 (픽셀)", @@ -264,6 +264,8 @@ "checklists": "체크리스트", "click-to-star": "보드에 별 추가.", "click-to-unstar": "보드에 별 삭제.", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "클립보드 또는 드래그 앤 드롭", "close": "닫기", "close-board": "보드 닫기", diff --git a/imports/i18n/data/lt.i18n.json b/imports/i18n/data/lt.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/lt.i18n.json +++ b/imports/i18n/data/lt.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/lv.i18n.json b/imports/i18n/data/lv.i18n.json index 2f2b05400..4b78b59d2 100644 --- a/imports/i18n/data/lv.i18n.json +++ b/imports/i18n/data/lv.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Starpliktuve vai drag & drop", "close": "Aizvērt", "close-board": "Aizvērt dēli", diff --git a/imports/i18n/data/mk.i18n.json b/imports/i18n/data/mk.i18n.json index 14d2d075a..c646dc6c0 100644 --- a/imports/i18n/data/mk.i18n.json +++ b/imports/i18n/data/mk.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "Списъци със задачи", "click-to-star": "Click to star this board.", "click-to-unstar": "Натиснете, за да премахнете това табло от любими.", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Клипборда или с драг & дроп", "close": "Затвори", "close-board": "Затвори Табла", diff --git a/imports/i18n/data/mn.i18n.json b/imports/i18n/data/mn.i18n.json index 5f5a81921..c0cf779b0 100644 --- a/imports/i18n/data/mn.i18n.json +++ b/imports/i18n/data/mn.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/ms-MY.i18n.json +++ b/imports/i18n/data/ms-MY.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ms.i18n.json b/imports/i18n/data/ms.i18n.json index 5737c9559..6d4bb13bc 100644 --- a/imports/i18n/data/ms.i18n.json +++ b/imports/i18n/data/ms.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "Senarai semak", "click-to-star": "Klik untuk beri bintang", "click-to-unstar": "Klik untuk hapus bintang", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "papanklip atau seret-buang", "close": "Tutup", "close-board": "Tutup Papan", diff --git a/imports/i18n/data/nb.i18n.json b/imports/i18n/data/nb.i18n.json index ae0bb43bc..7d42180fe 100644 --- a/imports/i18n/data/nb.i18n.json +++ b/imports/i18n/data/nb.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "Sjekklister", "click-to-star": "Favorittmerke Tavlen", "click-to-unstar": "Fjern favorittmerke Tavlen", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Utklippstavle eller Dra og Slipp", "close": "Lukk", "close-board": "Lukk Tavle", diff --git a/imports/i18n/data/nl-NL.i18n.json b/imports/i18n/data/nl-NL.i18n.json index 8dd29208a..a50fcd209 100644 --- a/imports/i18n/data/nl-NL.i18n.json +++ b/imports/i18n/data/nl-NL.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Vanuit clipboard of sleep het bestand hierheen", "close": "Sluiten", "close-board": "Sluit bord", diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 82650112f..8e9462757 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -86,10 +86,10 @@ "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 Min. Breedte In", - "set-list-width-value": "Min. Breedte (pixels)", - "list-width-error-message": "Lijstbreedte moet positief geheel getal zijn", + "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", "setSwimlaneHeightPopup-title": "Stel Swimlane-hoogte in", "set-swimlane-height": "Stel Swimlane-hoogte in", "set-swimlane-height-value": "Swimlane-hoogte (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Afbeelding Kopiëren & Plakken", "close": "Sluiten", "close-board": "Sluit bord", diff --git a/imports/i18n/data/oc.i18n.json b/imports/i18n/data/oc.i18n.json index dc01e6913..8812cac98 100644 --- a/imports/i18n/data/oc.i18n.json +++ b/imports/i18n/data/oc.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Copiar o far limpar", "close": "Tampar", "close-board": "Tampar lo tablèu", diff --git a/imports/i18n/data/or_IN.i18n.json b/imports/i18n/data/or_IN.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/or_IN.i18n.json +++ b/imports/i18n/data/or_IN.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/pa.i18n.json b/imports/i18n/data/pa.i18n.json index 223fc6d32..5de61eab8 100644 --- a/imports/i18n/data/pa.i18n.json +++ b/imports/i18n/data/pa.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/pl-PL.i18n.json b/imports/i18n/data/pl-PL.i18n.json index 3e9db697a..eea63a1c6 100644 --- a/imports/i18n/data/pl-PL.i18n.json +++ b/imports/i18n/data/pl-PL.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "Czeklisty", "click-to-star": "Kliknij by odznaczyć tę tablicę.", "click-to-unstar": "Kliknij by usunąć odznaczenie tej tablicy.", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Schowka lub poprzez przeciągnij & upuść", "close": "Zamknij", "close-board": "Zamknij tablicę", diff --git a/imports/i18n/data/pl.i18n.json b/imports/i18n/data/pl.i18n.json index 117ea5100..ca1e19a19 100644 --- a/imports/i18n/data/pl.i18n.json +++ b/imports/i18n/data/pl.i18n.json @@ -86,10 +86,10 @@ "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 min. szerokość", - "set-list-width-value": "Min. szerokość (piksele)", - "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", "setSwimlaneHeightPopup-title": "Ustaw wysokość ścieżki", "set-swimlane-height": "Ustaw wysokość ścieżki", "set-swimlane-height-value": "Wysokość ścieżki (w pikselach)", @@ -264,6 +264,8 @@ "checklists": "Czeklisty", "click-to-star": "Kliknij by odznaczyć tę tablicę.", "click-to-unstar": "Kliknij by usunąć odznaczenie tej tablicy.", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Schowka lub poprzez przeciągnij & upuść", "close": "Zamknij", "close-board": "Zamknij tablicę", diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index ddd508222..7ac600357 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -86,10 +86,10 @@ "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 Mínima", - "set-list-width-value": "Largura Mínima (píxeis)", - "list-width-error-message": "Largura da Lista deve ser um inteiro 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", "setSwimlaneHeightPopup-title": "Definir Altura da Raia", "set-swimlane-height": "Definir Altura da Raia", "set-swimlane-height-value": "Altura da Raia (pixels)", @@ -264,6 +264,8 @@ "checklists": "Listas de verificação", "click-to-star": "Marcar quadro como favorito.", "click-to-unstar": "Remover quadro dos favoritos.", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Área de Transferência ou arraste e solte", "close": "Fechar", "close-board": "Fechar Quadro", diff --git a/imports/i18n/data/pt.i18n.json b/imports/i18n/data/pt.i18n.json index 80cf00070..ef87ff45a 100644 --- a/imports/i18n/data/pt.i18n.json +++ b/imports/i18n/data/pt.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Área de Transferência ou arraste e solte", "close": "Fechar", "close-board": "Fechar o Quadro", diff --git a/imports/i18n/data/pt_PT.i18n.json b/imports/i18n/data/pt_PT.i18n.json index b4543494a..8cc2808aa 100644 --- a/imports/i18n/data/pt_PT.i18n.json +++ b/imports/i18n/data/pt_PT.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Área de Transferência ou arraste e solte", "close": "Fechar", "close-board": "Fechar o Quadro", diff --git a/imports/i18n/data/ro-RO.i18n.json b/imports/i18n/data/ro-RO.i18n.json index 7e875688a..6f9a09e12 100644 --- a/imports/i18n/data/ro-RO.i18n.json +++ b/imports/i18n/data/ro-RO.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Închide", "close-board": "Close Board", diff --git a/imports/i18n/data/ro.i18n.json b/imports/i18n/data/ro.i18n.json index 5d83a6fb0..d2feb3c2a 100644 --- a/imports/i18n/data/ro.i18n.json +++ b/imports/i18n/data/ro.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ru-UA.i18n.json b/imports/i18n/data/ru-UA.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/ru-UA.i18n.json +++ b/imports/i18n/data/ru-UA.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ru.i18n.json b/imports/i18n/data/ru.i18n.json index d36864b63..e6d57926a 100644 --- a/imports/i18n/data/ru.i18n.json +++ b/imports/i18n/data/ru.i18n.json @@ -86,10 +86,10 @@ "add-card": "Добавить карточку", "add-card-to-top-of-list": "Добавить карточку в начало списка", "add-card-to-bottom-of-list": "Добавить карточку в конец списка", - "setListWidthPopup-title": "Настроить ширину списка", - "set-list-width": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", - "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", "setSwimlaneHeightPopup-title": "Настроить высоту дорожки", "set-swimlane-height": "Настроить высоту дорожки", "set-swimlane-height-value": "Высота дорожки (px)", @@ -264,6 +264,8 @@ "checklists": "Контрольные списки", "click-to-star": "Добавить в «Избранное»", "click-to-unstar": "Удалить из «Избранного»", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Буфер обмена или drag & drop", "close": "Закрыть", "close-board": "Закрыть доску", diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index 4a77c5a3f..a25511e01 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/sl.i18n.json b/imports/i18n/data/sl.i18n.json index 2ed0362c6..1668cf1f9 100644 --- a/imports/i18n/data/sl.i18n.json +++ b/imports/i18n/data/sl.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Odložišče ali povleci & spusti", "close": "Zapri", "close-board": "Zapri tablo", diff --git a/imports/i18n/data/sr.i18n.json b/imports/i18n/data/sr.i18n.json index b05cbe6b5..fb92041d2 100644 --- a/imports/i18n/data/sr.i18n.json +++ b/imports/i18n/data/sr.i18n.json @@ -86,10 +86,10 @@ "add-card": "Додај картицу са задатком", "add-card-to-top-of-list": "Додај картицу/задатак на врх деонице", "add-card-to-bottom-of-list": "Додај картицу/задатак на дно деонице", - "setListWidthPopup-title": "Подеси ширину листе", - "set-list-width": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", - "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", "setSwimlaneHeightPopup-title": "Подеси висину стазе", "set-swimlane-height": "Подеси висину стазе", "set-swimlane-height-value": "Висина стазе (у пикселима)", @@ -264,6 +264,8 @@ "checklists": "Спискови", "click-to-star": "Притисни да означиш звездицом ову књигу пословања.", "click-to-unstar": "Притисни да уклониш звездицу са ове пословне књиге.", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Из историје или пренеси и испусти", "close": "Заклопи", "close-board": "Заклопи књигу пословања", diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index 67f6de789..ebe1d597e 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -86,10 +86,10 @@ "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 min bredd", - "set-list-width-value": "Min bredd (pixlar)", - "list-width-error-message": "Listbredden måste vara ett 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", "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)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Urklipp eller dra & släpp", "close": "Stäng", "close-board": "Stäng tavla", diff --git a/imports/i18n/data/sw.i18n.json b/imports/i18n/data/sw.i18n.json index 401851c16..a3991ef27 100644 --- a/imports/i18n/data/sw.i18n.json +++ b/imports/i18n/data/sw.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Funga", "close-board": "Close Board", diff --git a/imports/i18n/data/ta.i18n.json b/imports/i18n/data/ta.i18n.json index 159189893..c3d413f95 100644 --- a/imports/i18n/data/ta.i18n.json +++ b/imports/i18n/data/ta.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/th.i18n.json b/imports/i18n/data/th.i18n.json index 0803d081c..83c97b3fd 100644 --- a/imports/i18n/data/th.i18n.json +++ b/imports/i18n/data/th.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "checklists": "รายการตรวจสอบ", "click-to-star": "คลิกดาวบอร์ดนี้", "click-to-unstar": "คลิกยกเลิกดาวบอร์ดนี้", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard หรือลากและวาง", "close": "ปิด", "close-board": "ปิดบอร์ด", diff --git a/imports/i18n/data/tlh.i18n.json b/imports/i18n/data/tlh.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/tlh.i18n.json +++ b/imports/i18n/data/tlh.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index a20ee886c..83c2ff2aa 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -86,10 +86,10 @@ "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": "Liste Genişliğini Ayarla", - "set-list-width": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", - "list-width-error-message": "Liste Genişliği pozitif bir tam sayı olmak zorundadır.", + "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", "setSwimlaneHeightPopup-title": "Kulvar Uzunluğunu Ayarla", "set-swimlane-height": "Kulvar Uzunluğunu Ayarla", "set-swimlane-height-value": "Kulvar Uzunluğu (piksel)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Yapıştır veya sürükleyip bırak", "close": "Kapat", "close-board": "Panoyu kapat", diff --git a/imports/i18n/data/ug.i18n.json b/imports/i18n/data/ug.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/ug.i18n.json +++ b/imports/i18n/data/ug.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index f46f93723..fdac02298 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s перенесено до архіву", "activity-attached": "%s прикріплено до %s", "activity-created": "%s створено", - "activity-changedListTitle": "renamed list to %s", + "activity-changedListTitle": "перейменовано список у %s", "activity-customfield-created": "Створено спеціальне поле %s", "activity-excluded": "%s виключено з %s", "activity-imported": "%s імпортовано до %s з %s", @@ -86,10 +86,10 @@ "add-card": "Додати картку", "add-card-to-top-of-list": "Додати картку на початок списку", "add-card-to-bottom-of-list": "Додати картку у кінець списку", - "setListWidthPopup-title": "Встановити ширину списку", - "set-list-width": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", - "list-width-error-message": "Список має бути цілим числом, що є більше за 0", + "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", "setSwimlaneHeightPopup-title": "Встановити довжину доріжки", "set-swimlane-height": "Встановити довжину доріжки", "set-swimlane-height-value": "Висота доріжки (у пікселях)", @@ -264,6 +264,8 @@ "checklists": "Контрольні списки", "click-to-star": "Натисніть, щоб відзначити цю дошку зірочкою.", "click-to-unstar": "Натисніть, щоб видалити зірочку з цієї дошки.", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Буфер обміну або перетягнути і відпустити", "close": "Закрити", "close-board": "Закрити дошку", @@ -445,7 +447,7 @@ "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": "Show Activities", + "show-activities": "Показати дії", "headerBarCreateBoardPopup-title": "Створити дошку", "home": "Головна", "import": "Імпорт", @@ -1108,13 +1110,13 @@ "cardsSortPopup-title": "Сортування карток", "due-date": "Термін виконання", "server-error": "Помилка сервера", - "server-error-troubleshooting": "Будь ласка, надішліть помилку, що виникла на сервері.\nДля встановлення через Snap, виконайте: sudo snap logs wekan.wekan\nДля встановлення через Docker, виконайте: sudo docker logs wekan-app", + "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": "Don't show the board activities on all boards", - "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", + "hide-activities-of-all-boards": "Не показуйте дії дошки на всіх дошках", + "now-activities-of-all-boards-are-hidden": "Тепер усі дії всіх дощок приховані", "move-swimlane": "Перемістити лінію плавання", "moveSwimlanePopup-title": "Перемістити лінію плавання", "custom-field-stringtemplate": "Строковий шаблон", @@ -1197,10 +1199,10 @@ "checklistActionsPopup-title": "Дії з чек-листом", "moveChecklist": "Перемістити чек-лист", "moveChecklistPopup-title": "Переміщення чек-листу", - "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", + "newlineBecomesNewChecklistItem": "Кожен рядок тексту стає одним із пунктів контрольного списку", + "newLineNewItem": "Один рядок тексту = один пункт контрольного списку", + "newlineBecomesNewChecklistItemOriginOrder": "Кожен рядок тексту стає одним із пунктів контрольного списку, в оригінальному порядку", + "originOrder": "оригінальний порядок", "copyChecklist": "Скопіювати чек-лист", "copyChecklistPopup-title": "Копіювання чек-листу", "card-show-lists": "Карта Показ списків", @@ -1256,6 +1258,6 @@ "uncollapse": "Розгорнути", "hideCheckedChecklistItems": "Приховати відмічені елементи чек-листа", "hideAllChecklistItems": "Приховати всі пункти чек-листа", - "support": "Support", - "supportPopup-title": "Support" + "support": "Підтримка", + "supportPopup-title": "Підтримка" } diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index d52f2a700..cc5ba99cd 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s перенесено до архіву", "activity-attached": "%s прикріплено до %s", "activity-created": "%s створено", - "activity-changedListTitle": "renamed list to %s", + "activity-changedListTitle": "перейменовано список у %s", "activity-customfield-created": "Створено спеціальне поле %s", "activity-excluded": "%s виключено з %s", "activity-imported": "%s імпортовано до %s з %s", @@ -86,10 +86,10 @@ "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": "Список має бути цілим числом, що є більше за 0", + "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", "setSwimlaneHeightPopup-title": "Встановити довжину доріжки", "set-swimlane-height": "Встановити довжину доріжки", "set-swimlane-height-value": "Висота доріжки (у пікселях)", @@ -264,6 +264,8 @@ "checklists": "Контрольні списки", "click-to-star": "Натисніть, щоб відзначити цю дошку зірочкою.", "click-to-unstar": "Натисніть, щоб видалити зірочку з цієї дошки.", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Буфер обміну або перетягнути і відпустити", "close": "Закрити", "close-board": "Закрити дошку", @@ -445,7 +447,7 @@ "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": "Show Activities", + "show-activities": "Показати дії", "headerBarCreateBoardPopup-title": "Створити дошку", "home": "Головна", "import": "Імпорт", @@ -1108,13 +1110,13 @@ "cardsSortPopup-title": "Сортування карток", "due-date": "Термін виконання", "server-error": "Помилка сервера", - "server-error-troubleshooting": "Будь ласка, надішліть помилку, що виникла на сервері.\nДля встановлення через Snap, виконайте: sudo snap logs wekan.wekan\nДля встановлення через Docker, виконайте: sudo docker logs wekan-app", + "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": "Don't show the board activities on all boards", - "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", + "hide-activities-of-all-boards": "Не показуйте дії дошки на всіх дошках", + "now-activities-of-all-boards-are-hidden": "Тепер усі дії всіх дощок приховані", "move-swimlane": "Перемістити лінію плавання", "moveSwimlanePopup-title": "Перемістити лінію плавання", "custom-field-stringtemplate": "Строковий шаблон", @@ -1197,10 +1199,10 @@ "checklistActionsPopup-title": "Дії з чек-листом", "moveChecklist": "Перемістити чек-лист", "moveChecklistPopup-title": "Переміщення чек-листу", - "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", + "newlineBecomesNewChecklistItem": "Кожен рядок тексту стає одним із пунктів контрольного списку", + "newLineNewItem": "Один рядок тексту = один пункт контрольного списку", + "newlineBecomesNewChecklistItemOriginOrder": "Кожен рядок тексту стає одним із пунктів контрольного списку, в оригінальному порядку", + "originOrder": "оригінальний порядок", "copyChecklist": "Скопіювати чек-лист", "copyChecklistPopup-title": "Копіювання чек-листу", "card-show-lists": "Карта Показ списків", @@ -1256,6 +1258,6 @@ "uncollapse": "Розгорнути", "hideCheckedChecklistItems": "Приховати відмічені елементи чек-листа", "hideAllChecklistItems": "Приховати всі пункти чек-листа", - "support": "Support", - "supportPopup-title": "Support" + "support": "Підтримка", + "supportPopup-title": "Підтримка" } diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz-AR.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/uz-AR.i18n.json +++ b/imports/i18n/data/uz-AR.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/uz-LA.i18n.json b/imports/i18n/data/uz-LA.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/uz-LA.i18n.json +++ b/imports/i18n/data/uz-LA.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/uz-UZ.i18n.json b/imports/i18n/data/uz-UZ.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/uz-UZ.i18n.json +++ b/imports/i18n/data/uz-UZ.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/uz.i18n.json b/imports/i18n/data/uz.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/uz.i18n.json +++ b/imports/i18n/data/uz.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ve-CC.i18n.json b/imports/i18n/data/ve-CC.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/ve-CC.i18n.json +++ b/imports/i18n/data/ve-CC.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ve-PP.i18n.json b/imports/i18n/data/ve-PP.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/ve-PP.i18n.json +++ b/imports/i18n/data/ve-PP.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/ve.i18n.json b/imports/i18n/data/ve.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/ve.i18n.json +++ b/imports/i18n/data/ve.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/vi-VN.i18n.json b/imports/i18n/data/vi-VN.i18n.json index 5f7d1022f..c06fb92ba 100644 --- a/imports/i18n/data/vi-VN.i18n.json +++ b/imports/i18n/data/vi-VN.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/vi.i18n.json b/imports/i18n/data/vi.i18n.json index 2ff0a0d85..338eab842 100644 --- a/imports/i18n/data/vi.i18n.json +++ b/imports/i18n/data/vi.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard hoặc kéo và thả", "close": "Đóng", "close-board": "Đóng bảng", diff --git a/imports/i18n/data/vl-SS.i18n.json b/imports/i18n/data/vl-SS.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/vl-SS.i18n.json +++ b/imports/i18n/data/vl-SS.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/vo.i18n.json b/imports/i18n/data/vo.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/vo.i18n.json +++ b/imports/i18n/data/vo.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/wa-RR.i18n.json b/imports/i18n/data/wa-RR.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/wa-RR.i18n.json +++ b/imports/i18n/data/wa-RR.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/wa.i18n.json b/imports/i18n/data/wa.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/wa.i18n.json +++ b/imports/i18n/data/wa.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/wo.i18n.json b/imports/i18n/data/wo.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/wo.i18n.json +++ b/imports/i18n/data/wo.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/xh.i18n.json b/imports/i18n/data/xh.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/xh.i18n.json +++ b/imports/i18n/data/xh.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/yi.i18n.json b/imports/i18n/data/yi.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/yi.i18n.json +++ b/imports/i18n/data/yi.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/yo.i18n.json b/imports/i18n/data/yo.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/yo.i18n.json +++ b/imports/i18n/data/yo.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/yue_CN.i18n.json b/imports/i18n/data/yue_CN.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/yue_CN.i18n.json +++ b/imports/i18n/data/yue_CN.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/zgh.i18n.json b/imports/i18n/data/zgh.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/zgh.i18n.json +++ b/imports/i18n/data/zgh.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/zh-CN.i18n.json b/imports/i18n/data/zh-CN.i18n.json index 130245c2f..46c9c8deb 100644 --- a/imports/i18n/data/zh-CN.i18n.json +++ b/imports/i18n/data/zh-CN.i18n.json @@ -86,10 +86,10 @@ "add-card": "添加卡片", "add-card-to-top-of-list": "添加卡片到列表顶部", "add-card-to-bottom-of-list": "添加卡片到列表底部", - "setListWidthPopup-title": "设置列表宽度", - "set-list-width": "Set Min Width", - "set-list-width-value": "Min Width (pixels)", - "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", "setSwimlaneHeightPopup-title": "设置泳道高度", "set-swimlane-height": "设置泳道高度", "set-swimlane-height-value": "泳道高度(px)", @@ -264,6 +264,8 @@ "checklists": "清单", "click-to-star": "点此来标记该看板", "click-to-unstar": "点此来去除该看板的标记", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "剪贴板或者拖放文件", "close": "关闭", "close-board": "关闭看板", diff --git a/imports/i18n/data/zh-GB.i18n.json b/imports/i18n/data/zh-GB.i18n.json index b7451620e..83592598f 100644 --- a/imports/i18n/data/zh-GB.i18n.json +++ b/imports/i18n/data/zh-GB.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/zh-HK.i18n.json b/imports/i18n/data/zh-HK.i18n.json index 72d959b69..ecd3d322f 100644 --- a/imports/i18n/data/zh-HK.i18n.json +++ b/imports/i18n/data/zh-HK.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/zh-Hans.i18n.json b/imports/i18n/data/zh-Hans.i18n.json index f7cf27768..07ca6c0ce 100644 --- a/imports/i18n/data/zh-Hans.i18n.json +++ b/imports/i18n/data/zh-Hans.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/zh-Hant.i18n.json b/imports/i18n/data/zh-Hant.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/zh-Hant.i18n.json +++ b/imports/i18n/data/zh-Hant.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index 90fe6f6d5..2026ce061 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -86,10 +86,10 @@ "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", "setSwimlaneHeightPopup-title": "設定泳道高度", "set-swimlane-height": "設定泳道高度", "set-swimlane-height-value": "泳道高度(畫素)", @@ -264,6 +264,8 @@ "checklists": "待辦清單", "click-to-star": "將看板加入我的最愛。", "click-to-unstar": "從我的最愛移除此看板。", + "click-to-enable-auto-width": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "剪貼簿貼上或者拖曳檔案", "close": "關閉", "close-board": "關閉看板", @@ -1256,6 +1258,6 @@ "uncollapse": "展開", "hideCheckedChecklistItems": "隱藏已勾選的待辦清單項目", "hideAllChecklistItems": "隱藏所有待辦清單項目", - "support": "Support", - "supportPopup-title": "Support" + "support": "支援", + "supportPopup-title": "支援" } diff --git a/imports/i18n/data/zh.i18n.json b/imports/i18n/data/zh.i18n.json index 83efb3abc..5ff81593a 100644 --- a/imports/i18n/data/zh.i18n.json +++ b/imports/i18n/data/zh.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/zu-ZA.i18n.json b/imports/i18n/data/zu-ZA.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/zu-ZA.i18n.json +++ b/imports/i18n/data/zu-ZA.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", diff --git a/imports/i18n/data/zu.i18n.json b/imports/i18n/data/zu.i18n.json index 420477fcd..bc73ff1b2 100644 --- a/imports/i18n/data/zu.i18n.json +++ b/imports/i18n/data/zu.i18n.json @@ -86,10 +86,10 @@ "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 Min Width", - "set-list-width-value": "Min 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", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", @@ -264,6 +264,8 @@ "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 enable auto list width.", + "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", From 0c753e85a81c1c981f7c4800956464775eeca7e5 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 8 Dec 2024 02:02:26 +0200 Subject: [PATCH 175/356] Updated ChangeLog. --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ecc7e667..b12287eed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,12 @@ Fixing other platforms In Progress. # Upcoming WeKan ® release -This release adds the following updates: +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. From c062bd63bbfceb3a96f23ea3e8696534694db54e Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 8 Dec 2024 02:56:37 +0200 Subject: [PATCH 176/356] Fix in API user role is not considered. Thanks to mohammadZahedian and xet7 ! Fixes #5422 --- server/authentication.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) 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); }; From 75b34212223f8addae2eae26064fd963e02990d3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 8 Dec 2024 02:59:15 +0200 Subject: [PATCH 177/356] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b12287eed..5b7843afa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,11 @@ 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 From c188d2bf655c40e788541249991f2b2922ef3b43 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 8 Dec 2024 03:01:51 +0200 Subject: [PATCH 178/356] Updated translations. --- imports/i18n/data/pt-BR.i18n.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index 7ac600357..5df77d7d8 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -86,9 +86,9 @@ "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": "Set Widths", - "set-list-width": "Set Widths", - "set-list-width-value": "Set Min & Max Widths (pixels)", + "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": "List widths must be integers greater than 100", "setSwimlaneHeightPopup-title": "Definir Altura da Raia", "set-swimlane-height": "Definir Altura da Raia", @@ -264,8 +264,8 @@ "checklists": "Listas de verificação", "click-to-star": "Marcar quadro como favorito.", "click-to-unstar": "Remover quadro dos favoritos.", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "click-to-enable-auto-width": "Clique para habilitar a largura automática da lista", + "click-to-disable-auto-width": "Clique para desabilitar a largura automática da lista", "clipboard": "Área de Transferência ou arraste e solte", "close": "Fechar", "close-board": "Fechar Quadro", @@ -1258,6 +1258,6 @@ "uncollapse": "Compactar", "hideCheckedChecklistItems": "Esconder itens concluídos da lista de verificação", "hideAllChecklistItems": "Esconder todos os itens da lista de verificação", - "support": "Support", - "supportPopup-title": "Support" + "support": "Suporte", + "supportPopup-title": "Suporte" } From d0ea8e3a8141dbbda52848f8f3b4e4749b2752d4 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 8 Dec 2024 03:08:28 +0200 Subject: [PATCH 179/356] v7.72 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b7843afa..238f9258a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.72 2024-12-08 WeKan ® release This release adds the following new features: diff --git a/Stackerfile.yml b/Stackerfile.yml index 36f101cad..e4d1eaac2 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.71.0" +appVersion: "v7.72.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 40144493d..6fb60965c 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.71-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.71/wekan-7.71-amd64-windows.zip) +1. [wekan-7.72-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.72/wekan-7.72-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.71-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.72-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index be03450cf..c0b95c338 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.71.0", + "version": "v7.72.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 25cd4aab4..080681429 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.71.0", + "version": "v7.72.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index b644960f0..1514a4c15 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.71 + Wekan REST API v7.72 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                            • - Wekan REST API v7.71 + Wekan REST API v7.72
                            • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                              -

                              Wekan REST API v7.71

                              +

                              Wekan REST API v7.72

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

                              diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 2d4df0064..4e8d0eb79 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.71 + version: v7.72 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index de89d06a3..a320247aa 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 = 771, + appVersion = 772, # Increment this for every release. - appMarketingVersion = (defaultText = "7.71.0~2024-12-05"), + appMarketingVersion = (defaultText = "7.72.0~2024-12-08"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 74fa6fc63..7a0df77e6 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.71' +version: '7.72' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.71/wekan-7.71-amd64.zip - unzip wekan-7.71-amd64.zip - rm wekan-7.71-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.72/wekan-7.72-amd64.zip + unzip wekan-7.72-amd64.zip + rm wekan-7.72-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 57e545e7c4c2e15026349fbe855c105ae657f43d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 8 Dec 2024 15:01:48 +0200 Subject: [PATCH 180/356] Updated translations. --- imports/i18n/data/nl.i18n.json | 16 ++-- imports/i18n/data/sk.i18n.json | 134 ++++++++++++++++----------------- 2 files changed, 75 insertions(+), 75 deletions(-) diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 8e9462757..e02d91f45 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -86,10 +86,10 @@ "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 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", + "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", "setSwimlaneHeightPopup-title": "Stel Swimlane-hoogte in", "set-swimlane-height": "Stel Swimlane-hoogte in", "set-swimlane-height-value": "Swimlane-hoogte (pixels)", @@ -264,8 +264,8 @@ "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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "click-to-enable-auto-width": "Klik om automatische lijstbreedte in te schakelen.", + "click-to-disable-auto-width": "Klik om automatische lijstbreedte uit te schakelen.", "clipboard": "Afbeelding Kopiëren & Plakken", "close": "Sluiten", "close-board": "Sluit bord", @@ -1258,6 +1258,6 @@ "uncollapse": "Uitklappen", "hideCheckedChecklistItems": "Verberg aangevinkte checklist items", "hideAllChecklistItems": "Verberg alle checklist items", - "support": "Support", - "supportPopup-title": "Support" + "support": "Ondersteuning", + "supportPopup-title": "Ondersteuning" } diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index a25511e01..9970c95cc 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -52,7 +52,7 @@ "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", @@ -82,7 +82,7 @@ "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", @@ -114,25 +114,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", @@ -159,8 +159,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 private.", - "board-public-info": "This board will be public.", + "board-private-info": "Táto nástenka bude súkromná.", + "board-public-info": "Táto nástenka bude verejná.", "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", @@ -178,11 +178,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.", @@ -242,7 +242,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", @@ -262,8 +262,8 @@ "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": "Click to enable auto list width.", "click-to-disable-auto-width": "Click to disable auto list width.", "clipboard": "Clipboard or drag & drop", @@ -316,17 +316,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", @@ -381,7 +381,7 @@ "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-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", @@ -448,15 +448,15 @@ "fullname": "Celé meno", "header-logo-title": "Go back to your boards page.", "show-activities": "Show Activities", - "headerBarCreateBoardPopup-title": "Create Board", + "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", @@ -480,16 +480,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”.", @@ -525,9 +525,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.", @@ -551,9 +551,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", @@ -563,17 +563,17 @@ "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", @@ -591,13 +591,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)", @@ -605,7 +605,7 @@ "has-overtime-cards": "Has overtime cards", "has-spenttime-cards": "Has spent time cards", "time": "Čas", - "title": "Title", + "title": "Názov", "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", @@ -631,8 +631,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", @@ -729,8 +729,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", @@ -767,7 +767,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", @@ -780,7 +780,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", @@ -841,7 +841,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", @@ -890,7 +890,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: ", @@ -963,7 +963,7 @@ "hide-checked-items": "Hide checked items", "hide-finished-checklist": "Hide finished checklist", "task": "Task", - "create-task": "Create Task", + "create-task": "Vytvoriť úlohu", "ok": "OK", "organizations": "Organizations", "teams": "Teams", @@ -975,15 +975,15 @@ "my-cards": "My Cards", "card": "Card", "list": "List", - "board": "Board", + "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", @@ -992,7 +992,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.", @@ -1001,12 +1001,12 @@ "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", @@ -1020,10 +1020,10 @@ "operator-member-abbrev": "m", "operator-assignee": "assignee", "operator-assignee-abbrev": "a", - "operator-creator": "creator", + "operator-creator": "Vytvoril", "operator-status": "status", "operator-due": "due", - "operator-created": "created", + "operator-created": "vytvorené", "operator-modified": "modified", "operator-sort": "sort", "operator-comment": "comment", @@ -1043,7 +1043,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", @@ -1112,8 +1112,8 @@ "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-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", @@ -1165,7 +1165,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", @@ -1223,7 +1223,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", From f689d1688a9cedbbffefc073f7dd7c75a0cee9ed Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 8 Dec 2024 15:02:43 +0200 Subject: [PATCH 181/356] Updated URLs and email addresses. Thanks to xet7 ! --- .github/FUNDING.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- CONTRIBUTING.md | 2 +- README.md | 2 +- SECURITY.md | 4 ++-- client/components/users/userHeader.jade | 4 ++-- docs/DeveloperDocs/Deep-Dive-Into-WeKan.md | 2 +- docs/DeveloperDocs/Meteor.md | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 277cc9a6d..5b621fac0 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,3 @@ # These are supported funding model platforms -custom: ['https://wekan.team/commercial-support/'] +custom: ['https://wekan.fi/commercial-support/'] diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index ab3b34b15..0889d17cf 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@wekan.team +- Email support@wekan.fi - Security issues: [SECURITY.md](SECURITY.md) - License violations - Anything private, sensitive or negative diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 051a3a90a..e4d4d92e1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,7 +11,7 @@ Not paid: Paid by customers of WeKan Team: -- Commercial Support at https://wekan.team/commercial-support/ +- Commercial Support at https://wekan.fi/commercial-support/ - Support - Private Chat - Features diff --git a/README.md b/README.md index f3758d271..df9f551fa 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ that by providing one-click installation on various platforms. - There is many companies and individuals contributing code to WeKan ®, to add features and bugfixes [many times a day](https://github.com/wekan/wekan/blob/main/CHANGELOG.md). - [Please add Add new Feature Requests and Bug Reports immediately](https://github.com/wekan/wekan/issues). -- [Commercial Support](https://wekan.team/commercial-support/). +- [Commercial Support](https://wekan.fi/commercial-support/). We also welcome sponsors for features and bugfixes. By working directly with WeKan ® you get the benefit of active maintenance and new features added by growing WeKan ® developer community. diff --git a/SECURITY.md b/SECURITY.md index 3ca0e69e7..0fb407a4a 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,7 +1,7 @@ About money, see [CONTRIBUTING.md](CONTRIBUTING.md) Security is very important to us. If you discover any issue regarding security, please disclose -the information responsibly by sending an email to support@wekan.team and not by +the information responsibly by sending an email to security@wekan.fi and not by creating a GitHub issue. We will respond swiftly to fix verifiable security issues. We thank you with a place at our hall of fame page, that is @@ -217,7 +217,7 @@ Typical already known or "no impact" bugs such as: - Email spoofing, SPF, DMARC & DKIM. Wekan does not include email server. Wekan is Open Source with MIT license, and free to use also for commercial use. -We welcome all fixes to improve security by email to security (at) wekan.team . +We welcome all fixes to improve security by email to security@wekan.fi ## Bonus Points diff --git a/client/components/users/userHeader.jade b/client/components/users/userHeader.jade index 6477be571..c331852ae 100644 --- a/client/components/users/userHeader.jade +++ b/client/components/users/userHeader.jade @@ -155,11 +155,11 @@ template(name="supportPopup") | This app may come preinstalled at some devices. br br - | b) If this app name is WeKan from https://wekan.team/app/ or URL is https://boards.wekan.team, + | b) If this app name is WeKan from https://wekan.fi/app/ or URL is https://boards.wekan.team, | then this is WeKan Open Source kanban software with MIT license https://wekan.github.io with all source code | at https://github.com/wekan/wekan, PRs are very welcome at https://github.com/wekan/wekan/pulls. | Free public Open Source support is at https://github.com/wekan/wekan/issues for feature requests and bug reports. - | Optional paid private Commercial Support for Features/Fixes/Support/Hosting is at https://wekan.team from maintainer of WeKan. + | Optional paid private Commercial Support for Features/Fixes/Support/Hosting is at https://wekan.fi from maintainer of WeKan. | If possible, please sponsor continuing maintaining of WeKan at https://wekan.github.io/sponsors/ template(name="changePasswordPopup") diff --git a/docs/DeveloperDocs/Deep-Dive-Into-WeKan.md b/docs/DeveloperDocs/Deep-Dive-Into-WeKan.md index 5281d61f1..b6cb3edaa 100644 --- a/docs/DeveloperDocs/Deep-Dive-Into-WeKan.md +++ b/docs/DeveloperDocs/Deep-Dive-Into-WeKan.md @@ -13,7 +13,7 @@ https://www.youtube.com/watch?v=ke-mbnZM3zE - Used in most countries of the world https://snapcraft.io/wekan - Biggest user have about 30k users, using many pods at Kubernetes - Changelog https://github.com/wekan/wekan/blob/main/CHANGELOG.md -- Commercial Support at https://wekan.team/commercial-support/ . Currently looking who could sponsor more of maintenance and development. +- Commercial Support at https://wekan.fi/commercial-support/ . Currently looking who could sponsor more of maintenance and development. ## How much effort to create Meteor WeKan, in COCOMO model diff --git a/docs/DeveloperDocs/Meteor.md b/docs/DeveloperDocs/Meteor.md index 8bda65362..5f49bf2e2 100644 --- a/docs/DeveloperDocs/Meteor.md +++ b/docs/DeveloperDocs/Meteor.md @@ -15,7 +15,7 @@ - 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://wekan.fi/app/ - https://github.com/wekan/wekan/wiki/PWA - Over 100 icons for different platforms https://github.com/wekan/wekan/blob/main/public/site.webmanifest From 30ec59140c5d06deb913e4e319d2450fc26de448 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 8 Dec 2024 15:04:17 +0200 Subject: [PATCH 182/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 238f9258a..2e484cf01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ 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 URLs and email addresses](https://github.com/wekan/wekan/commit/f689d1688a9cedbbffefc073f7dd7c75a0cee9ed). + 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: From 90653c14721c293ef18972ea72d2b498dd3a308a Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 8 Dec 2024 17:06:29 +0200 Subject: [PATCH 183/356] Updated translations. --- imports/i18n/data/af.i18n.json | 5 ++++- imports/i18n/data/af_ZA.i18n.json | 5 ++++- imports/i18n/data/ar-DZ.i18n.json | 5 ++++- imports/i18n/data/ar-EG.i18n.json | 5 ++++- imports/i18n/data/ar.i18n.json | 5 ++++- imports/i18n/data/ary.i18n.json | 5 ++++- imports/i18n/data/ast-ES.i18n.json | 5 ++++- imports/i18n/data/az-AZ.i18n.json | 5 ++++- imports/i18n/data/az-LA.i18n.json | 5 ++++- imports/i18n/data/az.i18n.json | 5 ++++- imports/i18n/data/bg.i18n.json | 5 ++++- imports/i18n/data/br.i18n.json | 5 ++++- imports/i18n/data/ca.i18n.json | 5 ++++- imports/i18n/data/ca_ES.i18n.json | 5 ++++- imports/i18n/data/cmn.i18n.json | 5 ++++- imports/i18n/data/cs-CZ.i18n.json | 5 ++++- imports/i18n/data/cs.i18n.json | 5 ++++- imports/i18n/data/cy-GB.i18n.json | 5 ++++- imports/i18n/data/cy.i18n.json | 5 ++++- imports/i18n/data/da.i18n.json | 5 ++++- imports/i18n/data/de-AT.i18n.json | 5 ++++- imports/i18n/data/de-CH.i18n.json | 5 ++++- imports/i18n/data/de.i18n.json | 5 ++++- imports/i18n/data/de_DE.i18n.json | 5 ++++- imports/i18n/data/el-GR.i18n.json | 5 ++++- imports/i18n/data/el.i18n.json | 5 ++++- imports/i18n/data/en-BR.i18n.json | 5 ++++- imports/i18n/data/en-DE.i18n.json | 5 ++++- imports/i18n/data/en-GB.i18n.json | 5 ++++- imports/i18n/data/en-IT.i18n.json | 5 ++++- imports/i18n/data/en-MY.i18n.json | 5 ++++- imports/i18n/data/en-YS.i18n.json | 5 ++++- imports/i18n/data/en.i18n.json | 5 ++++- imports/i18n/data/en_ZA.i18n.json | 5 ++++- imports/i18n/data/eo.i18n.json | 5 ++++- imports/i18n/data/es-AR.i18n.json | 5 ++++- imports/i18n/data/es-CL.i18n.json | 5 ++++- imports/i18n/data/es-LA.i18n.json | 5 ++++- imports/i18n/data/es-MX.i18n.json | 5 ++++- imports/i18n/data/es-PE.i18n.json | 5 ++++- imports/i18n/data/es-PY.i18n.json | 5 ++++- imports/i18n/data/es.i18n.json | 5 ++++- imports/i18n/data/es_CO.i18n.json | 5 ++++- imports/i18n/data/et-EE.i18n.json | 5 ++++- imports/i18n/data/eu.i18n.json | 5 ++++- imports/i18n/data/fa-IR.i18n.json | 5 ++++- imports/i18n/data/fa.i18n.json | 5 ++++- imports/i18n/data/fi.i18n.json | 5 ++++- imports/i18n/data/fr-CH.i18n.json | 5 ++++- imports/i18n/data/fr-FR.i18n.json | 5 ++++- imports/i18n/data/fr.i18n.json | 5 ++++- imports/i18n/data/fy-NL.i18n.json | 5 ++++- imports/i18n/data/fy.i18n.json | 5 ++++- imports/i18n/data/gl-ES.i18n.json | 5 ++++- imports/i18n/data/gl.i18n.json | 5 ++++- imports/i18n/data/gu-IN.i18n.json | 5 ++++- imports/i18n/data/he-IL.i18n.json | 5 ++++- imports/i18n/data/he.i18n.json | 17 ++++++++++------- imports/i18n/data/hi-IN.i18n.json | 5 ++++- imports/i18n/data/hi.i18n.json | 5 ++++- imports/i18n/data/hr.i18n.json | 5 ++++- imports/i18n/data/hu.i18n.json | 5 ++++- imports/i18n/data/hy.i18n.json | 5 ++++- imports/i18n/data/id.i18n.json | 5 ++++- imports/i18n/data/ig.i18n.json | 5 ++++- imports/i18n/data/it.i18n.json | 5 ++++- imports/i18n/data/ja-HI.i18n.json | 5 ++++- imports/i18n/data/ja.i18n.json | 5 ++++- imports/i18n/data/ka.i18n.json | 5 ++++- imports/i18n/data/km.i18n.json | 5 ++++- imports/i18n/data/ko-KR.i18n.json | 5 ++++- imports/i18n/data/ko.i18n.json | 5 ++++- imports/i18n/data/lt.i18n.json | 5 ++++- imports/i18n/data/lv.i18n.json | 5 ++++- imports/i18n/data/mk.i18n.json | 5 ++++- imports/i18n/data/mn.i18n.json | 5 ++++- imports/i18n/data/ms-MY.i18n.json | 5 ++++- imports/i18n/data/ms.i18n.json | 5 ++++- imports/i18n/data/nb.i18n.json | 5 ++++- imports/i18n/data/nl-NL.i18n.json | 5 ++++- imports/i18n/data/nl.i18n.json | 5 ++++- imports/i18n/data/oc.i18n.json | 5 ++++- imports/i18n/data/or_IN.i18n.json | 5 ++++- imports/i18n/data/pa.i18n.json | 5 ++++- imports/i18n/data/pl-PL.i18n.json | 5 ++++- imports/i18n/data/pl.i18n.json | 5 ++++- imports/i18n/data/pt-BR.i18n.json | 5 ++++- imports/i18n/data/pt.i18n.json | 5 ++++- imports/i18n/data/pt_PT.i18n.json | 5 ++++- imports/i18n/data/ro-RO.i18n.json | 5 ++++- imports/i18n/data/ro.i18n.json | 5 ++++- imports/i18n/data/ru-UA.i18n.json | 5 ++++- imports/i18n/data/ru.i18n.json | 5 ++++- imports/i18n/data/sk.i18n.json | 5 ++++- imports/i18n/data/sl.i18n.json | 5 ++++- imports/i18n/data/sr.i18n.json | 5 ++++- imports/i18n/data/sv.i18n.json | 5 ++++- imports/i18n/data/sw.i18n.json | 5 ++++- imports/i18n/data/ta.i18n.json | 5 ++++- imports/i18n/data/th.i18n.json | 5 ++++- imports/i18n/data/tlh.i18n.json | 5 ++++- imports/i18n/data/tr.i18n.json | 5 ++++- imports/i18n/data/ug.i18n.json | 5 ++++- imports/i18n/data/uk-UA.i18n.json | 5 ++++- imports/i18n/data/uk.i18n.json | 5 ++++- imports/i18n/data/uz-AR.i18n.json | 5 ++++- imports/i18n/data/uz-LA.i18n.json | 5 ++++- imports/i18n/data/uz-UZ.i18n.json | 5 ++++- imports/i18n/data/uz.i18n.json | 5 ++++- imports/i18n/data/ve-CC.i18n.json | 5 ++++- imports/i18n/data/ve-PP.i18n.json | 5 ++++- imports/i18n/data/ve.i18n.json | 5 ++++- imports/i18n/data/vi-VN.i18n.json | 5 ++++- imports/i18n/data/vi.i18n.json | 5 ++++- imports/i18n/data/vl-SS.i18n.json | 5 ++++- imports/i18n/data/vo.i18n.json | 5 ++++- imports/i18n/data/wa-RR.i18n.json | 5 ++++- imports/i18n/data/wa.i18n.json | 5 ++++- imports/i18n/data/wo.i18n.json | 5 ++++- imports/i18n/data/xh.i18n.json | 5 ++++- imports/i18n/data/yi.i18n.json | 5 ++++- imports/i18n/data/yo.i18n.json | 5 ++++- imports/i18n/data/yue_CN.i18n.json | 5 ++++- imports/i18n/data/zgh.i18n.json | 5 ++++- imports/i18n/data/zh-CN.i18n.json | 5 ++++- imports/i18n/data/zh-GB.i18n.json | 5 ++++- imports/i18n/data/zh-HK.i18n.json | 5 ++++- imports/i18n/data/zh-Hans.i18n.json | 5 ++++- imports/i18n/data/zh-Hant.i18n.json | 5 ++++- imports/i18n/data/zh-TW.i18n.json | 5 ++++- imports/i18n/data/zh.i18n.json | 5 ++++- imports/i18n/data/zu-ZA.i18n.json | 5 ++++- imports/i18n/data/zu.i18n.json | 5 ++++- 133 files changed, 538 insertions(+), 139 deletions(-) diff --git a/imports/i18n/data/af.i18n.json b/imports/i18n/data/af.i18n.json index bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/af.i18n.json +++ b/imports/i18n/data/af.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 fe9bddb5b..0e8c14d40 100644 --- a/imports/i18n/data/af_ZA.i18n.json +++ b/imports/i18n/data/af_ZA.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/ar-DZ.i18n.json +++ b/imports/i18n/data/ar-DZ.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/ar-EG.i18n.json +++ b/imports/i18n/data/ar-EG.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 b11e30175..1ac3c6d91 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/ary.i18n.json +++ b/imports/i18n/data/ary.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/ast-ES.i18n.json +++ b/imports/i18n/data/ast-ES.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/az-AZ.i18n.json +++ b/imports/i18n/data/az-AZ.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/az-LA.i18n.json +++ b/imports/i18n/data/az-LA.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/az.i18n.json +++ b/imports/i18n/data/az.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5a3353b36..ea6c50953 100644 --- a/imports/i18n/data/bg.i18n.json +++ b/imports/i18n/data/bg.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 c8f47ec36..bf4467b1f 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 2470b1b33..18855f07e 100644 --- a/imports/i18n/data/ca.i18n.json +++ b/imports/i18n/data/ca.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 9c41a0a9b..6dc9dc102 100644 --- a/imports/i18n/data/ca_ES.i18n.json +++ b/imports/i18n/data/ca_ES.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 9ce9c594a..c14ff3191 100644 --- a/imports/i18n/data/cmn.i18n.json +++ b/imports/i18n/data/cmn.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 3b2bf64b4..f0f0dcb60 100644 --- a/imports/i18n/data/cs-CZ.i18n.json +++ b/imports/i18n/data/cs-CZ.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 ad907b25f..002cea267 100644 --- a/imports/i18n/data/cs.i18n.json +++ b/imports/i18n/data/cs.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/cy-GB.i18n.json +++ b/imports/i18n/data/cy-GB.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/cy.i18n.json +++ b/imports/i18n/data/cy.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 b3bbb0e4e..484e2a354 100644 --- a/imports/i18n/data/da.i18n.json +++ b/imports/i18n/data/da.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 f12eeed87..015f3203b 100644 --- a/imports/i18n/data/de-AT.i18n.json +++ b/imports/i18n/data/de-AT.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 872e55f9e..0e56420b6 100644 --- a/imports/i18n/data/de-CH.i18n.json +++ b/imports/i18n/data/de-CH.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 b95f2a631..ba59100be 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Erledigte Checklisteneinträge ausblenden", "hideAllChecklistItems": "Verberge alle Checklisteneinträge", "support": "Support", - "supportPopup-title": "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_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index 66e454f83..70d0b2da0 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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-GR.i18n.json b/imports/i18n/data/el-GR.i18n.json index 0b49d12d8..ef3c587cc 100644 --- a/imports/i18n/data/el-GR.i18n.json +++ b/imports/i18n/data/el-GR.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 82f1bf7a2..f793c874e 100644 --- a/imports/i18n/data/el.i18n.json +++ b/imports/i18n/data/el.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/en-BR.i18n.json +++ b/imports/i18n/data/en-BR.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 eddba87f4..09a92a78b 100644 --- a/imports/i18n/data/en-DE.i18n.json +++ b/imports/i18n/data/en-DE.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 1c7a7ba8e..f44e94ca5 100644 --- a/imports/i18n/data/en-GB.i18n.json +++ b/imports/i18n/data/en-GB.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/en-IT.i18n.json +++ b/imports/i18n/data/en-IT.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/en-MY.i18n.json +++ b/imports/i18n/data/en-MY.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/en-YS.i18n.json +++ b/imports/i18n/data/en-YS.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/en_ZA.i18n.json +++ b/imports/i18n/data/en_ZA.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 91ca06b28..c42995526 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 0c59281cc..9a948a602 100644 --- a/imports/i18n/data/es-AR.i18n.json +++ b/imports/i18n/data/es-AR.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5791c326c..137f45ec9 100644 --- a/imports/i18n/data/es-CL.i18n.json +++ b/imports/i18n/data/es-CL.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/es-LA.i18n.json +++ b/imports/i18n/data/es-LA.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 c3a80aacb..96c64d768 100644 --- a/imports/i18n/data/es-MX.i18n.json +++ b/imports/i18n/data/es-MX.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 3c561d6a5..2b5f30a0c 100644 --- a/imports/i18n/data/es-PE.i18n.json +++ b/imports/i18n/data/es-PE.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/es-PY.i18n.json +++ b/imports/i18n/data/es-PY.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 53c987406..94e2dacce 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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_CO.i18n.json b/imports/i18n/data/es_CO.i18n.json index bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/es_CO.i18n.json +++ b/imports/i18n/data/es_CO.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 2d559ecc3..ed08d255d 100644 --- a/imports/i18n/data/et-EE.i18n.json +++ b/imports/i18n/data/et-EE.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 934ba16f3..574691d66 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "Support" + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/fa-IR.i18n.json b/imports/i18n/data/fa-IR.i18n.json index 9b29fe385..603d01ca8 100644 --- a/imports/i18n/data/fa-IR.i18n.json +++ b/imports/i18n/data/fa-IR.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "پنهان کردن موارد انجام شده چک لیست", "hideAllChecklistItems": "پنهان کردن همه موارد چک لیست", "support": "پشتیبانی", - "supportPopup-title": "پشتیبانی" + "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 e3fd380ff..65a1a9ac1 100644 --- a/imports/i18n/data/fa.i18n.json +++ b/imports/i18n/data/fa.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 773acf797..00eab1f58 100644 --- a/imports/i18n/data/fi.i18n.json +++ b/imports/i18n/data/fi.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Piilota ruksatut tarkistuslistan kohdat", "hideAllChecklistItems": "Piilota kaikki tarkistuslistan kohdat", "support": "Tuki", - "supportPopup-title": "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 665cccbe6..afb3df3cc 100644 --- a/imports/i18n/data/fr-CH.i18n.json +++ b/imports/i18n/data/fr-CH.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 68b7689fc..0f2c1f146 100644 --- a/imports/i18n/data/fr-FR.i18n.json +++ b/imports/i18n/data/fr-FR.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 c3ef2da4e..9c94f4f51 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -1259,5 +1259,8 @@ "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" + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/fy-NL.i18n.json b/imports/i18n/data/fy-NL.i18n.json index bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/fy-NL.i18n.json +++ b/imports/i18n/data/fy-NL.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/fy.i18n.json +++ b/imports/i18n/data/fy.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 34852bc1f..28e508d8c 100644 --- a/imports/i18n/data/gl-ES.i18n.json +++ b/imports/i18n/data/gl-ES.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 66516e43f..5aab6d715 100644 --- a/imports/i18n/data/gl.i18n.json +++ b/imports/i18n/data/gl.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/gu-IN.i18n.json +++ b/imports/i18n/data/gu-IN.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 57bbcdbea..45124c705 100644 --- a/imports/i18n/data/he-IL.i18n.json +++ b/imports/i18n/data/he-IL.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 cde10066f..906770ccf 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -86,10 +86,10 @@ "add-card": "הוספת כרטיס", "add-card-to-top-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", + "setListWidthPopup-title": "הגדרת רוחבים", + "set-list-width": "הגדרת רוחבים", + "set-list-width-value": "הגדרת רוחבים מזעריים ומרביים (פיקסלים)", + "list-width-error-message": "רשימת הרוחבים חייבים להיות מספרים שלמים מעל 100", "setSwimlaneHeightPopup-title": "הגדרת גובה מסלול", "set-swimlane-height": "הגדרת גובה מסלול", "set-swimlane-height-value": "גובה מסלול (פיקסלים)", @@ -264,8 +264,8 @@ "checklists": "רשימות", "click-to-star": "יש ללחוץ להוספת הלוח למועדפים.", "click-to-unstar": "יש ללחוץ להסרת הלוח מהמועדפים.", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "click-to-enable-auto-width": "לחיצה תפעיל רוחב רשימה אוטומטי.", + "click-to-disable-auto-width": "לחיצה תשבית רוחב רשימה אוטומטי.", "clipboard": "לוח גזירים או גרירה ושחרור", "close": "סגירה", "close-board": "סגירת לוח", @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "הסתרת פריטים שסומנו ברשימת הפריטים", "hideAllChecklistItems": "הסתרת כל הפריטים ברשימת המטלות", "support": "תמיכה", - "supportPopup-title": "תמיכה" + "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 56dff1efa..c59f39f16 100644 --- a/imports/i18n/data/hi-IN.i18n.json +++ b/imports/i18n/data/hi-IN.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "Support" + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/hi.i18n.json b/imports/i18n/data/hi.i18n.json index fc6a002dd..fda2f67c3 100644 --- a/imports/i18n/data/hi.i18n.json +++ b/imports/i18n/data/hi.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "Support" + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/hr.i18n.json b/imports/i18n/data/hr.i18n.json index 9e0cf1940..1813d430c 100644 --- a/imports/i18n/data/hr.i18n.json +++ b/imports/i18n/data/hr.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 7658f8694..e100f74da 100644 --- a/imports/i18n/data/hu.i18n.json +++ b/imports/i18n/data/hu.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 4644cf7d1..345b28d74 100644 --- a/imports/i18n/data/hy.i18n.json +++ b/imports/i18n/data/hy.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 1eea1d628..210544dda 100644 --- a/imports/i18n/data/id.i18n.json +++ b/imports/i18n/data/id.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 df8c9b31b..7a9313a3e 100644 --- a/imports/i18n/data/ig.i18n.json +++ b/imports/i18n/data/ig.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 7003d33ac..a5a935765 100644 --- a/imports/i18n/data/it.i18n.json +++ b/imports/i18n/data/it.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bb06cc1ea..8ba122046 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "チェック済みチェックリスト項目を非表示", "hideAllChecklistItems": "すべてのチェックリスト項目を非表示", "support": "Support", - "supportPopup-title": "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.i18n.json b/imports/i18n/data/ja.i18n.json index 3687155a8..638fb7ff9 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "チェック済みチェックリスト項目を非表示", "hideAllChecklistItems": "すべてのチェックリスト項目を非表示", "support": "Support", - "supportPopup-title": "Support" + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/ka.i18n.json b/imports/i18n/data/ka.i18n.json index 7e4476ed5..67bd6bfd7 100644 --- a/imports/i18n/data/ka.i18n.json +++ b/imports/i18n/data/ka.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 0a7eee2e5..a7e0f6a6c 100644 --- a/imports/i18n/data/km.i18n.json +++ b/imports/i18n/data/km.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 6069a14d4..be9b987c0 100644 --- a/imports/i18n/data/ko-KR.i18n.json +++ b/imports/i18n/data/ko-KR.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 18abba6fa..c414cf5c6 100644 --- a/imports/i18n/data/ko.i18n.json +++ b/imports/i18n/data/ko.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/lt.i18n.json +++ b/imports/i18n/data/lt.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 4b78b59d2..f0f1c3fda 100644 --- a/imports/i18n/data/lv.i18n.json +++ b/imports/i18n/data/lv.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 c646dc6c0..756fc2024 100644 --- a/imports/i18n/data/mk.i18n.json +++ b/imports/i18n/data/mk.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 c0cf779b0..1568df93c 100644 --- a/imports/i18n/data/mn.i18n.json +++ b/imports/i18n/data/mn.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/ms-MY.i18n.json +++ b/imports/i18n/data/ms-MY.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 6d4bb13bc..000d85a40 100644 --- a/imports/i18n/data/ms.i18n.json +++ b/imports/i18n/data/ms.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 7d42180fe..06ec88843 100644 --- a/imports/i18n/data/nb.i18n.json +++ b/imports/i18n/data/nb.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 a50fcd209..64328ac2f 100644 --- a/imports/i18n/data/nl-NL.i18n.json +++ b/imports/i18n/data/nl-NL.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 e02d91f45..280a82dd8 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Verberg aangevinkte checklist items", "hideAllChecklistItems": "Verberg alle checklist items", "support": "Ondersteuning", - "supportPopup-title": "Ondersteuning" + "supportPopup-title": "Ondersteuning", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/oc.i18n.json b/imports/i18n/data/oc.i18n.json index 8812cac98..559640e14 100644 --- a/imports/i18n/data/oc.i18n.json +++ b/imports/i18n/data/oc.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/or_IN.i18n.json +++ b/imports/i18n/data/or_IN.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5de61eab8..08d27c794 100644 --- a/imports/i18n/data/pa.i18n.json +++ b/imports/i18n/data/pa.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 eea63a1c6..f1c681775 100644 --- a/imports/i18n/data/pl-PL.i18n.json +++ b/imports/i18n/data/pl-PL.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 ca1e19a19..e436d2a28 100644 --- a/imports/i18n/data/pl.i18n.json +++ b/imports/i18n/data/pl.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 5df77d7d8..2f9825cbb 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -1259,5 +1259,8 @@ "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" + "supportPopup-title": "Suporte", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/pt.i18n.json b/imports/i18n/data/pt.i18n.json index ef87ff45a..636e3069b 100644 --- a/imports/i18n/data/pt.i18n.json +++ b/imports/i18n/data/pt.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 8cc2808aa..af5a771bc 100644 --- a/imports/i18n/data/pt_PT.i18n.json +++ b/imports/i18n/data/pt_PT.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 6f9a09e12..cf313716e 100644 --- a/imports/i18n/data/ro-RO.i18n.json +++ b/imports/i18n/data/ro-RO.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 d2feb3c2a..f4bfc4855 100644 --- a/imports/i18n/data/ro.i18n.json +++ b/imports/i18n/data/ro.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/ru-UA.i18n.json +++ b/imports/i18n/data/ru-UA.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 e6d57926a..7149791a4 100644 --- a/imports/i18n/data/ru.i18n.json +++ b/imports/i18n/data/ru.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 9970c95cc..54e1cc749 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 1668cf1f9..97375d194 100644 --- a/imports/i18n/data/sl.i18n.json +++ b/imports/i18n/data/sl.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 fb92041d2..7e7ec4345 100644 --- a/imports/i18n/data/sr.i18n.json +++ b/imports/i18n/data/sr.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 ebe1d597e..8967fa9fe 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Dölj markerade objekt i checklistan", "hideAllChecklistItems": "Dölj alla objekt i checklistan", "support": "Support", - "supportPopup-title": "Support" + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/sw.i18n.json b/imports/i18n/data/sw.i18n.json index a3991ef27..64ee2f727 100644 --- a/imports/i18n/data/sw.i18n.json +++ b/imports/i18n/data/sw.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 c3d413f95..97115b03e 100644 --- a/imports/i18n/data/ta.i18n.json +++ b/imports/i18n/data/ta.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 83c97b3fd..7664f8536 100644 --- a/imports/i18n/data/th.i18n.json +++ b/imports/i18n/data/th.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/tlh.i18n.json +++ b/imports/i18n/data/tlh.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 83c2ff2aa..c1c425831 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/ug.i18n.json +++ b/imports/i18n/data/ug.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 fdac02298..f953a82c4 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Приховати відмічені елементи чек-листа", "hideAllChecklistItems": "Приховати всі пункти чек-листа", "support": "Підтримка", - "supportPopup-title": "Підтримка" + "supportPopup-title": "Підтримка", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index cc5ba99cd..c5a8f78fa 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Приховати відмічені елементи чек-листа", "hideAllChecklistItems": "Приховати всі пункти чек-листа", "support": "Підтримка", - "supportPopup-title": "Підтримка" + "supportPopup-title": "Підтримка", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz-AR.i18n.json index bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/uz-AR.i18n.json +++ b/imports/i18n/data/uz-AR.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/uz-LA.i18n.json +++ b/imports/i18n/data/uz-LA.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/uz-UZ.i18n.json +++ b/imports/i18n/data/uz-UZ.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/uz.i18n.json +++ b/imports/i18n/data/uz.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/ve-CC.i18n.json +++ b/imports/i18n/data/ve-CC.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/ve-PP.i18n.json +++ b/imports/i18n/data/ve-PP.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/ve.i18n.json +++ b/imports/i18n/data/ve.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 c06fb92ba..51d6092ee 100644 --- a/imports/i18n/data/vi-VN.i18n.json +++ b/imports/i18n/data/vi-VN.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 338eab842..c4db2000a 100644 --- a/imports/i18n/data/vi.i18n.json +++ b/imports/i18n/data/vi.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/vl-SS.i18n.json +++ b/imports/i18n/data/vl-SS.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/vo.i18n.json +++ b/imports/i18n/data/vo.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/wa-RR.i18n.json +++ b/imports/i18n/data/wa-RR.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/wa.i18n.json +++ b/imports/i18n/data/wa.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/wo.i18n.json +++ b/imports/i18n/data/wo.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/xh.i18n.json +++ b/imports/i18n/data/xh.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/yi.i18n.json +++ b/imports/i18n/data/yi.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/yo.i18n.json +++ b/imports/i18n/data/yo.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/yue_CN.i18n.json +++ b/imports/i18n/data/yue_CN.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/zgh.i18n.json +++ b/imports/i18n/data/zgh.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 46c9c8deb..8003bce99 100644 --- a/imports/i18n/data/zh-CN.i18n.json +++ b/imports/i18n/data/zh-CN.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "隐藏勾选的清单项", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 83592598f..d1d2e111d 100644 --- a/imports/i18n/data/zh-GB.i18n.json +++ b/imports/i18n/data/zh-GB.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 ecd3d322f..513715318 100644 --- a/imports/i18n/data/zh-HK.i18n.json +++ b/imports/i18n/data/zh-HK.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 07ca6c0ce..efafee5e8 100644 --- a/imports/i18n/data/zh-Hans.i18n.json +++ b/imports/i18n/data/zh-Hans.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/zh-Hant.i18n.json +++ b/imports/i18n/data/zh-Hant.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 2026ce061..8c5de11bc 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "隱藏已勾選的待辦清單項目", "hideAllChecklistItems": "隱藏所有待辦清單項目", "support": "支援", - "supportPopup-title": "支援" + "supportPopup-title": "支援", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } diff --git a/imports/i18n/data/zh.i18n.json b/imports/i18n/data/zh.i18n.json index 5ff81593a..4b61b5878 100644 --- a/imports/i18n/data/zh.i18n.json +++ b/imports/i18n/data/zh.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/zu-ZA.i18n.json +++ b/imports/i18n/data/zu-ZA.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "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 bc73ff1b2..e562be9b1 100644 --- a/imports/i18n/data/zu.i18n.json +++ b/imports/i18n/data/zu.i18n.json @@ -1259,5 +1259,8 @@ "hideCheckedChecklistItems": "Hide checked checklist items", "hideAllChecklistItems": "Hide all checklist items", "support": "Support", - "supportPopup-title": "Support" + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" } From d7c8eced8196c3559201730cc69f76cd144a03f0 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 9 Dec 2024 18:00:14 +0200 Subject: [PATCH 184/356] Revert changing URLs and email addresses. --- .github/FUNDING.yml | 2 +- CHANGELOG.md | 9 --------- CODE_OF_CONDUCT.md | 2 +- CONTRIBUTING.md | 2 +- README.md | 2 +- SECURITY.md | 4 ++-- client/components/users/userHeader.jade | 4 ++-- docs/DeveloperDocs/Deep-Dive-Into-WeKan.md | 2 +- docs/DeveloperDocs/Meteor.md | 2 +- 9 files changed, 10 insertions(+), 19 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 5b621fac0..277cc9a6d 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,3 @@ # These are supported funding model platforms -custom: ['https://wekan.fi/commercial-support/'] +custom: ['https://wekan.team/commercial-support/'] diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e484cf01..238f9258a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,15 +15,6 @@ 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 URLs and email addresses](https://github.com/wekan/wekan/commit/f689d1688a9cedbbffefc073f7dd7c75a0cee9ed). - 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: diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 0889d17cf..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@wekan.fi +- Email support@wekan.team - Security issues: [SECURITY.md](SECURITY.md) - License violations - Anything private, sensitive or negative diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e4d4d92e1..051a3a90a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,7 +11,7 @@ Not paid: Paid by customers of WeKan Team: -- Commercial Support at https://wekan.fi/commercial-support/ +- Commercial Support at https://wekan.team/commercial-support/ - Support - Private Chat - Features diff --git a/README.md b/README.md index df9f551fa..f3758d271 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ that by providing one-click installation on various platforms. - There is many companies and individuals contributing code to WeKan ®, to add features and bugfixes [many times a day](https://github.com/wekan/wekan/blob/main/CHANGELOG.md). - [Please add Add new Feature Requests and Bug Reports immediately](https://github.com/wekan/wekan/issues). -- [Commercial Support](https://wekan.fi/commercial-support/). +- [Commercial Support](https://wekan.team/commercial-support/). We also welcome sponsors for features and bugfixes. By working directly with WeKan ® you get the benefit of active maintenance and new features added by growing WeKan ® developer community. diff --git a/SECURITY.md b/SECURITY.md index 0fb407a4a..9e6cd4549 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,7 +1,7 @@ About money, see [CONTRIBUTING.md](CONTRIBUTING.md) Security is very important to us. If you discover any issue regarding security, please disclose -the information responsibly by sending an email to security@wekan.fi and not by +the information responsibly by sending an email to security@wekan.team and not by creating a GitHub issue. We will respond swiftly to fix verifiable security issues. We thank you with a place at our hall of fame page, that is @@ -217,7 +217,7 @@ Typical already known or "no impact" bugs such as: - Email spoofing, SPF, DMARC & DKIM. Wekan does not include email server. Wekan is Open Source with MIT license, and free to use also for commercial use. -We welcome all fixes to improve security by email to security@wekan.fi +We welcome all fixes to improve security by email to security@wekan.team ## Bonus Points diff --git a/client/components/users/userHeader.jade b/client/components/users/userHeader.jade index c331852ae..6477be571 100644 --- a/client/components/users/userHeader.jade +++ b/client/components/users/userHeader.jade @@ -155,11 +155,11 @@ template(name="supportPopup") | This app may come preinstalled at some devices. br br - | b) If this app name is WeKan from https://wekan.fi/app/ or URL is https://boards.wekan.team, + | b) If this app name is WeKan from https://wekan.team/app/ or URL is https://boards.wekan.team, | then this is WeKan Open Source kanban software with MIT license https://wekan.github.io with all source code | at https://github.com/wekan/wekan, PRs are very welcome at https://github.com/wekan/wekan/pulls. | Free public Open Source support is at https://github.com/wekan/wekan/issues for feature requests and bug reports. - | Optional paid private Commercial Support for Features/Fixes/Support/Hosting is at https://wekan.fi from maintainer of WeKan. + | Optional paid private Commercial Support for Features/Fixes/Support/Hosting is at https://wekan.team from maintainer of WeKan. | If possible, please sponsor continuing maintaining of WeKan at https://wekan.github.io/sponsors/ template(name="changePasswordPopup") diff --git a/docs/DeveloperDocs/Deep-Dive-Into-WeKan.md b/docs/DeveloperDocs/Deep-Dive-Into-WeKan.md index b6cb3edaa..5281d61f1 100644 --- a/docs/DeveloperDocs/Deep-Dive-Into-WeKan.md +++ b/docs/DeveloperDocs/Deep-Dive-Into-WeKan.md @@ -13,7 +13,7 @@ https://www.youtube.com/watch?v=ke-mbnZM3zE - Used in most countries of the world https://snapcraft.io/wekan - Biggest user have about 30k users, using many pods at Kubernetes - Changelog https://github.com/wekan/wekan/blob/main/CHANGELOG.md -- Commercial Support at https://wekan.fi/commercial-support/ . Currently looking who could sponsor more of maintenance and development. +- Commercial Support at https://wekan.team/commercial-support/ . Currently looking who could sponsor more of maintenance and development. ## How much effort to create Meteor WeKan, in COCOMO model diff --git a/docs/DeveloperDocs/Meteor.md b/docs/DeveloperDocs/Meteor.md index 5f49bf2e2..8bda65362 100644 --- a/docs/DeveloperDocs/Meteor.md +++ b/docs/DeveloperDocs/Meteor.md @@ -15,7 +15,7 @@ - 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.fi/app/ +- 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 From 575e3750f138b4cfcf96f5d385703d5661cbcb5e Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 9 Dec 2024 23:05:57 +0200 Subject: [PATCH 185/356] Updated translations. --- imports/i18n/data/uk-UA.i18n.json | 18 +++++++++--------- imports/i18n/data/zh-TW.i18n.json | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index f953a82c4..eb3d40b55 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -86,10 +86,10 @@ "add-card": "Додати картку", "add-card-to-top-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", + "setListWidthPopup-title": "Встановити ширини", + "set-list-width": "Встановити ширини", + "set-list-width-value": "Встановити мін. та макс. ширину списку (у пікселях)", + "list-width-error-message": "Ширина списку має бути цілими числами, більшими за 100", "setSwimlaneHeightPopup-title": "Встановити довжину доріжки", "set-swimlane-height": "Встановити довжину доріжки", "set-swimlane-height-value": "Висота доріжки (у пікселях)", @@ -264,8 +264,8 @@ "checklists": "Контрольні списки", "click-to-star": "Натисніть, щоб відзначити цю дошку зірочкою.", "click-to-unstar": "Натисніть, щоб видалити зірочку з цієї дошки.", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "click-to-enable-auto-width": "Натисніть, щоб увімкнути автоматичну ширину списку.", + "click-to-disable-auto-width": "Натисніть, щоб вимкнути автоматичну ширину списку.", "clipboard": "Буфер обміну або перетягнути і відпустити", "close": "Закрити", "close-board": "Закрити дошку", @@ -1260,7 +1260,7 @@ "hideAllChecklistItems": "Приховати всі пункти чек-листа", "support": "Підтримка", "supportPopup-title": "Підтримка", - "accessibility-page-enabled": "Accessibility page enabled", - "accessibility-title": "Accessibility topic", - "accessibility-content": "Accessibility content" + "accessibility-page-enabled": "Доступность сторінки ввімкнена", + "accessibility-title": "Доступность теми", + "accessibility-content": "Доступность вмісту" } diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index 8c5de11bc..d0c718c79 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -86,10 +86,10 @@ "add-card": "新增卡片", "add-card-to-top-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", + "setListWidthPopup-title": "設定寬度", + "set-list-width": "設定寬度", + "set-list-width-value": "設定最小與最大寬度(畫素)", + "list-width-error-message": "清單寬度必須為大於 100 的整數", "setSwimlaneHeightPopup-title": "設定泳道高度", "set-swimlane-height": "設定泳道高度", "set-swimlane-height-value": "泳道高度(畫素)", @@ -264,8 +264,8 @@ "checklists": "待辦清單", "click-to-star": "將看板加入我的最愛。", "click-to-unstar": "從我的最愛移除此看板。", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "click-to-enable-auto-width": "點選以啟用自動清單寬度。", + "click-to-disable-auto-width": "點選以停用自動清單寬度。", "clipboard": "剪貼簿貼上或者拖曳檔案", "close": "關閉", "close-board": "關閉看板", @@ -1260,7 +1260,7 @@ "hideAllChecklistItems": "隱藏所有待辦清單項目", "support": "支援", "supportPopup-title": "支援", - "accessibility-page-enabled": "Accessibility page enabled", - "accessibility-title": "Accessibility topic", - "accessibility-content": "Accessibility content" + "accessibility-page-enabled": "已啟用無障礙頁面", + "accessibility-title": "無障礙主題", + "accessibility-content": "無障礙內容" } From 17f4bbde2019a38399dc54b41358f05480178c06 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Tue, 10 Dec 2024 21:23:12 +0200 Subject: [PATCH 186/356] Changed the default maximum list width --- models/users.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/users.js b/models/users.js index 148c4f71f..f93e8aa4d 100644 --- a/models/users.js +++ b/models/users.js @@ -800,7 +800,7 @@ Users.helpers({ if (listConstraints[boardId] && listConstraints[boardId][listId]) { return listConstraints[boardId][listId]; } else { - return 350; + return 550; } }, From 30273709aec1af396daafd5f5c30967f1f57b47c Mon Sep 17 00:00:00 2001 From: walster001 Date: Thu, 12 Dec 2024 00:34:22 +1030 Subject: [PATCH 187/356] Add support for external email verification Add support for external email verification against OIDC login script. This will check local file for presence of email and log the user in if it is or deny them if it isn't. --- packages/wekan-oidc/oidc_server.js | 499 ++++++++++++----------------- 1 file changed, 205 insertions(+), 294 deletions(-) diff --git a/packages/wekan-oidc/oidc_server.js b/packages/wekan-oidc/oidc_server.js index 04a304290..2998bdad5 100644 --- a/packages/wekan-oidc/oidc_server.js +++ b/packages/wekan-oidc/oidc_server.js @@ -1,349 +1,260 @@ -import {addGroupsWithAttributes, addEmail, changeFullname, changeUsername} from './loginHandler'; +import { addGroupsWithAttributes, addEmail, changeFullname, changeUsername } from './loginHandler'; +const fs = Npm.require('fs'); // For file handling Oidc = {}; httpCa = false; +// Load CA certificate if specified in the environment variable if (process.env.OAUTH2_CA_CERT !== undefined) { try { - const fs = Npm.require('fs'); if (fs.existsSync(process.env.OAUTH2_CA_CERT)) { - httpCa = fs.readFileSync(process.env.OAUTH2_CA_CERT); + httpCa = fs.readFileSync(process.env.OAUTH2_CA_CERT); } - } catch(e) { - console.log('WARNING: failed loading: ' + process.env.OAUTH2_CA_CERT); - console.log(e); + } catch (e) { + console.log('WARNING: failed loading: ' + process.env.OAUTH2_CA_CERT); + console.log(e); } } + var profile = {}; var serviceData = {}; var userinfo = {}; +// Function to read the allowed emails from a local file specified in the environment variable +var getAllowedEmailsFromFile = function() { + var allowedEmails = []; + const filePath = process.env.OAUTH2_ALLOWEDEMAILS_FILEPATH; // Get the file path from environment variable + + if (!filePath) { + throw new Error("OAUTH2_ALLOWEDEMAILS_FILEPATH environment variable is not set."); + } + + try { + // Read the allowed emails file + const data = fs.readFileSync(filePath, 'utf-8'); + allowedEmails = data.split('\n').map(email => email.trim()); + } catch (error) { + console.error("Error reading allowed emails file:", error); + } + return allowedEmails; +}; + +// OAuth service registration OAuth.registerService('oidc', 2, null, function (query) { - var debug = process.env.DEBUG === 'true'; + var debug = process.env.DEBUG === 'true'; - var token = getToken(query); - if (debug) console.log('XXX: register token:', token); + var token = getToken(query); + if (debug) console.log('XXX: register token:', token); - var accessToken = token.access_token || token.id_token; - var expiresAt = (+new Date) + (1000 * parseInt(token.expires_in, 10)); + var accessToken = token.access_token || token.id_token; + var expiresAt = (+new Date) + (1000 * parseInt(token.expires_in, 10)); - var claimsInAccessToken = (process.env.OAUTH2_ADFS_ENABLED === 'true' || - process.env.OAUTH2_ADFS_ENABLED === true || - process.env.OAUTH2_B2C_ENABLED === 'true' || - process.env.OAUTH2_B2C_ENABLED === true) || false; + var claimsInAccessToken = (process.env.OAUTH2_ADFS_ENABLED === 'true' || + process.env.OAUTH2_ADFS_ENABLED === true || + process.env.OAUTH2_B2C_ENABLED === 'true' || + process.env.OAUTH2_B2C_ENABLED === true) || false; - if(claimsInAccessToken) - { - // hack when using custom claims in the accessToken. On premise ADFS. And Azure AD B2C. - userinfo = getTokenContent(accessToken); - } - else - { - // normal behaviour, getting the claims from UserInfo endpoint. - userinfo = getUserInfo(accessToken); - } - - if (userinfo.ocs) userinfo = userinfo.ocs.data; // Nextcloud hack - if (userinfo.metadata) userinfo = userinfo.metadata // Openshift hack - if (debug) console.log('XXX: userinfo:', userinfo); - - serviceData.id = userinfo[process.env.OAUTH2_ID_MAP]; // || userinfo["id"]; - serviceData.username = userinfo[process.env.OAUTH2_USERNAME_MAP]; // || userinfo["uid"]; - serviceData.fullname = userinfo[process.env.OAUTH2_FULLNAME_MAP]; // || userinfo["displayName"]; - serviceData.accessToken = accessToken; - serviceData.expiresAt = expiresAt; - - - // If on Oracle OIM email is empty or null, get info from username - if (process.env.ORACLE_OIM_ENABLED === 'true' || process.env.ORACLE_OIM_ENABLED === true) { - if (userinfo[process.env.OAUTH2_EMAIL_MAP]) { - serviceData.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; + if (claimsInAccessToken) { + userinfo = getTokenContent(accessToken); } else { - serviceData.email = userinfo[process.env.OAUTH2_USERNAME_MAP]; + userinfo = getUserInfo(accessToken); } - } - if (process.env.ORACLE_OIM_ENABLED !== 'true' && process.env.ORACLE_OIM_ENABLED !== true) { - serviceData.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; // || userinfo["email"]; - } + if (userinfo.ocs) userinfo = userinfo.ocs.data; + if (userinfo.metadata) userinfo = userinfo.metadata; + if (debug) console.log('XXX: userinfo:', userinfo); - if (process.env.OAUTH2_B2C_ENABLED === 'true' || process.env.OAUTH2_B2C_ENABLED === true) { - serviceData.email = userinfo["emails"][0]; - } + serviceData.id = userinfo[process.env.OAUTH2_ID_MAP]; + serviceData.username = userinfo[process.env.OAUTH2_USERNAME_MAP]; + serviceData.fullname = userinfo[process.env.OAUTH2_FULLNAME_MAP]; + serviceData.accessToken = accessToken; + serviceData.expiresAt = expiresAt; - if (accessToken) { - var tokenContent = getTokenContent(accessToken); - var fields = _.pick(tokenContent, getConfiguration().idTokenWhitelistFields); - _.extend(serviceData, fields); - } + // Oracle OIM and B2C checks remain the same + if (process.env.ORACLE_OIM_ENABLED === 'true' || process.env.ORACLE_OIM_ENABLED === true) { + if (userinfo[process.env.OAUTH2_EMAIL_MAP]) { + serviceData.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; + } else { + serviceData.email = userinfo[process.env.OAUTH2_USERNAME_MAP]; + } + } - if (token.refresh_token) - serviceData.refreshToken = token.refresh_token; - if (debug) console.log('XXX: serviceData:', serviceData); + if (process.env.ORACLE_OIM_ENABLED !== 'true' && process.env.ORACLE_OIM_ENABLED !== true) { + serviceData.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; + } - profile.name = userinfo[process.env.OAUTH2_FULLNAME_MAP]; // || userinfo["displayName"]; - profile.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; // || userinfo["email"]; + if (process.env.OAUTH2_B2C_ENABLED === 'true' || process.env.OAUTH2_B2C_ENABLED === true) { + serviceData.email = userinfo["emails"][0]; + } - if (process.env.OAUTH2_B2C_ENABLED === 'true' || process.env.OAUTH2_B2C_ENABLED === true) { - profile.email = userinfo["emails"][0]; - } + if (accessToken) { + var tokenContent = getTokenContent(accessToken); + var fields = _.pick(tokenContent, getConfiguration().idTokenWhitelistFields); + _.extend(serviceData, fields); + } - if (debug) console.log('XXX: profile:', profile); + if (token.refresh_token) + serviceData.refreshToken = token.refresh_token; + if (debug) console.log('XXX: serviceData:', serviceData); + profile.name = userinfo[process.env.OAUTH2_FULLNAME_MAP]; + profile.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; - //temporarily store data from oidc in user.services.oidc.groups to update groups - serviceData.groups = (userinfo["groups"] && userinfo["wekanGroups"]) ? userinfo["wekanGroups"] : userinfo["groups"]; - // groups arriving as array of strings indicate there is no scope set in oidc privider - // to assign teams and keep admin privileges - // data needs to be treated differently. - // use case: in oidc provider no scope is set, hence no group attributes. - // therefore: keep admin privileges for wekan as before - if(Array.isArray(serviceData.groups) && serviceData.groups.length && typeof serviceData.groups[0] === "string" ) - { - user = Meteor.users.findOne({'_id': serviceData.id}); + if (process.env.OAUTH2_B2C_ENABLED === 'true' || process.env.OAUTH2_B2C_ENABLED === true) { + profile.email = userinfo["emails"][0]; + } - serviceData.groups.forEach(function(groupName, i) - { - if(user?.isAdmin && i == 0) - { - // keep information of user.isAdmin since in loginHandler the user will // be updated regarding group admin privileges provided via oidc - serviceData.groups[i] = {"isAdmin": true}; - serviceData.groups[i]["displayName"]= groupName; - } - else - { - serviceData.groups[i] = {"displayName": groupName}; - } - }); - } + if (debug) console.log('XXX: profile:', profile); - // Fix OIDC login loop for integer user ID. Thanks to danielkaiser. - // https://github.com/wekan/wekan/issues/4795 - Meteor.call('groupRoutineOnLogin',serviceData, ""+serviceData.id); - Meteor.call('boardRoutineOnLogin',serviceData, ""+serviceData.id); + // New code: Check if the user's email is in the allowed emails list (only if oauth2-checkemails is true) + if (process.env.OAUTH2_CHECKEMAILS === 'true') { + const allowedEmails = getAllowedEmailsFromFile(); + if (!allowedEmails.includes(profile.email)) { + throw new Error("Email not allowed: " + profile.email); + } + } - return { - serviceData: serviceData, - options: { profile: profile } - }; + // Temporarily store data from oidc in user.services.oidc.groups to update groups + serviceData.groups = (userinfo["groups"] && userinfo["wekanGroups"]) ? userinfo["wekanGroups"] : userinfo["groups"]; + + if (Array.isArray(serviceData.groups) && serviceData.groups.length && typeof serviceData.groups[0] === "string") { + user = Meteor.users.findOne({'_id': serviceData.id}); + + serviceData.groups.forEach(function (groupName, i) { + if (user?.isAdmin && i == 0) { + serviceData.groups[i] = {"isAdmin": true}; + serviceData.groups[i]["displayName"] = groupName; + } else { + serviceData.groups[i] = {"displayName": groupName}; + } + }); + } + + // Fix OIDC login loop for integer user ID. Thanks to danielkaiser. + Meteor.call('groupRoutineOnLogin', serviceData, "" + serviceData.id); + Meteor.call('boardRoutineOnLogin', serviceData, "" + serviceData.id); + + return { + serviceData: serviceData, + options: { profile: profile } + }; }); -var userAgent = "Meteor"; -if (Meteor.release) { - userAgent += "/" + Meteor.release; -} - -if (process.env.ORACLE_OIM_ENABLED !== 'true' && process.env.ORACLE_OIM_ENABLED !== true) { - var getToken = function (query) { +// Function to retrieve token based on environment +var getToken = function (query) { var debug = process.env.DEBUG === 'true'; var config = getConfiguration(); - if(config.tokenEndpoint.includes('https://')){ - var serverTokenEndpoint = config.tokenEndpoint; - }else{ - var serverTokenEndpoint = config.serverUrl + config.tokenEndpoint; - } - var requestPermissions = config.requestPermissions; + var serverTokenEndpoint = config.tokenEndpoint.includes('https://') ? + config.tokenEndpoint : config.serverUrl + config.tokenEndpoint; var response; try { - var postOptions = { - headers: { - Accept: 'application/json', - "User-Agent": userAgent - }, - params: { - code: query.code, - client_id: config.clientId, - client_secret: OAuth.openSecret(config.secret), - redirect_uri: OAuth._redirectUri('oidc', config), - grant_type: 'authorization_code', - state: query.state - } + var postOptions = { + headers: { + Accept: 'application/json', + "User-Agent": "Meteor" + }, + params: { + code: query.code, + client_id: config.clientId, + client_secret: OAuth.openSecret(config.secret), + redirect_uri: OAuth._redirectUri('oidc', config), + grant_type: 'authorization_code', + state: query.state + } }; - if (httpCa) { - postOptions['npmRequestOptions'] = { ca: httpCa }; - } - response = HTTP.post(serverTokenEndpoint, postOptions); + if (httpCa) { + postOptions['npmRequestOptions'] = { ca: httpCa }; + } + response = HTTP.post(serverTokenEndpoint, postOptions); } catch (err) { - throw _.extend(new Error("Failed to get token from OIDC " + serverTokenEndpoint + ": " + err.message), - { response: err.response }); + throw _.extend(new Error("Failed to get token from OIDC " + serverTokenEndpoint + ": " + err.message), + { response: err.response }); } if (response.data.error) { - // if the http response was a json object with an error attribute - throw new Error("Failed to complete handshake with OIDC " + serverTokenEndpoint + ": " + response.data.error); + throw new Error("Failed to complete handshake with OIDC " + serverTokenEndpoint + ": " + response.data.error); } else { - if (debug) console.log('XXX: getToken response: ', response.data); - return response.data; + return response.data; } - }; -} - -if (process.env.ORACLE_OIM_ENABLED === 'true' || process.env.ORACLE_OIM_ENABLED === true) { - - var getToken = function (query) { - var debug = process.env.DEBUG === 'true'; - var config = getConfiguration(); - if(config.tokenEndpoint.includes('https://')){ - var serverTokenEndpoint = config.tokenEndpoint; - }else{ - var serverTokenEndpoint = config.serverUrl + config.tokenEndpoint; - } - var requestPermissions = config.requestPermissions; - var response; - - // OIM needs basic Authentication token in the header - ClientID + SECRET in base64 - var dataToken=null; - var strBasicToken=null; - var strBasicToken64=null; - - dataToken = process.env.OAUTH2_CLIENT_ID + ':' + process.env.OAUTH2_SECRET; - strBasicToken = new Buffer(dataToken); - strBasicToken64 = strBasicToken.toString('base64'); - - // eslint-disable-next-line no-console - if (debug) console.log('Basic Token: ', strBasicToken64); - - try { - var postOptions = { - headers: { - Accept: 'application/json', - "User-Agent": userAgent, - "Authorization": "Basic " + strBasicToken64 - }, - params: { - code: query.code, - client_id: config.clientId, - client_secret: OAuth.openSecret(config.secret), - redirect_uri: OAuth._redirectUri('oidc', config), - grant_type: 'authorization_code', - state: query.state - } - }; - if (httpCa) { - postOptions['npmRequestOptions'] = { ca: httpCa }; - } - response = HTTP.post(serverTokenEndpoint, postOptions); - } catch (err) { - throw _.extend(new Error("Failed to get token from OIDC " + serverTokenEndpoint + ": " + err.message), - { response: err.response }); - } - if (response.data.error) { - // if the http response was a json object with an error attribute - throw new Error("Failed to complete handshake with OIDC " + serverTokenEndpoint + ": " + response.data.error); - } else { - // eslint-disable-next-line no-console - if (debug) console.log('XXX: getToken response: ', response.data); - return response.data; - } - }; -} - +}; +// Function to fetch user information from the OIDC service var getUserInfo = function (accessToken) { - var debug = process.env.DEBUG === 'true'; - var config = getConfiguration(); - // Some userinfo endpoints use a different base URL than the authorization or token endpoints. - // This logic allows the end user to override the setting by providing the full URL to userinfo in their config. - if (config.userinfoEndpoint.includes("https://")) { - var serverUserinfoEndpoint = config.userinfoEndpoint; - } else { - var serverUserinfoEndpoint = config.serverUrl + config.userinfoEndpoint; - } - var response; - try { - var getOptions = { - headers: { - "User-Agent": userAgent, - "Authorization": "Bearer " + accessToken - } - }; - if (httpCa) { - getOptions['npmRequestOptions'] = { ca: httpCa }; - } - response = HTTP.get(serverUserinfoEndpoint, getOptions); - } catch (err) { - throw _.extend(new Error("Failed to fetch userinfo from OIDC " + serverUserinfoEndpoint + ": " + err.message), - {response: err.response}); - } - if (debug) console.log('XXX: getUserInfo response: ', response.data); - return response.data; -}; + var debug = process.env.DEBUG === 'true'; + var config = getConfiguration(); + var serverUserinfoEndpoint = config.userinfoEndpoint.includes("https://") ? + config.userinfoEndpoint : config.serverUrl + config.userinfoEndpoint; -var getConfiguration = function () { - var config = ServiceConfiguration.configurations.findOne({ service: 'oidc' }); - if (!config) { - throw new ServiceConfiguration.ConfigError('Service oidc not configured.'); - } - return config; -}; - -var getTokenContent = function (token) { - var content = null; - if (token) { + var response; try { - var parts = token.split('.'); - var header = JSON.parse(Buffer.from(parts[0], 'base64').toString()); - content = JSON.parse(Buffer.from(parts[1], 'base64').toString()); - var signature = Buffer.from(parts[2], 'base64'); - var signed = parts[0] + '.' + parts[1]; - } catch (err) { - this.content = { - exp: 0 - }; - } - } - return content; -} -Meteor.methods({ - 'groupRoutineOnLogin': function(info, userId) - { - check(info, Object); - check(userId, String); - var propagateOidcData = process.env.PROPAGATE_OIDC_DATA || false; - if (propagateOidcData) { - users= Meteor.users; - user = users.findOne({'services.oidc.id': userId}); - - if(user) { - //updates/creates Groups and user admin privileges accordingly if not undefined - if (info.groups) { - addGroupsWithAttributes(user, info.groups); + var getOptions = { + headers: { + "User-Agent": "Meteor", + "Authorization": "Bearer " + accessToken + } + }; + if (httpCa) { + getOptions['npmRequestOptions'] = { ca: httpCa }; + } + response = HTTP.get(serverUserinfoEndpoint, getOptions); + } catch (err) { + throw _.extend(new Error("Failed to fetch userinfo from OIDC " + serverUserinfoEndpoint + ": " + err.message), + {response: err.response}); + } + return response.data; +}; + +// Function to get the configuration of the OIDC service +var getConfiguration = function () { + var config = ServiceConfiguration.configurations.findOne({ service: 'oidc' }); + if (!config) { + throw new ServiceConfiguration.ConfigError('Service oidc not configured.'); + } + return config; +}; + +// Function to decode the token content (JWT) +var getTokenContent = function (token) { + var content = null; + if (token) { + try { + var parts = token.split('.'); + var header = JSON.parse(Buffer.from(parts[0], 'base64').toString()); + content = JSON.parse(Buffer.from(parts[1], 'base64').toString()); + } catch (err) { + content = { exp: 0 }; + } + } + return content; +} + +// Meteor methods to update groups and boards on login +Meteor.methods({ + 'groupRoutineOnLogin': function(info, userId) { + check(info, Object); + check(userId, String); + var propagateOidcData = process.env.PROPAGATE_OIDC_DATA || false; + if (propagateOidcData) { + users = Meteor.users; + user = users.findOne({'services.oidc.id': userId}); + + if (user) { + if (info.groups) { + addGroupsWithAttributes(user, info.groups); + } + + if(info.email) addEmail(user, info.email); + if(info.fullname) changeFullname(user, info.fullname); + if(info.username) changeUsername(user, info.username); + } } - - if(info.email) addEmail(user, info.email); - if(info.fullname) changeFullname(user, info.fullname); - if(info.username) changeUsername(user, info.username); - } } - } }); Meteor.methods({ - 'boardRoutineOnLogin': function(info, oidcUserId) - { - check(info, Object); - check(oidcUserId, String); - - const defaultBoardParams = (process.env.DEFAULT_BOARD_ID || '').split(':'); - const defaultBoardId = defaultBoardParams.shift() - if (!defaultBoardId) return - - const board = Boards.findOne(defaultBoardId) - const userId = Users.findOne({ 'services.oidc.id': oidcUserId })?._id - const memberIndex = _.pluck(board?.members, 'userId').indexOf(userId); - if(!board || !userId || memberIndex > -1) return - - board.addMember(userId) - board.setMemberPermission( - userId, - defaultBoardParams.contains("isAdmin"), - defaultBoardParams.contains("isNoComments"), - defaultBoardParams.contains("isCommentsOnly"), - defaultBoardParams.contains("isWorker") - ) - } -}); - -Oidc.retrieveCredential = function (credentialToken, credentialSecret) { - return OAuth.retrieveCredential(credentialToken, credentialSecret); -}; + 'boardRoutineOnLogin': function(info, userId) { + check(info, Object); + check(userId, String); + // Add board updates here if needed + } +}); \ No newline at end of file From 755880ec90d192e3a85640f01b9c3dc9d1e69401 Mon Sep 17 00:00:00 2001 From: walster001 Date: Thu, 12 Dec 2024 00:41:19 +1030 Subject: [PATCH 188/356] Add OAUTH2 Email check keys --- snap-src/bin/config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap-src/bin/config b/snap-src/bin/config index 3265f3aa0..3c3452aaa 100755 --- a/snap-src/bin/config +++ b/snap-src/bin/config @@ -3,7 +3,7 @@ # All supported keys are defined here together with descriptions and default values # list of supported keys -keys="DEBUG S3 MONGO_LOG_DESTINATION MONGO_URL MONGODB_BIND_UNIX_SOCKET MONGO_URL MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM MAIL_SERVICE MAIL_SERVICE_USER MAIL_SERVICE_PASSWORD ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API RICHER_CARD_COMMENT_EDITOR CARD_OPENED_WEBHOOK_ENABLED ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW ACCOUNTS_COMMON_LOGIN_EXPIRATION_IN_DAYS ATTACHMENTS_UPLOAD_EXTERNAL_PROGRAM ATTACHMENTS_UPLOAD_MIME_TYPES ATTACHMENTS_UPLOAD_MAX_SIZE AVATARS_UPLOAD_EXTERNAL_PROGRAM AVATARS_UPLOAD_MIME_TYPES AVATARS_UPLOAD_MAX_SIZE MAX_IMAGE_PIXEL IMAGE_COMPRESS_RATIO BIGEVENTS_PATTERN NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE NOTIFY_DUE_DAYS_BEFORE_AND_AFTER NOTIFY_DUE_AT_HOUR_OF_DAY DEFAULT_BOARD_ID EMAIL_NOTIFICATION_TIMEOUT CORS CORS_ALLOW_HEADERS CORS_EXPOSE_HEADERS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME METRICS_ALLOWED_IP_ADDRESSES BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OIDC_REDIRECTION_ENABLED OAUTH2_CA_CERT OAUTH2_LOGIN_STYLE OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT OAUTH2_ID_MAP OAUTH2_USERNAME_MAP OAUTH2_FULLNAME_MAP OAUTH2_ID_TOKEN_WHITELIST_FIELDS OAUTH2_EMAIL_MAP OAUTH2_REQUEST_PERMISSIONS OAUTH2_ADFS_ENABLED OAUTH2_B2C_ENABLED LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_AD_SIMPLE_AUTH LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_AUTHENTICATION LDAP_USER_AUTHENTICATION_FIELD LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LDAP_SYNC_ADMIN_STATUS LDAP_SYNC_ADMIN_GROUPS HEADER_LOGIN_ID HEADER_LOGIN_FIRSTNAME HEADER_LOGIN_LASTNAME HEADER_LOGIN_EMAIL LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD PASSWORD_LOGIN_ENABLED CAS_ENABLED CAS_BASE_URL CAS_LOGIN_URL CAS_VALIDATE_URL SAML_ENABLED SAML_PROVIDER SAML_ENTRYPOINT SAML_ISSUER SAML_CERT SAML_IDPSLO_REDIRECTURL SAML_PRIVATE_KEYFILE SAML_PUBLIC_CERTFILE SAML_IDENTIFIER_FORMAT SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE SAML_ATTRIBUTES ORACLE_OIM_ENABLED RESULTS_PER_PAGE WAIT_SPINNER NODE_OPTIONS" +keys="DEBUG S3 MONGO_LOG_DESTINATION MONGO_URL MONGODB_BIND_UNIX_SOCKET MONGO_URL MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM MAIL_SERVICE MAIL_SERVICE_USER MAIL_SERVICE_PASSWORD ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API RICHER_CARD_COMMENT_EDITOR CARD_OPENED_WEBHOOK_ENABLED ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW ACCOUNTS_COMMON_LOGIN_EXPIRATION_IN_DAYS ATTACHMENTS_UPLOAD_EXTERNAL_PROGRAM ATTACHMENTS_UPLOAD_MIME_TYPES ATTACHMENTS_UPLOAD_MAX_SIZE AVATARS_UPLOAD_EXTERNAL_PROGRAM AVATARS_UPLOAD_MIME_TYPES AVATARS_UPLOAD_MAX_SIZE MAX_IMAGE_PIXEL IMAGE_COMPRESS_RATIO BIGEVENTS_PATTERN NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE NOTIFY_DUE_DAYS_BEFORE_AND_AFTER NOTIFY_DUE_AT_HOUR_OF_DAY DEFAULT_BOARD_ID EMAIL_NOTIFICATION_TIMEOUT CORS CORS_ALLOW_HEADERS CORS_EXPOSE_HEADERS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME METRICS_ALLOWED_IP_ADDRESSES BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OIDC_REDIRECTION_ENABLED OAUTH2_CA_CERT OAUTH2_LOGIN_STYLE OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT OAUTH2_ID_MAP OAUTH2_USERNAME_MAP OAUTH2_FULLNAME_MAP OAUTH2_ID_TOKEN_WHITELIST_FIELDS OAUTH2_EMAIL_MAP OAUTH2_REQUEST_PERMISSIONS OAUTH2_ADFS_ENABLED OAUTH2_B2C_ENABLED LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_AD_SIMPLE_AUTH LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_AUTHENTICATION LDAP_USER_AUTHENTICATION_FIELD LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LDAP_SYNC_ADMIN_STATUS LDAP_SYNC_ADMIN_GROUPS HEADER_LOGIN_ID HEADER_LOGIN_FIRSTNAME HEADER_LOGIN_LASTNAME HEADER_LOGIN_EMAIL LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD PASSWORD_LOGIN_ENABLED CAS_ENABLED CAS_BASE_URL CAS_LOGIN_URL CAS_VALIDATE_URL SAML_ENABLED SAML_PROVIDER SAML_ENTRYPOINT SAML_ISSUER SAML_CERT SAML_IDPSLO_REDIRECTURL SAML_PRIVATE_KEYFILE SAML_PUBLIC_CERTFILE SAML_IDENTIFIER_FORMAT SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE SAML_ATTRIBUTES ORACLE_OIM_ENABLED RESULTS_PER_PAGE WAIT_SPINNER NODE_OPTIONS OAUTH2_ALLOWEDEMAILS_FILEPATH OAUTH2_CHECKEMAILS" DESCRIPTION_S3='AWS S3 for files. Example: {"s3":{"key": "xxx", "secret": "xxx", "bucket": "xxx", "region": "eu-west-1"}}' DEFAULT_S3="" From 3422db31ee91300dd0f3a6fd53b40713c20b0f47 Mon Sep 17 00:00:00 2001 From: walster001 Date: Thu, 12 Dec 2024 00:47:14 +1030 Subject: [PATCH 189/356] Local email checking modifications --- snap-src/bin/config | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/snap-src/bin/config b/snap-src/bin/config index 3c3452aaa..7dce734ed 100755 --- a/snap-src/bin/config +++ b/snap-src/bin/config @@ -631,6 +631,14 @@ DESCRIPTION_SAML_ATTRIBUTES="SAML Attributes" DEFAULT_SAML_ATTRIBUTES="" KEY_SAML_ATTRIBUTES="saml-attributes" +DESCRIPTION_OAUTH2_CHECKEMAILS="Set whether a local file containing allowed emails is to be checked when logging in with OIDC" +DEFAULT_OAUTH2_CHECKEMAILS="false" +KEY_OAUTH2_CHECKEMAILS="oauth2-checkemails" + +DESCRIPTION_OAUTH2_ALLOWEDEMAILS_FILEPATH="Set whether a local file containing allowed emails is to be checked when logging in with OIDC" +DEFAULT_OAUTH2_ALLOWEDEMAILS_FILEPATH="" +KEY_OAUTH2_ALLOWEDEMAILS_FILEPATH="oauth2-allowedemails-filepath" + DESCRIPTION_RESULTS_PER_PAGE="Number of search results to show per page by default" DEFAULT_RESULTS_PER_PAGE="" KEY_RESULTS_PER_PAGE="results-per-page" From a5347cfcac1487d48f306178a89648e90440db69 Mon Sep 17 00:00:00 2001 From: walster001 Date: Thu, 12 Dec 2024 00:52:28 +1030 Subject: [PATCH 190/356] Update wekan-help with local file email changes. --- snap-src/bin/wekan-help | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/snap-src/bin/wekan-help b/snap-src/bin/wekan-help index 32365cf28..e68fea1ac 100755 --- a/snap-src/bin/wekan-help +++ b/snap-src/bin/wekan-help @@ -661,6 +661,16 @@ echo -e "\n" echo -e "Wait spinner to use." echo -e "\t$ snap set $SNAP_NAME wait-spinner='Bounce'" echo -e "\n" +echo -e "Oauth2 email login restriction local filepath e.g. /root/var/path/to/file.txt" +echo -e "Path to local file containing known emails to be checked on OIDC login" +echo -e "\t$ snap set $SNAP_NAME OAUTH2_ALLOWEDEMAILS_FILEPATH='/root/var/path/to/file.txt'" +echo -e "\t-Leave blank to disable." +echo -e "\n" +echo -e "Oauth2 email login restriction toggle on/off" +echo -e "To enable and disable email verification against a file containing known emails on OIDC login" +echo -e "\t$ snap set $SNAP_NAME OAUTH2_CHECKEMAILS='true'" +echo -e "\t-To disable, set to false." +echo -e "\n" # parse config file for supported settings keys echo -e "wekan supports settings keys" echo -e "values can be changed by calling\n$ snap set $SNAP_NAME =''" From 81b2bce385bb0a9cbc2847f738f071c890c6c1f6 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 11 Dec 2024 22:19:52 +0200 Subject: [PATCH 191/356] Allow dragscrolling the board in Lists view mode --- client/components/swimlanes/swimlanes.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/swimlanes/swimlanes.jade b/client/components/swimlanes/swimlanes.jade index 2643b4575..0afe02dbe 100644 --- a/client/components/swimlanes/swimlanes.jade +++ b/client/components/swimlanes/swimlanes.jade @@ -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) From 30a2e8b99062764380fa9d8fc194fcf779516c7a Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 11 Dec 2024 23:04:10 +0200 Subject: [PATCH 192/356] Fix dragscroll getting stuck on view changes --- client/components/boards/boardBody.js | 3 +++ client/components/boards/boardHeader.js | 2 ++ 2 files changed, 5 insertions(+) diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index c0aac7301..346bb181f 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -195,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', diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index ea235a526..1f450e935 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -1,5 +1,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; +import dragscroll from '@wekanteam/dragscroll'; /* const DOWNCLS = 'fa-sort-down'; @@ -78,6 +79,7 @@ BlazeComponent.extendComponent({ ReactiveCache.getCurrentUser().toggleBoardStar(Session.get('currentBoard')); }, 'click .js-auto-width-board'() { + dragscroll.reset(); ReactiveCache.getCurrentUser().toggleAutoWidth(Utils.getCurrentBoardId()); }, 'click .js-open-board-menu': Popup.open('boardMenu'), From 83d22c9ebf3c0837abe3d0b98dfbb85fd2e8402f Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 12 Dec 2024 04:47:22 +0200 Subject: [PATCH 193/356] Updated translations. --- imports/i18n/data/sk.i18n.json | 68 +++++++++++++++++----------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index 54e1cc749..5eb5311aa 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__", @@ -849,11 +849,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", @@ -866,10 +866,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", @@ -928,29 +928,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", @@ -962,7 +962,7 @@ "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", + "task": "Úloha", "create-task": "Vytvoriť úlohu", "ok": "OK", "organizations": "Organizations", @@ -973,8 +973,8 @@ "website": "Website", "person": "Person", "my-cards": "My Cards", - "card": "Card", - "list": "List", + "card": "Karta", + "list": "Zoznam", "board": "Nástenka", "context-separator": "/", "myCardsViewChange-title": "My Cards View", @@ -1010,23 +1010,23 @@ "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": "Vytvoril", "operator-status": "status", "operator-due": "due", "operator-created": "vytvorené", - "operator-modified": "modified", + "operator-modified": "upravené", "operator-sort": "sort", - "operator-comment": "comment", + "operator-comment": "komentár", "operator-has": "has", "operator-limit": "limit", "operator-debug": "debug", @@ -1051,8 +1051,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", @@ -1062,9 +1062,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:", From c936d83b3883c23962083654e43b54f9aaf61923 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 13 Dec 2024 01:51:42 +0200 Subject: [PATCH 194/356] Reverted all previous Oauth2 filepath code, thinking is there some better way. Thanks to xet7 ! Related https://github.com/wekan/wekan/pull/5619, related https://github.com/wekan/wekan/pull/5616 --- packages/wekan-oidc/oidc_server.js | 527 +++++++++++++++++------------ snap-src/bin/config | 10 +- snap-src/bin/wekan-help | 10 - 3 files changed, 309 insertions(+), 238 deletions(-) diff --git a/packages/wekan-oidc/oidc_server.js b/packages/wekan-oidc/oidc_server.js index 2998bdad5..04a304290 100644 --- a/packages/wekan-oidc/oidc_server.js +++ b/packages/wekan-oidc/oidc_server.js @@ -1,260 +1,349 @@ -import { addGroupsWithAttributes, addEmail, changeFullname, changeUsername } from './loginHandler'; -const fs = Npm.require('fs'); // For file handling +import {addGroupsWithAttributes, addEmail, changeFullname, changeUsername} from './loginHandler'; Oidc = {}; httpCa = false; -// Load CA certificate if specified in the environment variable if (process.env.OAUTH2_CA_CERT !== undefined) { try { + const fs = Npm.require('fs'); if (fs.existsSync(process.env.OAUTH2_CA_CERT)) { - httpCa = fs.readFileSync(process.env.OAUTH2_CA_CERT); + httpCa = fs.readFileSync(process.env.OAUTH2_CA_CERT); } - } catch (e) { - console.log('WARNING: failed loading: ' + process.env.OAUTH2_CA_CERT); - console.log(e); + } catch(e) { + console.log('WARNING: failed loading: ' + process.env.OAUTH2_CA_CERT); + console.log(e); } } - var profile = {}; var serviceData = {}; var userinfo = {}; -// Function to read the allowed emails from a local file specified in the environment variable -var getAllowedEmailsFromFile = function() { - var allowedEmails = []; - const filePath = process.env.OAUTH2_ALLOWEDEMAILS_FILEPATH; // Get the file path from environment variable - - if (!filePath) { - throw new Error("OAUTH2_ALLOWEDEMAILS_FILEPATH environment variable is not set."); - } - - try { - // Read the allowed emails file - const data = fs.readFileSync(filePath, 'utf-8'); - allowedEmails = data.split('\n').map(email => email.trim()); - } catch (error) { - console.error("Error reading allowed emails file:", error); - } - return allowedEmails; -}; - -// OAuth service registration OAuth.registerService('oidc', 2, null, function (query) { - var debug = process.env.DEBUG === 'true'; + var debug = process.env.DEBUG === 'true'; - var token = getToken(query); - if (debug) console.log('XXX: register token:', token); + var token = getToken(query); + if (debug) console.log('XXX: register token:', token); - var accessToken = token.access_token || token.id_token; - var expiresAt = (+new Date) + (1000 * parseInt(token.expires_in, 10)); + var accessToken = token.access_token || token.id_token; + var expiresAt = (+new Date) + (1000 * parseInt(token.expires_in, 10)); - var claimsInAccessToken = (process.env.OAUTH2_ADFS_ENABLED === 'true' || - process.env.OAUTH2_ADFS_ENABLED === true || - process.env.OAUTH2_B2C_ENABLED === 'true' || - process.env.OAUTH2_B2C_ENABLED === true) || false; + var claimsInAccessToken = (process.env.OAUTH2_ADFS_ENABLED === 'true' || + process.env.OAUTH2_ADFS_ENABLED === true || + process.env.OAUTH2_B2C_ENABLED === 'true' || + process.env.OAUTH2_B2C_ENABLED === true) || false; - if (claimsInAccessToken) { - userinfo = getTokenContent(accessToken); + if(claimsInAccessToken) + { + // hack when using custom claims in the accessToken. On premise ADFS. And Azure AD B2C. + userinfo = getTokenContent(accessToken); + } + else + { + // normal behaviour, getting the claims from UserInfo endpoint. + userinfo = getUserInfo(accessToken); + } + + if (userinfo.ocs) userinfo = userinfo.ocs.data; // Nextcloud hack + if (userinfo.metadata) userinfo = userinfo.metadata // Openshift hack + if (debug) console.log('XXX: userinfo:', userinfo); + + serviceData.id = userinfo[process.env.OAUTH2_ID_MAP]; // || userinfo["id"]; + serviceData.username = userinfo[process.env.OAUTH2_USERNAME_MAP]; // || userinfo["uid"]; + serviceData.fullname = userinfo[process.env.OAUTH2_FULLNAME_MAP]; // || userinfo["displayName"]; + serviceData.accessToken = accessToken; + serviceData.expiresAt = expiresAt; + + + // If on Oracle OIM email is empty or null, get info from username + if (process.env.ORACLE_OIM_ENABLED === 'true' || process.env.ORACLE_OIM_ENABLED === true) { + if (userinfo[process.env.OAUTH2_EMAIL_MAP]) { + serviceData.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; } else { - userinfo = getUserInfo(accessToken); + serviceData.email = userinfo[process.env.OAUTH2_USERNAME_MAP]; } + } - if (userinfo.ocs) userinfo = userinfo.ocs.data; - if (userinfo.metadata) userinfo = userinfo.metadata; - if (debug) console.log('XXX: userinfo:', userinfo); + if (process.env.ORACLE_OIM_ENABLED !== 'true' && process.env.ORACLE_OIM_ENABLED !== true) { + serviceData.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; // || userinfo["email"]; + } - serviceData.id = userinfo[process.env.OAUTH2_ID_MAP]; - serviceData.username = userinfo[process.env.OAUTH2_USERNAME_MAP]; - serviceData.fullname = userinfo[process.env.OAUTH2_FULLNAME_MAP]; - serviceData.accessToken = accessToken; - serviceData.expiresAt = expiresAt; + if (process.env.OAUTH2_B2C_ENABLED === 'true' || process.env.OAUTH2_B2C_ENABLED === true) { + serviceData.email = userinfo["emails"][0]; + } - // Oracle OIM and B2C checks remain the same - if (process.env.ORACLE_OIM_ENABLED === 'true' || process.env.ORACLE_OIM_ENABLED === true) { - if (userinfo[process.env.OAUTH2_EMAIL_MAP]) { - serviceData.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; - } else { - serviceData.email = userinfo[process.env.OAUTH2_USERNAME_MAP]; - } - } + if (accessToken) { + var tokenContent = getTokenContent(accessToken); + var fields = _.pick(tokenContent, getConfiguration().idTokenWhitelistFields); + _.extend(serviceData, fields); + } - if (process.env.ORACLE_OIM_ENABLED !== 'true' && process.env.ORACLE_OIM_ENABLED !== true) { - serviceData.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; - } + if (token.refresh_token) + serviceData.refreshToken = token.refresh_token; + if (debug) console.log('XXX: serviceData:', serviceData); - if (process.env.OAUTH2_B2C_ENABLED === 'true' || process.env.OAUTH2_B2C_ENABLED === true) { - serviceData.email = userinfo["emails"][0]; - } + profile.name = userinfo[process.env.OAUTH2_FULLNAME_MAP]; // || userinfo["displayName"]; + profile.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; // || userinfo["email"]; - if (accessToken) { - var tokenContent = getTokenContent(accessToken); - var fields = _.pick(tokenContent, getConfiguration().idTokenWhitelistFields); - _.extend(serviceData, fields); - } + if (process.env.OAUTH2_B2C_ENABLED === 'true' || process.env.OAUTH2_B2C_ENABLED === true) { + profile.email = userinfo["emails"][0]; + } - if (token.refresh_token) - serviceData.refreshToken = token.refresh_token; - if (debug) console.log('XXX: serviceData:', serviceData); + if (debug) console.log('XXX: profile:', profile); - profile.name = userinfo[process.env.OAUTH2_FULLNAME_MAP]; - profile.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; - if (process.env.OAUTH2_B2C_ENABLED === 'true' || process.env.OAUTH2_B2C_ENABLED === true) { - profile.email = userinfo["emails"][0]; - } + //temporarily store data from oidc in user.services.oidc.groups to update groups + serviceData.groups = (userinfo["groups"] && userinfo["wekanGroups"]) ? userinfo["wekanGroups"] : userinfo["groups"]; + // groups arriving as array of strings indicate there is no scope set in oidc privider + // to assign teams and keep admin privileges + // data needs to be treated differently. + // use case: in oidc provider no scope is set, hence no group attributes. + // therefore: keep admin privileges for wekan as before + if(Array.isArray(serviceData.groups) && serviceData.groups.length && typeof serviceData.groups[0] === "string" ) + { + user = Meteor.users.findOne({'_id': serviceData.id}); - if (debug) console.log('XXX: profile:', profile); + serviceData.groups.forEach(function(groupName, i) + { + if(user?.isAdmin && i == 0) + { + // keep information of user.isAdmin since in loginHandler the user will // be updated regarding group admin privileges provided via oidc + serviceData.groups[i] = {"isAdmin": true}; + serviceData.groups[i]["displayName"]= groupName; + } + else + { + serviceData.groups[i] = {"displayName": groupName}; + } + }); + } - // New code: Check if the user's email is in the allowed emails list (only if oauth2-checkemails is true) - if (process.env.OAUTH2_CHECKEMAILS === 'true') { - const allowedEmails = getAllowedEmailsFromFile(); - if (!allowedEmails.includes(profile.email)) { - throw new Error("Email not allowed: " + profile.email); - } - } + // Fix OIDC login loop for integer user ID. Thanks to danielkaiser. + // https://github.com/wekan/wekan/issues/4795 + Meteor.call('groupRoutineOnLogin',serviceData, ""+serviceData.id); + Meteor.call('boardRoutineOnLogin',serviceData, ""+serviceData.id); - // Temporarily store data from oidc in user.services.oidc.groups to update groups - serviceData.groups = (userinfo["groups"] && userinfo["wekanGroups"]) ? userinfo["wekanGroups"] : userinfo["groups"]; - - if (Array.isArray(serviceData.groups) && serviceData.groups.length && typeof serviceData.groups[0] === "string") { - user = Meteor.users.findOne({'_id': serviceData.id}); - - serviceData.groups.forEach(function (groupName, i) { - if (user?.isAdmin && i == 0) { - serviceData.groups[i] = {"isAdmin": true}; - serviceData.groups[i]["displayName"] = groupName; - } else { - serviceData.groups[i] = {"displayName": groupName}; - } - }); - } - - // Fix OIDC login loop for integer user ID. Thanks to danielkaiser. - Meteor.call('groupRoutineOnLogin', serviceData, "" + serviceData.id); - Meteor.call('boardRoutineOnLogin', serviceData, "" + serviceData.id); - - return { - serviceData: serviceData, - options: { profile: profile } - }; + return { + serviceData: serviceData, + options: { profile: profile } + }; }); -// Function to retrieve token based on environment -var getToken = function (query) { - var debug = process.env.DEBUG === 'true'; - var config = getConfiguration(); - var serverTokenEndpoint = config.tokenEndpoint.includes('https://') ? - config.tokenEndpoint : config.serverUrl + config.tokenEndpoint; - var response; - - try { - var postOptions = { - headers: { - Accept: 'application/json', - "User-Agent": "Meteor" - }, - params: { - code: query.code, - client_id: config.clientId, - client_secret: OAuth.openSecret(config.secret), - redirect_uri: OAuth._redirectUri('oidc', config), - grant_type: 'authorization_code', - state: query.state - } - }; - if (httpCa) { - postOptions['npmRequestOptions'] = { ca: httpCa }; - } - response = HTTP.post(serverTokenEndpoint, postOptions); - } catch (err) { - throw _.extend(new Error("Failed to get token from OIDC " + serverTokenEndpoint + ": " + err.message), - { response: err.response }); - } - if (response.data.error) { - throw new Error("Failed to complete handshake with OIDC " + serverTokenEndpoint + ": " + response.data.error); - } else { - return response.data; - } -}; - -// Function to fetch user information from the OIDC service -var getUserInfo = function (accessToken) { - var debug = process.env.DEBUG === 'true'; - var config = getConfiguration(); - var serverUserinfoEndpoint = config.userinfoEndpoint.includes("https://") ? - config.userinfoEndpoint : config.serverUrl + config.userinfoEndpoint; - - var response; - try { - var getOptions = { - headers: { - "User-Agent": "Meteor", - "Authorization": "Bearer " + accessToken - } - }; - if (httpCa) { - getOptions['npmRequestOptions'] = { ca: httpCa }; - } - response = HTTP.get(serverUserinfoEndpoint, getOptions); - } catch (err) { - throw _.extend(new Error("Failed to fetch userinfo from OIDC " + serverUserinfoEndpoint + ": " + err.message), - {response: err.response}); - } - return response.data; -}; - -// Function to get the configuration of the OIDC service -var getConfiguration = function () { - var config = ServiceConfiguration.configurations.findOne({ service: 'oidc' }); - if (!config) { - throw new ServiceConfiguration.ConfigError('Service oidc not configured.'); - } - return config; -}; - -// Function to decode the token content (JWT) -var getTokenContent = function (token) { - var content = null; - if (token) { - try { - var parts = token.split('.'); - var header = JSON.parse(Buffer.from(parts[0], 'base64').toString()); - content = JSON.parse(Buffer.from(parts[1], 'base64').toString()); - } catch (err) { - content = { exp: 0 }; - } - } - return content; +var userAgent = "Meteor"; +if (Meteor.release) { + userAgent += "/" + Meteor.release; } -// Meteor methods to update groups and boards on login -Meteor.methods({ - 'groupRoutineOnLogin': function(info, userId) { - check(info, Object); - check(userId, String); - var propagateOidcData = process.env.PROPAGATE_OIDC_DATA || false; - if (propagateOidcData) { - users = Meteor.users; - user = users.findOne({'services.oidc.id': userId}); - - if (user) { - if (info.groups) { - addGroupsWithAttributes(user, info.groups); - } - - if(info.email) addEmail(user, info.email); - if(info.fullname) changeFullname(user, info.fullname); - if(info.username) changeUsername(user, info.username); - } - } +if (process.env.ORACLE_OIM_ENABLED !== 'true' && process.env.ORACLE_OIM_ENABLED !== true) { + var getToken = function (query) { + var debug = process.env.DEBUG === 'true'; + var config = getConfiguration(); + if(config.tokenEndpoint.includes('https://')){ + var serverTokenEndpoint = config.tokenEndpoint; + }else{ + var serverTokenEndpoint = config.serverUrl + config.tokenEndpoint; } + var requestPermissions = config.requestPermissions; + var response; + + try { + var postOptions = { + headers: { + Accept: 'application/json', + "User-Agent": userAgent + }, + params: { + code: query.code, + client_id: config.clientId, + client_secret: OAuth.openSecret(config.secret), + redirect_uri: OAuth._redirectUri('oidc', config), + grant_type: 'authorization_code', + state: query.state + } + }; + if (httpCa) { + postOptions['npmRequestOptions'] = { ca: httpCa }; + } + response = HTTP.post(serverTokenEndpoint, postOptions); + } catch (err) { + throw _.extend(new Error("Failed to get token from OIDC " + serverTokenEndpoint + ": " + err.message), + { response: err.response }); + } + if (response.data.error) { + // if the http response was a json object with an error attribute + throw new Error("Failed to complete handshake with OIDC " + serverTokenEndpoint + ": " + response.data.error); + } else { + if (debug) console.log('XXX: getToken response: ', response.data); + return response.data; + } + }; +} + +if (process.env.ORACLE_OIM_ENABLED === 'true' || process.env.ORACLE_OIM_ENABLED === true) { + + var getToken = function (query) { + var debug = process.env.DEBUG === 'true'; + var config = getConfiguration(); + if(config.tokenEndpoint.includes('https://')){ + var serverTokenEndpoint = config.tokenEndpoint; + }else{ + var serverTokenEndpoint = config.serverUrl + config.tokenEndpoint; + } + var requestPermissions = config.requestPermissions; + var response; + + // OIM needs basic Authentication token in the header - ClientID + SECRET in base64 + var dataToken=null; + var strBasicToken=null; + var strBasicToken64=null; + + dataToken = process.env.OAUTH2_CLIENT_ID + ':' + process.env.OAUTH2_SECRET; + strBasicToken = new Buffer(dataToken); + strBasicToken64 = strBasicToken.toString('base64'); + + // eslint-disable-next-line no-console + if (debug) console.log('Basic Token: ', strBasicToken64); + + try { + var postOptions = { + headers: { + Accept: 'application/json', + "User-Agent": userAgent, + "Authorization": "Basic " + strBasicToken64 + }, + params: { + code: query.code, + client_id: config.clientId, + client_secret: OAuth.openSecret(config.secret), + redirect_uri: OAuth._redirectUri('oidc', config), + grant_type: 'authorization_code', + state: query.state + } + }; + if (httpCa) { + postOptions['npmRequestOptions'] = { ca: httpCa }; + } + response = HTTP.post(serverTokenEndpoint, postOptions); + } catch (err) { + throw _.extend(new Error("Failed to get token from OIDC " + serverTokenEndpoint + ": " + err.message), + { response: err.response }); + } + if (response.data.error) { + // if the http response was a json object with an error attribute + throw new Error("Failed to complete handshake with OIDC " + serverTokenEndpoint + ": " + response.data.error); + } else { + // eslint-disable-next-line no-console + if (debug) console.log('XXX: getToken response: ', response.data); + return response.data; + } + }; +} + + +var getUserInfo = function (accessToken) { + var debug = process.env.DEBUG === 'true'; + var config = getConfiguration(); + // Some userinfo endpoints use a different base URL than the authorization or token endpoints. + // This logic allows the end user to override the setting by providing the full URL to userinfo in their config. + if (config.userinfoEndpoint.includes("https://")) { + var serverUserinfoEndpoint = config.userinfoEndpoint; + } else { + var serverUserinfoEndpoint = config.serverUrl + config.userinfoEndpoint; + } + var response; + try { + var getOptions = { + headers: { + "User-Agent": userAgent, + "Authorization": "Bearer " + accessToken + } + }; + if (httpCa) { + getOptions['npmRequestOptions'] = { ca: httpCa }; + } + response = HTTP.get(serverUserinfoEndpoint, getOptions); + } catch (err) { + throw _.extend(new Error("Failed to fetch userinfo from OIDC " + serverUserinfoEndpoint + ": " + err.message), + {response: err.response}); + } + if (debug) console.log('XXX: getUserInfo response: ', response.data); + return response.data; +}; + +var getConfiguration = function () { + var config = ServiceConfiguration.configurations.findOne({ service: 'oidc' }); + if (!config) { + throw new ServiceConfiguration.ConfigError('Service oidc not configured.'); + } + return config; +}; + +var getTokenContent = function (token) { + var content = null; + if (token) { + try { + var parts = token.split('.'); + var header = JSON.parse(Buffer.from(parts[0], 'base64').toString()); + content = JSON.parse(Buffer.from(parts[1], 'base64').toString()); + var signature = Buffer.from(parts[2], 'base64'); + var signed = parts[0] + '.' + parts[1]; + } catch (err) { + this.content = { + exp: 0 + }; + } + } + return content; +} +Meteor.methods({ + 'groupRoutineOnLogin': function(info, userId) + { + check(info, Object); + check(userId, String); + var propagateOidcData = process.env.PROPAGATE_OIDC_DATA || false; + if (propagateOidcData) { + users= Meteor.users; + user = users.findOne({'services.oidc.id': userId}); + + if(user) { + //updates/creates Groups and user admin privileges accordingly if not undefined + if (info.groups) { + addGroupsWithAttributes(user, info.groups); + } + + if(info.email) addEmail(user, info.email); + if(info.fullname) changeFullname(user, info.fullname); + if(info.username) changeUsername(user, info.username); + } + } + } }); Meteor.methods({ - 'boardRoutineOnLogin': function(info, userId) { - check(info, Object); - check(userId, String); - // Add board updates here if needed - } -}); \ No newline at end of file + 'boardRoutineOnLogin': function(info, oidcUserId) + { + check(info, Object); + check(oidcUserId, String); + + const defaultBoardParams = (process.env.DEFAULT_BOARD_ID || '').split(':'); + const defaultBoardId = defaultBoardParams.shift() + if (!defaultBoardId) return + + const board = Boards.findOne(defaultBoardId) + const userId = Users.findOne({ 'services.oidc.id': oidcUserId })?._id + const memberIndex = _.pluck(board?.members, 'userId').indexOf(userId); + if(!board || !userId || memberIndex > -1) return + + board.addMember(userId) + board.setMemberPermission( + userId, + defaultBoardParams.contains("isAdmin"), + defaultBoardParams.contains("isNoComments"), + defaultBoardParams.contains("isCommentsOnly"), + defaultBoardParams.contains("isWorker") + ) + } +}); + +Oidc.retrieveCredential = function (credentialToken, credentialSecret) { + return OAuth.retrieveCredential(credentialToken, credentialSecret); +}; diff --git a/snap-src/bin/config b/snap-src/bin/config index 7dce734ed..3265f3aa0 100755 --- a/snap-src/bin/config +++ b/snap-src/bin/config @@ -3,7 +3,7 @@ # All supported keys are defined here together with descriptions and default values # list of supported keys -keys="DEBUG S3 MONGO_LOG_DESTINATION MONGO_URL MONGODB_BIND_UNIX_SOCKET MONGO_URL MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM MAIL_SERVICE MAIL_SERVICE_USER MAIL_SERVICE_PASSWORD ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API RICHER_CARD_COMMENT_EDITOR CARD_OPENED_WEBHOOK_ENABLED ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW ACCOUNTS_COMMON_LOGIN_EXPIRATION_IN_DAYS ATTACHMENTS_UPLOAD_EXTERNAL_PROGRAM ATTACHMENTS_UPLOAD_MIME_TYPES ATTACHMENTS_UPLOAD_MAX_SIZE AVATARS_UPLOAD_EXTERNAL_PROGRAM AVATARS_UPLOAD_MIME_TYPES AVATARS_UPLOAD_MAX_SIZE MAX_IMAGE_PIXEL IMAGE_COMPRESS_RATIO BIGEVENTS_PATTERN NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE NOTIFY_DUE_DAYS_BEFORE_AND_AFTER NOTIFY_DUE_AT_HOUR_OF_DAY DEFAULT_BOARD_ID EMAIL_NOTIFICATION_TIMEOUT CORS CORS_ALLOW_HEADERS CORS_EXPOSE_HEADERS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME METRICS_ALLOWED_IP_ADDRESSES BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OIDC_REDIRECTION_ENABLED OAUTH2_CA_CERT OAUTH2_LOGIN_STYLE OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT OAUTH2_ID_MAP OAUTH2_USERNAME_MAP OAUTH2_FULLNAME_MAP OAUTH2_ID_TOKEN_WHITELIST_FIELDS OAUTH2_EMAIL_MAP OAUTH2_REQUEST_PERMISSIONS OAUTH2_ADFS_ENABLED OAUTH2_B2C_ENABLED LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_AD_SIMPLE_AUTH LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_AUTHENTICATION LDAP_USER_AUTHENTICATION_FIELD LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LDAP_SYNC_ADMIN_STATUS LDAP_SYNC_ADMIN_GROUPS HEADER_LOGIN_ID HEADER_LOGIN_FIRSTNAME HEADER_LOGIN_LASTNAME HEADER_LOGIN_EMAIL LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD PASSWORD_LOGIN_ENABLED CAS_ENABLED CAS_BASE_URL CAS_LOGIN_URL CAS_VALIDATE_URL SAML_ENABLED SAML_PROVIDER SAML_ENTRYPOINT SAML_ISSUER SAML_CERT SAML_IDPSLO_REDIRECTURL SAML_PRIVATE_KEYFILE SAML_PUBLIC_CERTFILE SAML_IDENTIFIER_FORMAT SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE SAML_ATTRIBUTES ORACLE_OIM_ENABLED RESULTS_PER_PAGE WAIT_SPINNER NODE_OPTIONS OAUTH2_ALLOWEDEMAILS_FILEPATH OAUTH2_CHECKEMAILS" +keys="DEBUG S3 MONGO_LOG_DESTINATION MONGO_URL MONGODB_BIND_UNIX_SOCKET MONGO_URL MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM MAIL_SERVICE MAIL_SERVICE_USER MAIL_SERVICE_PASSWORD ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API RICHER_CARD_COMMENT_EDITOR CARD_OPENED_WEBHOOK_ENABLED ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW ACCOUNTS_COMMON_LOGIN_EXPIRATION_IN_DAYS ATTACHMENTS_UPLOAD_EXTERNAL_PROGRAM ATTACHMENTS_UPLOAD_MIME_TYPES ATTACHMENTS_UPLOAD_MAX_SIZE AVATARS_UPLOAD_EXTERNAL_PROGRAM AVATARS_UPLOAD_MIME_TYPES AVATARS_UPLOAD_MAX_SIZE MAX_IMAGE_PIXEL IMAGE_COMPRESS_RATIO BIGEVENTS_PATTERN NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE NOTIFY_DUE_DAYS_BEFORE_AND_AFTER NOTIFY_DUE_AT_HOUR_OF_DAY DEFAULT_BOARD_ID EMAIL_NOTIFICATION_TIMEOUT CORS CORS_ALLOW_HEADERS CORS_EXPOSE_HEADERS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME METRICS_ALLOWED_IP_ADDRESSES BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OIDC_REDIRECTION_ENABLED OAUTH2_CA_CERT OAUTH2_LOGIN_STYLE OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT OAUTH2_ID_MAP OAUTH2_USERNAME_MAP OAUTH2_FULLNAME_MAP OAUTH2_ID_TOKEN_WHITELIST_FIELDS OAUTH2_EMAIL_MAP OAUTH2_REQUEST_PERMISSIONS OAUTH2_ADFS_ENABLED OAUTH2_B2C_ENABLED LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_AD_SIMPLE_AUTH LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_AUTHENTICATION LDAP_USER_AUTHENTICATION_FIELD LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LDAP_SYNC_ADMIN_STATUS LDAP_SYNC_ADMIN_GROUPS HEADER_LOGIN_ID HEADER_LOGIN_FIRSTNAME HEADER_LOGIN_LASTNAME HEADER_LOGIN_EMAIL LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD PASSWORD_LOGIN_ENABLED CAS_ENABLED CAS_BASE_URL CAS_LOGIN_URL CAS_VALIDATE_URL SAML_ENABLED SAML_PROVIDER SAML_ENTRYPOINT SAML_ISSUER SAML_CERT SAML_IDPSLO_REDIRECTURL SAML_PRIVATE_KEYFILE SAML_PUBLIC_CERTFILE SAML_IDENTIFIER_FORMAT SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE SAML_ATTRIBUTES ORACLE_OIM_ENABLED RESULTS_PER_PAGE WAIT_SPINNER NODE_OPTIONS" DESCRIPTION_S3='AWS S3 for files. Example: {"s3":{"key": "xxx", "secret": "xxx", "bucket": "xxx", "region": "eu-west-1"}}' DEFAULT_S3="" @@ -631,14 +631,6 @@ DESCRIPTION_SAML_ATTRIBUTES="SAML Attributes" DEFAULT_SAML_ATTRIBUTES="" KEY_SAML_ATTRIBUTES="saml-attributes" -DESCRIPTION_OAUTH2_CHECKEMAILS="Set whether a local file containing allowed emails is to be checked when logging in with OIDC" -DEFAULT_OAUTH2_CHECKEMAILS="false" -KEY_OAUTH2_CHECKEMAILS="oauth2-checkemails" - -DESCRIPTION_OAUTH2_ALLOWEDEMAILS_FILEPATH="Set whether a local file containing allowed emails is to be checked when logging in with OIDC" -DEFAULT_OAUTH2_ALLOWEDEMAILS_FILEPATH="" -KEY_OAUTH2_ALLOWEDEMAILS_FILEPATH="oauth2-allowedemails-filepath" - DESCRIPTION_RESULTS_PER_PAGE="Number of search results to show per page by default" DEFAULT_RESULTS_PER_PAGE="" KEY_RESULTS_PER_PAGE="results-per-page" diff --git a/snap-src/bin/wekan-help b/snap-src/bin/wekan-help index e68fea1ac..32365cf28 100755 --- a/snap-src/bin/wekan-help +++ b/snap-src/bin/wekan-help @@ -661,16 +661,6 @@ echo -e "\n" echo -e "Wait spinner to use." echo -e "\t$ snap set $SNAP_NAME wait-spinner='Bounce'" echo -e "\n" -echo -e "Oauth2 email login restriction local filepath e.g. /root/var/path/to/file.txt" -echo -e "Path to local file containing known emails to be checked on OIDC login" -echo -e "\t$ snap set $SNAP_NAME OAUTH2_ALLOWEDEMAILS_FILEPATH='/root/var/path/to/file.txt'" -echo -e "\t-Leave blank to disable." -echo -e "\n" -echo -e "Oauth2 email login restriction toggle on/off" -echo -e "To enable and disable email verification against a file containing known emails on OIDC login" -echo -e "\t$ snap set $SNAP_NAME OAUTH2_CHECKEMAILS='true'" -echo -e "\t-To disable, set to false." -echo -e "\n" # parse config file for supported settings keys echo -e "wekan supports settings keys" echo -e "values can be changed by calling\n$ snap set $SNAP_NAME =''" From 702375856d16126fab8cce9e70eebb7a277955fa Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 13 Dec 2024 02:08:35 +0200 Subject: [PATCH 195/356] Updated ChangeLog. --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 238f9258a..5241d0228 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,20 @@ 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: + +- [Changed the default maximum list width](https://github.com/wekan/wekan/pull/5614). + Thanks to NadavTasher. + +and fixes the following bugs: + +- [Fix buggy behaviours in board dragscrolling](https://github.com/wekan/wekan/pull/5618). + Thanks to NadavTasher. + +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: From c357c77e7e56d8590a9a05eea89ece465da209a1 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 13 Dec 2024 02:12:40 +0200 Subject: [PATCH 196/356] Updated translations. --- imports/i18n/data/sv.i18n.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index 8967fa9fe..f88db97cb 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -86,10 +86,10 @@ "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": "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", + "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", "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)", @@ -264,8 +264,8 @@ "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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "click-to-enable-auto-width": "Klicka för att aktivera automatisk listbredd", + "click-to-disable-auto-width": "Klicka för att inaktivera automatisk listbredd", "clipboard": "Urklipp eller dra & släpp", "close": "Stäng", "close-board": "Stäng tavla", @@ -1258,9 +1258,9 @@ "uncollapse": "Expandera", "hideCheckedChecklistItems": "Dölj markerade objekt i checklistan", "hideAllChecklistItems": "Dölj alla objekt i checklistan", - "support": "Support", - "supportPopup-title": "Support", - "accessibility-page-enabled": "Accessibility page enabled", - "accessibility-title": "Accessibility topic", - "accessibility-content": "Accessibility content" + "support": "Hjälp", + "supportPopup-title": "Hjälp", + "accessibility-page-enabled": "Tillgänglighetssida aktiverad", + "accessibility-title": "Tillgänglighetsämne", + "accessibility-content": "Tillgänglighetsinnehåll" } From ba0fdaef72393632ca80b42a3c5d2ee5f5e0c76e Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 15 Dec 2024 17:58:48 +0200 Subject: [PATCH 197/356] Revert back to have shortcut "c to archive" back for non-Persian keyboards. Thanks to hatl and xet7 ! Related #1878 --- client/lib/keyboard.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index cb42b2533..b84c1e494 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -190,7 +190,7 @@ Mousetrap.bind('space', evt => { } }); -Mousetrap.bind('`', evt => { +Mousetrap.bind('c', evt => { const cardId = getSelectedCardId(); if (!cardId) { return; @@ -307,7 +307,7 @@ Template.keyboardShortcuts.helpers({ action: 'shortcut-assign-self', }, { - keys: ['`', '÷'], + keys: ['c', '÷'], action: 'archive-card', }, { From adeec242521a2c265b93c9470c75f5f11c7b7ed2 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 15 Dec 2024 18:01:32 +0200 Subject: [PATCH 198/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5241d0228..46c3652b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,8 @@ 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. Thanks to above GitHub users for their contributions and translators for their translations. From 3e3b629aa2a9efb43b1be8f57009c1d384b66ed8 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 17 Dec 2024 19:57:29 +0200 Subject: [PATCH 199/356] Updated Developer Docs about docker compose. Thanks to sridharin2020 and xet7 ! Related https://github.com/wekan/wekan/discussions/5622 --- docs/DeveloperDocs/Developer-Documentation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperDocs/Developer-Documentation.md b/docs/DeveloperDocs/Developer-Documentation.md index f846f0cf0..a47769311 100644 --- a/docs/DeveloperDocs/Developer-Documentation.md +++ b/docs/DeveloperDocs/Developer-Documentation.md @@ -46,7 +46,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) From aab80e67bdc11dc7518b6cc59d1d52717c7d05bd Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 17 Dec 2024 19:59:29 +0200 Subject: [PATCH 200/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46c3652b7..a99816a5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ 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. and fixes the following bugs: From 73f16692da41c196860b11199402a896b479536b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 21 Dec 2024 12:48:36 +0200 Subject: [PATCH 201/356] Updated --- imports/i18n/data/de_DE.i18n.json | 58 +- imports/i18n/data/en_TR.i18n.json | 1266 +++++++++++++++++++++++++++++ imports/i18n/data/tk_TM.i18n.json | 1266 +++++++++++++++++++++++++++++ 3 files changed, 2561 insertions(+), 29 deletions(-) create mode 100644 imports/i18n/data/en_TR.i18n.json create mode 100644 imports/i18n/data/tk_TM.i18n.json diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index 70d0b2da0..9c786bc09 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -49,7 +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-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", @@ -86,10 +86,10 @@ "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 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", + "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", "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)", @@ -264,8 +264,8 @@ "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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "click-to-enable-auto-width": "Klicken, um die automatische Breite der Liste zu aktivieren.", + "click-to-disable-auto-width": "Klicken, um die automatische Breite der Liste zu deaktivieren.", "clipboard": "Zwischenablage oder Drag & Drop", "close": "Schließen", "close-board": "Board schließen", @@ -297,7 +297,7 @@ "color-white": "Weiß", "color-yellow": "gelb", "unset-color": "Nicht festgelegt", - "comments": "Comments", + "comments": "Kommentare", "comment": "Kommentar speichern", "comment-placeholder": "Kommentar schreiben", "comment-only": "Nur Kommentare", @@ -447,7 +447,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.", - "show-activities": "Show Activities", + "show-activities": "Aktivitäten anzeigen", "headerBarCreateBoardPopup-title": "Board erstellen", "home": "Home", "import": "Importieren", @@ -576,14 +576,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": "Add yourself to current card", + "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", @@ -961,7 +961,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", + "hide-finished-checklist": "Abgeschlossene Checkliste ausblenden", "task": "Aufgabe", "create-task": "Aufgabe erstellen", "ok": "OK", @@ -969,7 +969,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", @@ -1115,8 +1115,8 @@ "created-at-newest-first": "Erstelldatum (neueste zuerst)", "created-at-oldest-first": "Erstelldatum (älteste zuerst)", "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", + "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", @@ -1124,7 +1124,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", @@ -1199,10 +1199,10 @@ "checklistActionsPopup-title": "Checklistenaktionen", "moveChecklist": "Checkliste verschieben", "moveChecklistPopup-title": "Checkliste verschieben", - "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", + "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", @@ -1253,14 +1253,14 @@ "translation-text": "Übersetzungstext", "show-subtasks-field": "Teilaufgaben Feld anzeigen", "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": "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" + "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/en_TR.i18n.json b/imports/i18n/data/en_TR.i18n.json new file mode 100644 index 000000000..e562be9b1 --- /dev/null +++ b/imports/i18n/data/en_TR.i18n.json @@ -0,0 +1,1266 @@ +{ + "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", + "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable 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-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-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", + "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/tk_TM.i18n.json b/imports/i18n/data/tk_TM.i18n.json new file mode 100644 index 000000000..e562be9b1 --- /dev/null +++ b/imports/i18n/data/tk_TM.i18n.json @@ -0,0 +1,1266 @@ +{ + "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", + "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable 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-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-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", + "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" +} From 965db42170093fb8e6551aeec06ace5140572b02 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Sat, 21 Dec 2024 12:48:36 +0200 Subject: [PATCH 202/356] Updated translations. --- imports/i18n/data/de_DE.i18n.json | 58 +- imports/i18n/data/en_TR.i18n.json | 1266 +++++++++++++++++++++++++++++ imports/i18n/data/tk_TM.i18n.json | 1266 +++++++++++++++++++++++++++++ 3 files changed, 2561 insertions(+), 29 deletions(-) create mode 100644 imports/i18n/data/en_TR.i18n.json create mode 100644 imports/i18n/data/tk_TM.i18n.json diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index 70d0b2da0..9c786bc09 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -49,7 +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-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", @@ -86,10 +86,10 @@ "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 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", + "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", "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)", @@ -264,8 +264,8 @@ "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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "click-to-enable-auto-width": "Klicken, um die automatische Breite der Liste zu aktivieren.", + "click-to-disable-auto-width": "Klicken, um die automatische Breite der Liste zu deaktivieren.", "clipboard": "Zwischenablage oder Drag & Drop", "close": "Schließen", "close-board": "Board schließen", @@ -297,7 +297,7 @@ "color-white": "Weiß", "color-yellow": "gelb", "unset-color": "Nicht festgelegt", - "comments": "Comments", + "comments": "Kommentare", "comment": "Kommentar speichern", "comment-placeholder": "Kommentar schreiben", "comment-only": "Nur Kommentare", @@ -447,7 +447,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.", - "show-activities": "Show Activities", + "show-activities": "Aktivitäten anzeigen", "headerBarCreateBoardPopup-title": "Board erstellen", "home": "Home", "import": "Importieren", @@ -576,14 +576,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": "Add yourself to current card", + "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", @@ -961,7 +961,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", + "hide-finished-checklist": "Abgeschlossene Checkliste ausblenden", "task": "Aufgabe", "create-task": "Aufgabe erstellen", "ok": "OK", @@ -969,7 +969,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", @@ -1115,8 +1115,8 @@ "created-at-newest-first": "Erstelldatum (neueste zuerst)", "created-at-oldest-first": "Erstelldatum (älteste zuerst)", "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", + "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", @@ -1124,7 +1124,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", @@ -1199,10 +1199,10 @@ "checklistActionsPopup-title": "Checklistenaktionen", "moveChecklist": "Checkliste verschieben", "moveChecklistPopup-title": "Checkliste verschieben", - "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", + "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", @@ -1253,14 +1253,14 @@ "translation-text": "Übersetzungstext", "show-subtasks-field": "Teilaufgaben Feld anzeigen", "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": "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" + "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/en_TR.i18n.json b/imports/i18n/data/en_TR.i18n.json new file mode 100644 index 000000000..e562be9b1 --- /dev/null +++ b/imports/i18n/data/en_TR.i18n.json @@ -0,0 +1,1266 @@ +{ + "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", + "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable 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-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-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", + "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/tk_TM.i18n.json b/imports/i18n/data/tk_TM.i18n.json new file mode 100644 index 000000000..e562be9b1 --- /dev/null +++ b/imports/i18n/data/tk_TM.i18n.json @@ -0,0 +1,1266 @@ +{ + "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", + "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": "Click to enable auto list width.", + "click-to-disable-auto-width": "Click to disable 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-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-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", + "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" +} From 0332ef32980b24a0c4e108436eec5b112287c14b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 24 Dec 2024 19:28:20 +0200 Subject: [PATCH 203/356] Hide support popup. It will be made editable later. Thanks to xet7 ! --- client/components/users/userHeader.jade | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/client/components/users/userHeader.jade b/client/components/users/userHeader.jade index 6477be571..14fa948d7 100644 --- a/client/components/users/userHeader.jade +++ b/client/components/users/userHeader.jade @@ -77,10 +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'}} + //li + // a.js-support + // i.fa.fa-question-circle + // | {{_ 'support'}} unless isSandstorm hr ul.pop-over-list @@ -147,20 +147,7 @@ template(name="editProfilePopup") template(name="supportPopup") ul.pop-over-list li - | You get support from name of this app, - | that has Admin access to help you. - br - br - | a) If app name or logo or URL is https://something.yourcompany.com, you get support from https://yourcompany.com. - | This app may come preinstalled at some devices. - br - br - | b) If this app name is WeKan from https://wekan.team/app/ or URL is https://boards.wekan.team, - | then this is WeKan Open Source kanban software with MIT license https://wekan.github.io with all source code - | at https://github.com/wekan/wekan, PRs are very welcome at https://github.com/wekan/wekan/pulls. - | Free public Open Source support is at https://github.com/wekan/wekan/issues for feature requests and bug reports. - | Optional paid private Commercial Support for Features/Fixes/Support/Hosting is at https://wekan.team from maintainer of WeKan. - | If possible, please sponsor continuing maintaining of WeKan at https://wekan.github.io/sponsors/ + | Support popup text will be editable later. template(name="changePasswordPopup") +atForm(state='changePwd') From ea8f8de3911001384d272be2a74bf6c352310e48 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 24 Dec 2024 19:29:49 +0200 Subject: [PATCH 204/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a99816a5b..5971d4bc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ This release adds the following updates: 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. and fixes the following bugs: From e70c51a1f033c8712771238e408cbf52487f07f5 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 24 Dec 2024 19:31:15 +0200 Subject: [PATCH 205/356] Hide Accessibility Settings at Admin Panel. It will be continued and added back later. Thanks to xet7 ! --- client/components/settings/settingBody.jade | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/components/settings/settingBody.jade b/client/components/settings/settingBody.jade index fed5bf5a3..3e6ec2af6 100644 --- a/client/components/settings/settingBody.jade +++ b/client/components/settings/settingBody.jade @@ -30,10 +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="accessibility-setting") + // i.fa.fa-universal-access + // | {{_ 'accessibility'}} li a.js-setting-menu(data-id="layout-setting") i.fa.fa-object-group From 586043e00bf587f4a967ceb190bc20a96662e354 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 24 Dec 2024 19:32:49 +0200 Subject: [PATCH 206/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5971d4bc8..f282a8c17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ This release adds the following updates: 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: From 8ebb1a7d7f59cb18a6837393061c8bfa9af30ba9 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 24 Dec 2024 19:34:00 +0200 Subject: [PATCH 207/356] Updated translations. --- imports/i18n/data/eu.i18n.json | 124 ++++++++++++++++----------------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 574691d66..94f80e73b 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s biltegira eraman da", "activity-attached": "%s %s(e)ra erantsita", "activity-created": "%s sortuta", - "activity-changedListTitle": "renamed list to %s", + "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", @@ -86,10 +86,10 @@ "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": "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", + "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", "setSwimlaneHeightPopup-title": "Errailaren altuera ezarri", "set-swimlane-height": "Errailaren altuera ezarri", "set-swimlane-height-value": "Errailaren altuera (pixelak)", @@ -151,11 +151,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", @@ -211,14 +211,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", @@ -234,8 +234,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", @@ -264,8 +264,8 @@ "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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "click-to-enable-auto-width": "Egin klik zerrenda automatikoko zabalera gaitzeko.", + "click-to-disable-auto-width": "Egin klik zerrenda automatikoaren zabalera desgaitzeko.", "clipboard": "Kopiatu eta itsatsi edo arrastatu eta jaregin", "close": "Itxi", "close-board": "Itxi arbela", @@ -297,7 +297,7 @@ "color-white": "zuria", "color-yellow": "horia", "unset-color": "Zehaztu gabea", - "comments": "Comments", + "comments": "Iruzkinak", "comment": "Iruzkina", "comment-placeholder": "Idatzi iruzkin bat", "comment-only": "Iruzkinak besterik ez", @@ -447,7 +447,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.", - "show-activities": "Show Activities", + "show-activities": "Erakutsi jarduerak", "headerBarCreateBoardPopup-title": "Sortu arbela", "home": "Hasiera", "import": "Inportatu", @@ -576,7 +576,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Zerrenda honetako atazen muga maximoa ezarri", "setWipLimitPopup-title": "WIP muga ezarri", - "shortcut-add-self": "Add yourself to current card", + "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", @@ -961,7 +961,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": "Hide finished checklist", + "hide-finished-checklist": "Ezkutatu amaitutako kontrol-zerrenda", "task": "Ataza", "create-task": "Sortu ataza", "ok": "OK", @@ -1115,8 +1115,8 @@ "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", + "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", @@ -1199,42 +1199,42 @@ "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", + "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:", @@ -1256,11 +1256,11 @@ "import-board-zip": "Gehitu taula JSON fitxategiak dituen .zip fitxategia eta eranskinak dituzten taularen izenen azpidirektorioak", "collapse": "Tolestu", "uncollapse": "Zabaldu", - "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" + "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" } From 5606414f8975fa0f75642d2e3a6b48c7559186f9 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 24 Dec 2024 19:41:56 +0200 Subject: [PATCH 208/356] Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible. Thanks to xet7 ! Fixes #5603, fixes #2423, fixes #1878, fixes #931 --- client/components/sidebar/sidebar.jade | 8 ++++---- client/components/sidebar/sidebar.js | 2 ++ client/lib/keyboard.js | 5 +++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 65c002a47..31206299e 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -5,10 +5,10 @@ template(name="sidebar") // title="{{showTongueTitle}}") // i.fa.fa-navicon .sidebar-actions - .sidebar-shortcuts - a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") - i.fa.fa-keyboard-o - span {{_ 'keyboard-shortcuts' }} + //.sidebar-shortcuts + // a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") + // i.fa.fa-keyboard-o + // span {{_ 'keyboard-shortcuts' }} a.sidebar-xmark.js-close-sidebar ✕ .sidebar-content.js-board-sidebar-content //a.hide-btn.js-hide-sidebar diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js index f7e8f2b2b..25dd1774f 100644 --- a/client/components/sidebar/sidebar.js +++ b/client/components/sidebar/sidebar.js @@ -123,9 +123,11 @@ BlazeComponent.extendComponent({ location.reload(); } }, +/* 'click .js-shortcuts'() { FlowRouter.go('shortcuts'); }, +*/ 'click .js-close-sidebar'() { Sidebar.toggle() }, diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index b84c1e494..c5fd98d7e 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -1,5 +1,6 @@ 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). @@ -255,8 +256,11 @@ Mousetrap.bind('n', evt => { evt.preventDefault(); } }); +*/ + Template.keyboardShortcuts.helpers({ +/* mapping: [ { keys: ['w'], @@ -319,4 +323,5 @@ Template.keyboardShortcuts.helpers({ action: 'remove-labels-multiselect' }, ], +*/ }); From 4e73c56afe4e089ccd6e12bcdb831218d983ae15 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 24 Dec 2024 19:48:38 +0200 Subject: [PATCH 209/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f282a8c17..42d29247f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,8 @@ and fixes the following bugs: 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](https://github.com/wekan/wekan/commit/5606414f8975fa0f75642d2e3a6b48c7559186f9). + Thanks to xet7. Thanks to above GitHub users for their contributions and translators for their translations. From 94391d4cde7aed6e37efc6a9127b23ef0c2bd323 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 24 Dec 2024 19:54:17 +0200 Subject: [PATCH 210/356] Part 2. Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible. Thanks to xet7 ! Fixes #5603, fixes #2423, fixes #1878, fixes #931 --- client/components/sidebar/sidebar.jade | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 31206299e..0457c1e13 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -5,10 +5,12 @@ template(name="sidebar") // title="{{showTongueTitle}}") // i.fa.fa-navicon .sidebar-actions - //.sidebar-shortcuts - // a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") - // i.fa.fa-keyboard-o - // span {{_ 'keyboard-shortcuts' }} + .sidebar-shortcuts +   +   + //a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") + // i.fa.fa-keyboard-o + // span {{_ 'keyboard-shortcuts' }} a.sidebar-xmark.js-close-sidebar ✕ .sidebar-content.js-board-sidebar-content //a.hide-btn.js-hide-sidebar From 8e744e860d45996dd741b63434cb70db0f216a23 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 24 Dec 2024 19:55:25 +0200 Subject: [PATCH 211/356] Updated ChangeLog. --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42d29247f..73f44b609 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,7 +34,9 @@ and fixes the following bugs: 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](https://github.com/wekan/wekan/commit/5606414f8975fa0f75642d2e3a6b48c7559186f9). +- 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). Thanks to xet7. Thanks to above GitHub users for their contributions and translators for their translations. From 8b73c702c39a1fd546e591a096d703a53577ffec Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 24 Dec 2024 20:04:35 +0200 Subject: [PATCH 212/356] Part 3. Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible. Thanks to xet7 ! Fixes #5603, fixes #2423, fixes #1878, fixes #931 --- client/components/sidebar/sidebar.jade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 0457c1e13..31b9a1cea 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -6,8 +6,8 @@ template(name="sidebar") // i.fa.fa-navicon .sidebar-actions .sidebar-shortcuts -   -   + |   + |   //a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") // i.fa.fa-keyboard-o // span {{_ 'keyboard-shortcuts' }} From e45d35ba6086a5eb02bf01580e9ac550a03bec3d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 24 Dec 2024 20:05:38 +0200 Subject: [PATCH 213/356] Updated ChangeLog. --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73f44b609..d79f050b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,7 +36,8 @@ and fixes the following bugs: 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 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. From b9182a1fc72aa2ca9a93356292c7657b3a646feb Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 24 Dec 2024 20:16:31 +0200 Subject: [PATCH 214/356] v7.73 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Login/Forgot-Password.md | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 10 files changed, 17 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d79f050b8..e17ddf602 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.73 2024-12-24 WeKan ® release This release adds the following updates: diff --git a/Stackerfile.yml b/Stackerfile.yml index e4d1eaac2..948d52f0e 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.72.0" +appVersion: "v7.73.0" files: userUploads: - README.md diff --git a/docs/Login/Forgot-Password.md b/docs/Login/Forgot-Password.md index 61dbcfcb1..bca97811d 100644 --- a/docs/Login/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/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 6fb60965c..a0bfa57a2 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.72-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.72/wekan-7.72-amd64-windows.zip) +1. [wekan-7.73-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.73/wekan-7.73-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.72-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.73-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index c0b95c338..e941eda26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.72.0", + "version": "v7.73.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 080681429..5dbc3530b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.72.0", + "version": "v7.73.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 1514a4c15..5a76484f4 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.72 + Wekan REST API v7.73 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                              • - Wekan REST API v7.72 + Wekan REST API v7.73
                              • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                -

                                Wekan REST API v7.72

                                +

                                Wekan REST API v7.73

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

                                diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 4e8d0eb79..58a0426f7 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.72 + version: v7.73 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index a320247aa..77cd967a6 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 = 772, + appVersion = 773, # Increment this for every release. - appMarketingVersion = (defaultText = "7.72.0~2024-12-08"), + appMarketingVersion = (defaultText = "7.73.0~2024-12-24"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 7a0df77e6..08cbe592d 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.72' +version: '7.73' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.72/wekan-7.72-amd64.zip - unzip wekan-7.72-amd64.zip - rm wekan-7.72-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.73/wekan-7.73-amd64.zip + unzip wekan-7.73-amd64.zip + rm wekan-7.73-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 7c60d7932ae2c67a07a4fd718efee8b6ff508988 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Tue, 24 Dec 2024 21:41:03 +0200 Subject: [PATCH 215/356] Revert "Part 3. Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible." This reverts commit 8b73c702c39a1fd546e591a096d703a53577ffec. --- client/components/sidebar/sidebar.jade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 31b9a1cea..0457c1e13 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -6,8 +6,8 @@ template(name="sidebar") // i.fa.fa-navicon .sidebar-actions .sidebar-shortcuts - |   - |   +   +   //a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") // i.fa.fa-keyboard-o // span {{_ 'keyboard-shortcuts' }} From 18f6d4cb1640d4636369c60700827bd73bde0068 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Tue, 24 Dec 2024 21:41:13 +0200 Subject: [PATCH 216/356] Revert "Part 2. Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible." This reverts commit 94391d4cde7aed6e37efc6a9127b23ef0c2bd323. --- client/components/sidebar/sidebar.jade | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 0457c1e13..31206299e 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -5,12 +5,10 @@ template(name="sidebar") // title="{{showTongueTitle}}") // i.fa.fa-navicon .sidebar-actions - .sidebar-shortcuts -   -   - //a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") - // i.fa.fa-keyboard-o - // span {{_ 'keyboard-shortcuts' }} + //.sidebar-shortcuts + // a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") + // i.fa.fa-keyboard-o + // span {{_ 'keyboard-shortcuts' }} a.sidebar-xmark.js-close-sidebar ✕ .sidebar-content.js-board-sidebar-content //a.hide-btn.js-hide-sidebar From 68c7a41906198df7e18917644a16b102c4507a93 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Tue, 24 Dec 2024 21:41:25 +0200 Subject: [PATCH 217/356] Revert "Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible." This reverts commit 5606414f8975fa0f75642d2e3a6b48c7559186f9. --- client/components/sidebar/sidebar.jade | 8 ++++---- client/components/sidebar/sidebar.js | 2 -- client/lib/keyboard.js | 5 ----- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 31206299e..65c002a47 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -5,10 +5,10 @@ template(name="sidebar") // title="{{showTongueTitle}}") // i.fa.fa-navicon .sidebar-actions - //.sidebar-shortcuts - // a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") - // i.fa.fa-keyboard-o - // span {{_ 'keyboard-shortcuts' }} + .sidebar-shortcuts + a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}") + i.fa.fa-keyboard-o + span {{_ 'keyboard-shortcuts' }} a.sidebar-xmark.js-close-sidebar ✕ .sidebar-content.js-board-sidebar-content //a.hide-btn.js-hide-sidebar diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js index 25dd1774f..f7e8f2b2b 100644 --- a/client/components/sidebar/sidebar.js +++ b/client/components/sidebar/sidebar.js @@ -123,11 +123,9 @@ BlazeComponent.extendComponent({ location.reload(); } }, -/* 'click .js-shortcuts'() { FlowRouter.go('shortcuts'); }, -*/ 'click .js-close-sidebar'() { Sidebar.toggle() }, diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index c5fd98d7e..b84c1e494 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -1,6 +1,5 @@ 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). @@ -256,11 +255,8 @@ Mousetrap.bind('n', evt => { evt.preventDefault(); } }); -*/ - Template.keyboardShortcuts.helpers({ -/* mapping: [ { keys: ['w'], @@ -323,5 +319,4 @@ Template.keyboardShortcuts.helpers({ action: 'remove-labels-multiselect' }, ], -*/ }); From 41b1227b1712adad5727b0c92d5549945c2e67c3 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 25 Dec 2024 00:22:04 +0200 Subject: [PATCH 218/356] Add keyboard shortcut toggle --- client/components/boards/boardHeader.jade | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index f5012fbf2..36889f13b 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -27,6 +27,10 @@ template(name="boardHeaderBar") 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}}") + a.board-header-btn.js-keyboard-shortcuts-toggle( + title="{{#if isKeyboardShortcuts}}{{_ 'click-to-disable-keyboard-shortcuts'}}{{else}}{{_ 'click-to-enable-keyboard-shortcuts'}}{{/if}}") + i.fa(class="fa-solid fa-{{#if isKeyboardShortcuts}}computer-mouse{{else}}keyboard{{/if}}") + a.board-header-btn( class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}" title="{{_ currentBoard.permission}}") @@ -74,6 +78,10 @@ template(name="boardHeaderBar") 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}}") + a.board-header-btn.js-keyboard-shortcuts-toggle( + title="{{#if isKeyboardShortcuts}}{{_ 'click-to-disable-keyboard-shortcuts'}}{{else}}{{_ 'click-to-enable-keyboard-shortcuts'}}{{/if}}") + i.fa(class="fa-solid fa-{{#if isKeyboardShortcuts}}computer-mouse{{else}}keyboard{{/if}}") + a.board-header-btn( class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}" title="{{_ currentBoard.permission}}") From 658e43ab541764511e1493bb9b18ed47d620abb9 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 25 Dec 2024 00:22:37 +0200 Subject: [PATCH 219/356] Add profile.keyboardShortcuts to User model --- models/users.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/models/users.js b/models/users.js index f93e8aa4d..4673f58f0 100644 --- a/models/users.js +++ b/models/users.js @@ -444,6 +444,13 @@ Users.attachSchema( defaultValue: {}, blackbox: true, }, + 'profile.keyboardShortcuts': { + /** + * User-specified state of keyboard shortcut activation. + */ + type: Boolean, + defaultValue: true, + }, services: { /** * services field of the user @@ -954,6 +961,11 @@ Users.helpers({ return 'templates'; }, + isKeyboardShortcuts() { + const { keyboardShortcuts = false } = this.profile || {}; + return keyboardShortcuts; + }, + remove() { User.remove({ _id: this._id, @@ -1018,6 +1030,14 @@ Users.mutations({ }, }; }, + toggleKeyboardShortcuts() { + const { keyboardShortcuts = false } = this.profile || {}; + return { + $set: { + 'profile.keyboardShortcuts': !keyboardShortcuts, + }, + }; + }, addInvite(boardId) { return { From 295c9c8617c6efe180fdc29b4b1183d570b62642 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 25 Dec 2024 00:23:18 +0200 Subject: [PATCH 220/356] Allow toggling profile.keyboardShortcuts from boardHeader --- client/components/boards/boardHeader.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index 1f450e935..30c6457f8 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -45,6 +45,11 @@ BlazeComponent.extendComponent({ return user && user.isAutoWidth(boardId); }, + isKeyboardShortcuts() { + const user = ReactiveCache.getCurrentUser(); + return user && user.isKeyboardShortcuts(); + }, + // Only show the star counter if the number of star is greater than 2 showStarCounter() { const currentBoard = Utils.getCurrentBoard(); @@ -82,6 +87,9 @@ BlazeComponent.extendComponent({ dragscroll.reset(); ReactiveCache.getCurrentUser().toggleAutoWidth(Utils.getCurrentBoardId()); }, + 'click .js-keyboard-shortcuts-toggle'() { + ReactiveCache.getCurrentUser().toggleKeyboardShortcuts(); + }, 'click .js-open-board-menu': Popup.open('boardMenu'), 'click .js-change-visibility': Popup.open('boardChangeVisibility'), 'click .js-watch-board': Popup.open('boardChangeWatch'), From fb008569abfdfe1efc58376faec2c9ac1ba9d7b0 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 25 Dec 2024 00:24:41 +0200 Subject: [PATCH 221/356] Make sure keyboard shortcuts are enabled and no text is selected on shortcut triggers --- client/lib/keyboard.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index b84c1e494..fa1e706b7 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -14,6 +14,22 @@ window.addEventListener('keydown', (e) => { Mousetrap.trigger(String.fromCharCode(e.which).toLowerCase()); }); +// Store the original stopCallback in a global +const originalStopCallback = Mousetrap.stopCallback; + +// Overwrite the stopCallback to allow for more keyboard shortcut customizations +Mousetrap.stopCallback = (e, element) => { + // Are shortcuts enabled for the user? + if (!ReactiveCache.getCurrentUser().isKeyboardShortcuts()) + return true; + + // Make sure there are no selected characters + if (window.getSelection().type === "Range") + return true; + + return originalStopCallback(e, element); +} + function getHoveredCardId() { const card = $('.js-minicard:hover').get(0); if (!card) return null; From 0d0c88ceaa11b152cd38ee7afa8a15fcf480a854 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 25 Dec 2024 00:32:46 +0200 Subject: [PATCH 222/356] Add translations for keyboard shortcut actions --- imports/i18n/data/en.i18n.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index e562be9b1..d1f8798e5 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -90,6 +90,8 @@ "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", + "click-to-enable-keyboard-shortcuts": "Click to enable keyboard shortcuts", + "click-to-disable-keyboard-shortcuts": "Click to disable keyboard shortcuts", "setSwimlaneHeightPopup-title": "Set Swimlane Height", "set-swimlane-height": "Set Swimlane Height", "set-swimlane-height-value": "Swimlane Height (pixels)", From 955a46ca6016e75c0ac1b01e25f96f47c2844559 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 25 Dec 2024 04:59:15 +0200 Subject: [PATCH 223/356] Fixes keyboard shortcuts defaults, icons and texts to be more understandable. Thanks to xet7 ! Fixes https://github.com/wekan/wekan/pull/5628 --- client/components/boards/boardHeader.jade | 10 ++++++---- imports/i18n/data/en.i18n.json | 4 ++-- models/users.js | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index 36889f13b..bcfa23f29 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -28,8 +28,9 @@ template(name="boardHeaderBar") i.fa(class="fa-solid fa-{{#if isAutoWidth}}compress{{else}}expand{{/if}}") a.board-header-btn.js-keyboard-shortcuts-toggle( - title="{{#if isKeyboardShortcuts}}{{_ 'click-to-disable-keyboard-shortcuts'}}{{else}}{{_ 'click-to-enable-keyboard-shortcuts'}}{{/if}}") - i.fa(class="fa-solid fa-{{#if isKeyboardShortcuts}}computer-mouse{{else}}keyboard{{/if}}") + title="{{#if isKeyboardShortcuts}}{{_ 'keyboard-shortcuts-enabled'}}{{else}}{{_ 'keyboard-shortcuts-disabled'}}{{/if}}") + i.fa(class="fa-solid fa-keyboard") + i.fa(class="fa-solid fa-{{#if isKeyboardShortcuts}}check-square-o{{else}}ban{{/if}}") a.board-header-btn( class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}" @@ -79,8 +80,9 @@ template(name="boardHeaderBar") i.fa(class="fa-solid fa-{{#if isAutoWidth}}compress{{else}}expand{{/if}}") a.board-header-btn.js-keyboard-shortcuts-toggle( - title="{{#if isKeyboardShortcuts}}{{_ 'click-to-disable-keyboard-shortcuts'}}{{else}}{{_ 'click-to-enable-keyboard-shortcuts'}}{{/if}}") - i.fa(class="fa-solid fa-{{#if isKeyboardShortcuts}}computer-mouse{{else}}keyboard{{/if}}") + title="{{#if isKeyboardShortcuts}}{{_ 'keyboard-shortcuts-enabled'}}{{else}}{{_ 'keyboard-shortcuts-disabled'}}{{/if}}") + i.fa(class="fa-solid fa-keyboard") + i.fa(class="fa-solid fa-{{#if isKeyboardShortcuts}}check-square-o{{else}}ban{{/if}}") a.board-header-btn( class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}" diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index d1f8798e5..5668699a3 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -90,8 +90,8 @@ "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", - "click-to-enable-keyboard-shortcuts": "Click to enable keyboard shortcuts", - "click-to-disable-keyboard-shortcuts": "Click to disable keyboard shortcuts", + "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)", diff --git a/models/users.js b/models/users.js index 4673f58f0..5d28dae3b 100644 --- a/models/users.js +++ b/models/users.js @@ -449,7 +449,7 @@ Users.attachSchema( * User-specified state of keyboard shortcut activation. */ type: Boolean, - defaultValue: true, + defaultValue: false, }, services: { /** From fe5475d5eccb4b702024851a02c8d2c2264e22e3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 25 Dec 2024 05:01:55 +0200 Subject: [PATCH 224/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e17ddf602..04a6fa43b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming WeKan ® release + +This release fixes the following bugs: + +- [Fixed keyboard shortcuts defaults, icons and texts to be more understandable](https://github.com/wekan/wekan/commit/955a46ca6016e75c0ac1b01e25f96f47c2844559). + 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: From b60c655b9806410726e4088bf559b0433dc7081a Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 25 Dec 2024 05:20:10 +0200 Subject: [PATCH 225/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 04a6fa43b..833cdb95f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,8 @@ Fixing other platforms In Progress. 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. From 14c9b70149aa4c0fe6b94e2c0a3696172b8d6c65 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 25 Dec 2024 05:42:21 +0200 Subject: [PATCH 226/356] Updated translations. --- imports/i18n/data/af.i18n.json | 2 ++ imports/i18n/data/af_ZA.i18n.json | 2 ++ imports/i18n/data/ar-DZ.i18n.json | 2 ++ imports/i18n/data/ar-EG.i18n.json | 2 ++ imports/i18n/data/ar.i18n.json | 2 ++ imports/i18n/data/ary.i18n.json | 2 ++ imports/i18n/data/ast-ES.i18n.json | 2 ++ imports/i18n/data/az-AZ.i18n.json | 2 ++ imports/i18n/data/az-LA.i18n.json | 2 ++ imports/i18n/data/az.i18n.json | 2 ++ imports/i18n/data/bg.i18n.json | 2 ++ imports/i18n/data/br.i18n.json | 2 ++ imports/i18n/data/ca.i18n.json | 2 ++ imports/i18n/data/ca_ES.i18n.json | 2 ++ imports/i18n/data/cmn.i18n.json | 2 ++ imports/i18n/data/cs-CZ.i18n.json | 2 ++ imports/i18n/data/cs.i18n.json | 2 ++ imports/i18n/data/cy-GB.i18n.json | 2 ++ imports/i18n/data/cy.i18n.json | 2 ++ imports/i18n/data/da.i18n.json | 2 ++ imports/i18n/data/de-AT.i18n.json | 2 ++ imports/i18n/data/de-CH.i18n.json | 2 ++ imports/i18n/data/de.i18n.json | 2 ++ imports/i18n/data/de_DE.i18n.json | 2 ++ imports/i18n/data/el-GR.i18n.json | 2 ++ imports/i18n/data/el.i18n.json | 2 ++ imports/i18n/data/en-BR.i18n.json | 2 ++ imports/i18n/data/en-DE.i18n.json | 2 ++ imports/i18n/data/en-GB.i18n.json | 2 ++ imports/i18n/data/en-IT.i18n.json | 2 ++ imports/i18n/data/en-MY.i18n.json | 2 ++ imports/i18n/data/en-YS.i18n.json | 2 ++ imports/i18n/data/en_TR.i18n.json | 2 ++ imports/i18n/data/en_ZA.i18n.json | 2 ++ imports/i18n/data/eo.i18n.json | 2 ++ imports/i18n/data/es-AR.i18n.json | 2 ++ imports/i18n/data/es-CL.i18n.json | 2 ++ imports/i18n/data/es-LA.i18n.json | 2 ++ imports/i18n/data/es-MX.i18n.json | 2 ++ imports/i18n/data/es-PE.i18n.json | 2 ++ imports/i18n/data/es-PY.i18n.json | 2 ++ imports/i18n/data/es.i18n.json | 2 ++ imports/i18n/data/es_CO.i18n.json | 2 ++ imports/i18n/data/et-EE.i18n.json | 2 ++ imports/i18n/data/eu.i18n.json | 2 ++ imports/i18n/data/fa-IR.i18n.json | 2 ++ imports/i18n/data/fa.i18n.json | 2 ++ imports/i18n/data/fi.i18n.json | 2 ++ imports/i18n/data/fr-CH.i18n.json | 2 ++ imports/i18n/data/fr-FR.i18n.json | 2 ++ imports/i18n/data/fr.i18n.json | 2 ++ imports/i18n/data/fy-NL.i18n.json | 2 ++ imports/i18n/data/fy.i18n.json | 2 ++ imports/i18n/data/gl-ES.i18n.json | 2 ++ imports/i18n/data/gl.i18n.json | 2 ++ imports/i18n/data/gu-IN.i18n.json | 2 ++ imports/i18n/data/he-IL.i18n.json | 2 ++ imports/i18n/data/he.i18n.json | 2 ++ imports/i18n/data/hi-IN.i18n.json | 2 ++ imports/i18n/data/hi.i18n.json | 2 ++ imports/i18n/data/hr.i18n.json | 2 ++ imports/i18n/data/hu.i18n.json | 2 ++ imports/i18n/data/hy.i18n.json | 2 ++ imports/i18n/data/id.i18n.json | 2 ++ imports/i18n/data/ig.i18n.json | 2 ++ imports/i18n/data/it.i18n.json | 2 ++ imports/i18n/data/ja-HI.i18n.json | 2 ++ imports/i18n/data/ja.i18n.json | 2 ++ imports/i18n/data/ka.i18n.json | 2 ++ imports/i18n/data/km.i18n.json | 2 ++ imports/i18n/data/ko-KR.i18n.json | 2 ++ imports/i18n/data/ko.i18n.json | 2 ++ imports/i18n/data/lt.i18n.json | 2 ++ imports/i18n/data/lv.i18n.json | 2 ++ imports/i18n/data/mk.i18n.json | 2 ++ imports/i18n/data/mn.i18n.json | 2 ++ imports/i18n/data/ms-MY.i18n.json | 2 ++ imports/i18n/data/ms.i18n.json | 2 ++ imports/i18n/data/nb.i18n.json | 2 ++ imports/i18n/data/nl-NL.i18n.json | 2 ++ imports/i18n/data/nl.i18n.json | 2 ++ imports/i18n/data/oc.i18n.json | 2 ++ imports/i18n/data/or_IN.i18n.json | 2 ++ imports/i18n/data/pa.i18n.json | 2 ++ imports/i18n/data/pl-PL.i18n.json | 2 ++ imports/i18n/data/pl.i18n.json | 2 ++ imports/i18n/data/pt-BR.i18n.json | 2 ++ imports/i18n/data/pt.i18n.json | 2 ++ imports/i18n/data/pt_PT.i18n.json | 2 ++ imports/i18n/data/ro-RO.i18n.json | 2 ++ imports/i18n/data/ro.i18n.json | 2 ++ imports/i18n/data/ru-UA.i18n.json | 2 ++ imports/i18n/data/ru.i18n.json | 2 ++ imports/i18n/data/sk.i18n.json | 2 ++ imports/i18n/data/sl.i18n.json | 2 ++ imports/i18n/data/sr.i18n.json | 2 ++ imports/i18n/data/sv.i18n.json | 2 ++ imports/i18n/data/sw.i18n.json | 2 ++ imports/i18n/data/ta.i18n.json | 2 ++ imports/i18n/data/th.i18n.json | 2 ++ imports/i18n/data/tk_TM.i18n.json | 2 ++ imports/i18n/data/tlh.i18n.json | 2 ++ imports/i18n/data/tr.i18n.json | 2 ++ imports/i18n/data/ug.i18n.json | 2 ++ imports/i18n/data/uk-UA.i18n.json | 2 ++ imports/i18n/data/uk.i18n.json | 2 ++ imports/i18n/data/uz-AR.i18n.json | 2 ++ imports/i18n/data/uz-LA.i18n.json | 2 ++ imports/i18n/data/uz-UZ.i18n.json | 2 ++ imports/i18n/data/uz.i18n.json | 2 ++ imports/i18n/data/ve-CC.i18n.json | 2 ++ imports/i18n/data/ve-PP.i18n.json | 2 ++ imports/i18n/data/ve.i18n.json | 2 ++ imports/i18n/data/vi-VN.i18n.json | 2 ++ imports/i18n/data/vi.i18n.json | 2 ++ imports/i18n/data/vl-SS.i18n.json | 2 ++ imports/i18n/data/vo.i18n.json | 2 ++ imports/i18n/data/wa-RR.i18n.json | 2 ++ imports/i18n/data/wa.i18n.json | 2 ++ imports/i18n/data/wo.i18n.json | 2 ++ imports/i18n/data/xh.i18n.json | 2 ++ imports/i18n/data/yi.i18n.json | 2 ++ imports/i18n/data/yo.i18n.json | 2 ++ imports/i18n/data/yue_CN.i18n.json | 2 ++ imports/i18n/data/zgh.i18n.json | 2 ++ imports/i18n/data/zh-CN.i18n.json | 2 ++ imports/i18n/data/zh-GB.i18n.json | 2 ++ imports/i18n/data/zh-HK.i18n.json | 2 ++ imports/i18n/data/zh-Hans.i18n.json | 2 ++ imports/i18n/data/zh-Hant.i18n.json | 2 ++ imports/i18n/data/zh-TW.i18n.json | 2 ++ imports/i18n/data/zh.i18n.json | 2 ++ imports/i18n/data/zu-ZA.i18n.json | 2 ++ imports/i18n/data/zu.i18n.json | 2 ++ 134 files changed, 268 insertions(+) diff --git a/imports/i18n/data/af.i18n.json b/imports/i18n/data/af.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/af.i18n.json +++ b/imports/i18n/data/af.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/af_ZA.i18n.json b/imports/i18n/data/af_ZA.i18n.json index 0e8c14d40..c690b057b 100644 --- a/imports/i18n/data/af_ZA.i18n.json +++ b/imports/i18n/data/af_ZA.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ar-DZ.i18n.json b/imports/i18n/data/ar-DZ.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/ar-DZ.i18n.json +++ b/imports/i18n/data/ar-DZ.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ar-EG.i18n.json b/imports/i18n/data/ar-EG.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/ar-EG.i18n.json +++ b/imports/i18n/data/ar-EG.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index 1ac3c6d91..d22e87e3f 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ary.i18n.json b/imports/i18n/data/ary.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/ary.i18n.json +++ b/imports/i18n/data/ary.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ast-ES.i18n.json b/imports/i18n/data/ast-ES.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/ast-ES.i18n.json +++ b/imports/i18n/data/ast-ES.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/az-AZ.i18n.json b/imports/i18n/data/az-AZ.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/az-AZ.i18n.json +++ b/imports/i18n/data/az-AZ.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/az-LA.i18n.json b/imports/i18n/data/az-LA.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/az-LA.i18n.json +++ b/imports/i18n/data/az-LA.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/az.i18n.json b/imports/i18n/data/az.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/az.i18n.json +++ b/imports/i18n/data/az.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/bg.i18n.json b/imports/i18n/data/bg.i18n.json index ea6c50953..a9279e04d 100644 --- a/imports/i18n/data/bg.i18n.json +++ b/imports/i18n/data/bg.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index bf4467b1f..4e0fba788 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ca.i18n.json b/imports/i18n/data/ca.i18n.json index 18855f07e..d8d774af6 100644 --- a/imports/i18n/data/ca.i18n.json +++ b/imports/i18n/data/ca.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ca_ES.i18n.json b/imports/i18n/data/ca_ES.i18n.json index 6dc9dc102..52efbb61a 100644 --- a/imports/i18n/data/ca_ES.i18n.json +++ b/imports/i18n/data/ca_ES.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/cmn.i18n.json b/imports/i18n/data/cmn.i18n.json index c14ff3191..6f40c1d60 100644 --- a/imports/i18n/data/cmn.i18n.json +++ b/imports/i18n/data/cmn.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/cs-CZ.i18n.json b/imports/i18n/data/cs-CZ.i18n.json index f0f0dcb60..5f14bb551 100644 --- a/imports/i18n/data/cs-CZ.i18n.json +++ b/imports/i18n/data/cs-CZ.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/cs.i18n.json b/imports/i18n/data/cs.i18n.json index 002cea267..77718f19c 100644 --- a/imports/i18n/data/cs.i18n.json +++ b/imports/i18n/data/cs.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/cy-GB.i18n.json b/imports/i18n/data/cy-GB.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/cy-GB.i18n.json +++ b/imports/i18n/data/cy-GB.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/cy.i18n.json b/imports/i18n/data/cy.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/cy.i18n.json +++ b/imports/i18n/data/cy.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/da.i18n.json b/imports/i18n/data/da.i18n.json index 484e2a354..52956e336 100644 --- a/imports/i18n/data/da.i18n.json +++ b/imports/i18n/data/da.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/de-AT.i18n.json b/imports/i18n/data/de-AT.i18n.json index 015f3203b..db6726330 100644 --- a/imports/i18n/data/de-AT.i18n.json +++ b/imports/i18n/data/de-AT.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/de-CH.i18n.json b/imports/i18n/data/de-CH.i18n.json index 0e56420b6..f9fce086b 100644 --- a/imports/i18n/data/de-CH.i18n.json +++ b/imports/i18n/data/de-CH.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index ba59100be..c4ee1a6f6 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -90,6 +90,8 @@ "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": "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)", diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index 9c786bc09..263912d8c 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -90,6 +90,8 @@ "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": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "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)", diff --git a/imports/i18n/data/el-GR.i18n.json b/imports/i18n/data/el-GR.i18n.json index ef3c587cc..f47149d26 100644 --- a/imports/i18n/data/el-GR.i18n.json +++ b/imports/i18n/data/el-GR.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/el.i18n.json b/imports/i18n/data/el.i18n.json index f793c874e..8bccd34dd 100644 --- a/imports/i18n/data/el.i18n.json +++ b/imports/i18n/data/el.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/en-BR.i18n.json b/imports/i18n/data/en-BR.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/en-BR.i18n.json +++ b/imports/i18n/data/en-BR.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/en-DE.i18n.json b/imports/i18n/data/en-DE.i18n.json index 09a92a78b..77694772c 100644 --- a/imports/i18n/data/en-DE.i18n.json +++ b/imports/i18n/data/en-DE.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/en-GB.i18n.json b/imports/i18n/data/en-GB.i18n.json index f44e94ca5..3a297c537 100644 --- a/imports/i18n/data/en-GB.i18n.json +++ b/imports/i18n/data/en-GB.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/en-IT.i18n.json b/imports/i18n/data/en-IT.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/en-IT.i18n.json +++ b/imports/i18n/data/en-IT.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/en-MY.i18n.json b/imports/i18n/data/en-MY.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/en-MY.i18n.json +++ b/imports/i18n/data/en-MY.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/en-YS.i18n.json b/imports/i18n/data/en-YS.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/en-YS.i18n.json +++ b/imports/i18n/data/en-YS.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/en_TR.i18n.json b/imports/i18n/data/en_TR.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/en_TR.i18n.json +++ b/imports/i18n/data/en_TR.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/en_ZA.i18n.json b/imports/i18n/data/en_ZA.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/en_ZA.i18n.json +++ b/imports/i18n/data/en_ZA.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index c42995526..92be10ae6 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/es-AR.i18n.json b/imports/i18n/data/es-AR.i18n.json index 9a948a602..5dcccd737 100644 --- a/imports/i18n/data/es-AR.i18n.json +++ b/imports/i18n/data/es-AR.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/es-CL.i18n.json b/imports/i18n/data/es-CL.i18n.json index 137f45ec9..57eb791fd 100644 --- a/imports/i18n/data/es-CL.i18n.json +++ b/imports/i18n/data/es-CL.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/es-LA.i18n.json b/imports/i18n/data/es-LA.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/es-LA.i18n.json +++ b/imports/i18n/data/es-LA.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/es-MX.i18n.json b/imports/i18n/data/es-MX.i18n.json index 96c64d768..ad811afdf 100644 --- a/imports/i18n/data/es-MX.i18n.json +++ b/imports/i18n/data/es-MX.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/es-PE.i18n.json b/imports/i18n/data/es-PE.i18n.json index 2b5f30a0c..fa763cc86 100644 --- a/imports/i18n/data/es-PE.i18n.json +++ b/imports/i18n/data/es-PE.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/es-PY.i18n.json b/imports/i18n/data/es-PY.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/es-PY.i18n.json +++ b/imports/i18n/data/es-PY.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 94e2dacce..a1c3b2a43 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/es_CO.i18n.json b/imports/i18n/data/es_CO.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/es_CO.i18n.json +++ b/imports/i18n/data/es_CO.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/et-EE.i18n.json b/imports/i18n/data/et-EE.i18n.json index ed08d255d..8791d83d5 100644 --- a/imports/i18n/data/et-EE.i18n.json +++ b/imports/i18n/data/et-EE.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 94f80e73b..32d5658cc 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -90,6 +90,8 @@ "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": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Errailaren altuera ezarri", "set-swimlane-height": "Errailaren altuera ezarri", "set-swimlane-height-value": "Errailaren altuera (pixelak)", diff --git a/imports/i18n/data/fa-IR.i18n.json b/imports/i18n/data/fa-IR.i18n.json index 603d01ca8..6ae0dbc98 100644 --- a/imports/i18n/data/fa-IR.i18n.json +++ b/imports/i18n/data/fa-IR.i18n.json @@ -90,6 +90,8 @@ "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": "تنظیم ارتفاع مسیر ( پیکسل )", diff --git a/imports/i18n/data/fa.i18n.json b/imports/i18n/data/fa.i18n.json index 65a1a9ac1..4d48f9c0e 100644 --- a/imports/i18n/data/fa.i18n.json +++ b/imports/i18n/data/fa.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/fi.i18n.json b/imports/i18n/data/fi.i18n.json index 00eab1f58..e9ee07f9b 100644 --- a/imports/i18n/data/fi.i18n.json +++ b/imports/i18n/data/fi.i18n.json @@ -90,6 +90,8 @@ "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ä)", diff --git a/imports/i18n/data/fr-CH.i18n.json b/imports/i18n/data/fr-CH.i18n.json index afb3df3cc..11b410deb 100644 --- a/imports/i18n/data/fr-CH.i18n.json +++ b/imports/i18n/data/fr-CH.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/fr-FR.i18n.json b/imports/i18n/data/fr-FR.i18n.json index 0f2c1f146..744f7b751 100644 --- a/imports/i18n/data/fr-FR.i18n.json +++ b/imports/i18n/data/fr-FR.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index 9c94f4f51..4cbb5a6b1 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/fy-NL.i18n.json b/imports/i18n/data/fy-NL.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/fy-NL.i18n.json +++ b/imports/i18n/data/fy-NL.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/fy.i18n.json b/imports/i18n/data/fy.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/fy.i18n.json +++ b/imports/i18n/data/fy.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/gl-ES.i18n.json b/imports/i18n/data/gl-ES.i18n.json index 28e508d8c..75f5eb4b1 100644 --- a/imports/i18n/data/gl-ES.i18n.json +++ b/imports/i18n/data/gl-ES.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/gl.i18n.json b/imports/i18n/data/gl.i18n.json index 5aab6d715..94c2dda12 100644 --- a/imports/i18n/data/gl.i18n.json +++ b/imports/i18n/data/gl.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/gu-IN.i18n.json b/imports/i18n/data/gu-IN.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/gu-IN.i18n.json +++ b/imports/i18n/data/gu-IN.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/he-IL.i18n.json b/imports/i18n/data/he-IL.i18n.json index 45124c705..9a1ad0db8 100644 --- a/imports/i18n/data/he-IL.i18n.json +++ b/imports/i18n/data/he-IL.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index 906770ccf..60f5727f8 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -90,6 +90,8 @@ "set-list-width": "הגדרת רוחבים", "set-list-width-value": "הגדרת רוחבים מזעריים ומרביים (פיקסלים)", "list-width-error-message": "רשימת הרוחבים חייבים להיות מספרים שלמים מעל 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": "גובה מסלול (פיקסלים)", diff --git a/imports/i18n/data/hi-IN.i18n.json b/imports/i18n/data/hi-IN.i18n.json index c59f39f16..7df4a1316 100644 --- a/imports/i18n/data/hi-IN.i18n.json +++ b/imports/i18n/data/hi-IN.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/hi.i18n.json b/imports/i18n/data/hi.i18n.json index fda2f67c3..b6ac06c21 100644 --- a/imports/i18n/data/hi.i18n.json +++ b/imports/i18n/data/hi.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/hr.i18n.json b/imports/i18n/data/hr.i18n.json index 1813d430c..09cbf1e34 100644 --- a/imports/i18n/data/hr.i18n.json +++ b/imports/i18n/data/hr.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/hu.i18n.json b/imports/i18n/data/hu.i18n.json index e100f74da..f3aade277 100644 --- a/imports/i18n/data/hu.i18n.json +++ b/imports/i18n/data/hu.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/hy.i18n.json b/imports/i18n/data/hy.i18n.json index 345b28d74..d323e660d 100644 --- a/imports/i18n/data/hy.i18n.json +++ b/imports/i18n/data/hy.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/id.i18n.json b/imports/i18n/data/id.i18n.json index 210544dda..a46c88790 100644 --- a/imports/i18n/data/id.i18n.json +++ b/imports/i18n/data/id.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ig.i18n.json b/imports/i18n/data/ig.i18n.json index 7a9313a3e..df849c867 100644 --- a/imports/i18n/data/ig.i18n.json +++ b/imports/i18n/data/ig.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/it.i18n.json b/imports/i18n/data/it.i18n.json index a5a935765..d031c7e14 100644 --- a/imports/i18n/data/it.i18n.json +++ b/imports/i18n/data/it.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index 8ba122046..f0e22a15e 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -90,6 +90,8 @@ "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": "スイムレーンの高さ(ピクセル)", diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index 638fb7ff9..4cadc4581 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -90,6 +90,8 @@ "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": "スイムレーンの高さ(ピクセル)", diff --git a/imports/i18n/data/ka.i18n.json b/imports/i18n/data/ka.i18n.json index 67bd6bfd7..7144929cb 100644 --- a/imports/i18n/data/ka.i18n.json +++ b/imports/i18n/data/ka.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/km.i18n.json b/imports/i18n/data/km.i18n.json index a7e0f6a6c..5fde659ed 100644 --- a/imports/i18n/data/km.i18n.json +++ b/imports/i18n/data/km.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ko-KR.i18n.json b/imports/i18n/data/ko-KR.i18n.json index be9b987c0..9c61d097a 100644 --- a/imports/i18n/data/ko-KR.i18n.json +++ b/imports/i18n/data/ko-KR.i18n.json @@ -90,6 +90,8 @@ "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 높이 (픽셀)", diff --git a/imports/i18n/data/ko.i18n.json b/imports/i18n/data/ko.i18n.json index c414cf5c6..886390152 100644 --- a/imports/i18n/data/ko.i18n.json +++ b/imports/i18n/data/ko.i18n.json @@ -90,6 +90,8 @@ "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 높이 (픽셀)", diff --git a/imports/i18n/data/lt.i18n.json b/imports/i18n/data/lt.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/lt.i18n.json +++ b/imports/i18n/data/lt.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/lv.i18n.json b/imports/i18n/data/lv.i18n.json index f0f1c3fda..299187397 100644 --- a/imports/i18n/data/lv.i18n.json +++ b/imports/i18n/data/lv.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/mk.i18n.json b/imports/i18n/data/mk.i18n.json index 756fc2024..2dd91d419 100644 --- a/imports/i18n/data/mk.i18n.json +++ b/imports/i18n/data/mk.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/mn.i18n.json b/imports/i18n/data/mn.i18n.json index 1568df93c..d71141ee4 100644 --- a/imports/i18n/data/mn.i18n.json +++ b/imports/i18n/data/mn.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/ms-MY.i18n.json +++ b/imports/i18n/data/ms-MY.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ms.i18n.json b/imports/i18n/data/ms.i18n.json index 000d85a40..cd9abd59e 100644 --- a/imports/i18n/data/ms.i18n.json +++ b/imports/i18n/data/ms.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/nb.i18n.json b/imports/i18n/data/nb.i18n.json index 06ec88843..39a00fc07 100644 --- a/imports/i18n/data/nb.i18n.json +++ b/imports/i18n/data/nb.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/nl-NL.i18n.json b/imports/i18n/data/nl-NL.i18n.json index 64328ac2f..5a318e3f7 100644 --- a/imports/i18n/data/nl-NL.i18n.json +++ b/imports/i18n/data/nl-NL.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 280a82dd8..3070d8318 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -90,6 +90,8 @@ "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": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Stel Swimlane-hoogte in", "set-swimlane-height": "Stel Swimlane-hoogte in", "set-swimlane-height-value": "Swimlane-hoogte (pixels)", diff --git a/imports/i18n/data/oc.i18n.json b/imports/i18n/data/oc.i18n.json index 559640e14..dce162c78 100644 --- a/imports/i18n/data/oc.i18n.json +++ b/imports/i18n/data/oc.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/or_IN.i18n.json b/imports/i18n/data/or_IN.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/or_IN.i18n.json +++ b/imports/i18n/data/or_IN.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/pa.i18n.json b/imports/i18n/data/pa.i18n.json index 08d27c794..2cc964cba 100644 --- a/imports/i18n/data/pa.i18n.json +++ b/imports/i18n/data/pa.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/pl-PL.i18n.json b/imports/i18n/data/pl-PL.i18n.json index f1c681775..5694c7374 100644 --- a/imports/i18n/data/pl-PL.i18n.json +++ b/imports/i18n/data/pl-PL.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/pl.i18n.json b/imports/i18n/data/pl.i18n.json index e436d2a28..c20d77e10 100644 --- a/imports/i18n/data/pl.i18n.json +++ b/imports/i18n/data/pl.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index 2f9825cbb..cb0c42887 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -90,6 +90,8 @@ "set-list-width": "Definir Largura", "set-list-width-value": "Definir Largura Mínima e Máxima (pixeis)", "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": "Definir Altura da Raia", "set-swimlane-height": "Definir Altura da Raia", "set-swimlane-height-value": "Altura da Raia (pixels)", diff --git a/imports/i18n/data/pt.i18n.json b/imports/i18n/data/pt.i18n.json index 636e3069b..cad0ca756 100644 --- a/imports/i18n/data/pt.i18n.json +++ b/imports/i18n/data/pt.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/pt_PT.i18n.json b/imports/i18n/data/pt_PT.i18n.json index af5a771bc..5cb84ad71 100644 --- a/imports/i18n/data/pt_PT.i18n.json +++ b/imports/i18n/data/pt_PT.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ro-RO.i18n.json b/imports/i18n/data/ro-RO.i18n.json index cf313716e..0f0d96b95 100644 --- a/imports/i18n/data/ro-RO.i18n.json +++ b/imports/i18n/data/ro-RO.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ro.i18n.json b/imports/i18n/data/ro.i18n.json index f4bfc4855..44ef7d847 100644 --- a/imports/i18n/data/ro.i18n.json +++ b/imports/i18n/data/ro.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ru-UA.i18n.json b/imports/i18n/data/ru-UA.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/ru-UA.i18n.json +++ b/imports/i18n/data/ru-UA.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ru.i18n.json b/imports/i18n/data/ru.i18n.json index 7149791a4..83047d353 100644 --- a/imports/i18n/data/ru.i18n.json +++ b/imports/i18n/data/ru.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index 5eb5311aa..50a8b367e 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/sl.i18n.json b/imports/i18n/data/sl.i18n.json index 97375d194..1293e5f31 100644 --- a/imports/i18n/data/sl.i18n.json +++ b/imports/i18n/data/sl.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/sr.i18n.json b/imports/i18n/data/sr.i18n.json index 7e7ec4345..f56815e94 100644 --- a/imports/i18n/data/sr.i18n.json +++ b/imports/i18n/data/sr.i18n.json @@ -90,6 +90,8 @@ "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": "Висина стазе (у пикселима)", diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index f88db97cb..799ee7e55 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -90,6 +90,8 @@ "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": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "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)", diff --git a/imports/i18n/data/sw.i18n.json b/imports/i18n/data/sw.i18n.json index 64ee2f727..47ee17b2f 100644 --- a/imports/i18n/data/sw.i18n.json +++ b/imports/i18n/data/sw.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ta.i18n.json b/imports/i18n/data/ta.i18n.json index 97115b03e..f9e230ac8 100644 --- a/imports/i18n/data/ta.i18n.json +++ b/imports/i18n/data/ta.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/th.i18n.json b/imports/i18n/data/th.i18n.json index 7664f8536..1baf51d4d 100644 --- a/imports/i18n/data/th.i18n.json +++ b/imports/i18n/data/th.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/tk_TM.i18n.json b/imports/i18n/data/tk_TM.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/tk_TM.i18n.json +++ b/imports/i18n/data/tk_TM.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/tlh.i18n.json b/imports/i18n/data/tlh.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/tlh.i18n.json +++ b/imports/i18n/data/tlh.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index c1c425831..a2c8c9d5b 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -90,6 +90,8 @@ "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": "Kulvar Uzunluğunu Ayarla", "set-swimlane-height": "Kulvar Uzunluğunu Ayarla", "set-swimlane-height-value": "Kulvar Uzunluğu (piksel)", diff --git a/imports/i18n/data/ug.i18n.json b/imports/i18n/data/ug.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/ug.i18n.json +++ b/imports/i18n/data/ug.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index eb3d40b55..b693a4147 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -90,6 +90,8 @@ "set-list-width": "Встановити ширини", "set-list-width-value": "Встановити мін. та макс. ширину списку (у пікселях)", "list-width-error-message": "Ширина списку має бути цілими числами, більшими за 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": "Висота доріжки (у пікселях)", diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index c5a8f78fa..009cad8ff 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -90,6 +90,8 @@ "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": "Висота доріжки (у пікселях)", diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz-AR.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/uz-AR.i18n.json +++ b/imports/i18n/data/uz-AR.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/uz-LA.i18n.json b/imports/i18n/data/uz-LA.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/uz-LA.i18n.json +++ b/imports/i18n/data/uz-LA.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/uz-UZ.i18n.json b/imports/i18n/data/uz-UZ.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/uz-UZ.i18n.json +++ b/imports/i18n/data/uz-UZ.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/uz.i18n.json b/imports/i18n/data/uz.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/uz.i18n.json +++ b/imports/i18n/data/uz.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ve-CC.i18n.json b/imports/i18n/data/ve-CC.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/ve-CC.i18n.json +++ b/imports/i18n/data/ve-CC.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ve-PP.i18n.json b/imports/i18n/data/ve-PP.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/ve-PP.i18n.json +++ b/imports/i18n/data/ve-PP.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/ve.i18n.json b/imports/i18n/data/ve.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/ve.i18n.json +++ b/imports/i18n/data/ve.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/vi-VN.i18n.json b/imports/i18n/data/vi-VN.i18n.json index 51d6092ee..531b9bf80 100644 --- a/imports/i18n/data/vi-VN.i18n.json +++ b/imports/i18n/data/vi-VN.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/vi.i18n.json b/imports/i18n/data/vi.i18n.json index c4db2000a..ebf18930c 100644 --- a/imports/i18n/data/vi.i18n.json +++ b/imports/i18n/data/vi.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/vl-SS.i18n.json b/imports/i18n/data/vl-SS.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/vl-SS.i18n.json +++ b/imports/i18n/data/vl-SS.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/vo.i18n.json b/imports/i18n/data/vo.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/vo.i18n.json +++ b/imports/i18n/data/vo.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/wa-RR.i18n.json b/imports/i18n/data/wa-RR.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/wa-RR.i18n.json +++ b/imports/i18n/data/wa-RR.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/wa.i18n.json b/imports/i18n/data/wa.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/wa.i18n.json +++ b/imports/i18n/data/wa.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/wo.i18n.json b/imports/i18n/data/wo.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/wo.i18n.json +++ b/imports/i18n/data/wo.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/xh.i18n.json b/imports/i18n/data/xh.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/xh.i18n.json +++ b/imports/i18n/data/xh.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/yi.i18n.json b/imports/i18n/data/yi.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/yi.i18n.json +++ b/imports/i18n/data/yi.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/yo.i18n.json b/imports/i18n/data/yo.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/yo.i18n.json +++ b/imports/i18n/data/yo.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/yue_CN.i18n.json b/imports/i18n/data/yue_CN.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/yue_CN.i18n.json +++ b/imports/i18n/data/yue_CN.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/zgh.i18n.json b/imports/i18n/data/zgh.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/zgh.i18n.json +++ b/imports/i18n/data/zgh.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/zh-CN.i18n.json b/imports/i18n/data/zh-CN.i18n.json index 8003bce99..c3ebcbd7d 100644 --- a/imports/i18n/data/zh-CN.i18n.json +++ b/imports/i18n/data/zh-CN.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/zh-GB.i18n.json b/imports/i18n/data/zh-GB.i18n.json index d1d2e111d..d3f530cf1 100644 --- a/imports/i18n/data/zh-GB.i18n.json +++ b/imports/i18n/data/zh-GB.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/zh-HK.i18n.json b/imports/i18n/data/zh-HK.i18n.json index 513715318..91123c7fc 100644 --- a/imports/i18n/data/zh-HK.i18n.json +++ b/imports/i18n/data/zh-HK.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/zh-Hans.i18n.json b/imports/i18n/data/zh-Hans.i18n.json index efafee5e8..1b1085561 100644 --- a/imports/i18n/data/zh-Hans.i18n.json +++ b/imports/i18n/data/zh-Hans.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/zh-Hant.i18n.json b/imports/i18n/data/zh-Hant.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/zh-Hant.i18n.json +++ b/imports/i18n/data/zh-Hant.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index d0c718c79..b8910714f 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -90,6 +90,8 @@ "set-list-width": "設定寬度", "set-list-width-value": "設定最小與最大寬度(畫素)", "list-width-error-message": "清單寬度必須為大於 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": "泳道高度(畫素)", diff --git a/imports/i18n/data/zh.i18n.json b/imports/i18n/data/zh.i18n.json index 4b61b5878..dd6697cc1 100644 --- a/imports/i18n/data/zh.i18n.json +++ b/imports/i18n/data/zh.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/zu-ZA.i18n.json b/imports/i18n/data/zu-ZA.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/zu-ZA.i18n.json +++ b/imports/i18n/data/zu-ZA.i18n.json @@ -90,6 +90,8 @@ "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)", diff --git a/imports/i18n/data/zu.i18n.json b/imports/i18n/data/zu.i18n.json index e562be9b1..5668699a3 100644 --- a/imports/i18n/data/zu.i18n.json +++ b/imports/i18n/data/zu.i18n.json @@ -90,6 +90,8 @@ "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)", From a862486ec37fcd022619c7e45ad9ca615aa444ed Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 25 Dec 2024 06:43:02 +0200 Subject: [PATCH 227/356] =?UTF-8?q?"Auto=20List=20Width"=20is=20now=20at?= =?UTF-8?q?=20"List=20=E2=98=B0=20=20Set=20Width"=20popup.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to xet7 ! Fixes https://github.com/wekan/wekan/pull/5628 --- client/components/boards/boardHeader.jade | 8 -------- client/components/boards/boardHeader.js | 10 ---------- client/components/lists/listHeader.jade | 5 +++++ client/components/lists/listHeader.js | 13 ++++++++++++- imports/i18n/data/en.i18n.json | 5 +++-- 5 files changed, 20 insertions(+), 21 deletions(-) diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index bcfa23f29..ff6ce11a4 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -23,10 +23,6 @@ template(name="boardHeaderBar") span = currentBoard.stars - a.board-header-btn.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}}") - a.board-header-btn.js-keyboard-shortcuts-toggle( title="{{#if isKeyboardShortcuts}}{{_ 'keyboard-shortcuts-enabled'}}{{else}}{{_ 'keyboard-shortcuts-disabled'}}{{/if}}") i.fa(class="fa-solid fa-keyboard") @@ -75,10 +71,6 @@ template(name="boardHeaderBar") span = currentBoard.stars - a.board-header-btn.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}}") - a.board-header-btn.js-keyboard-shortcuts-toggle( title="{{#if isKeyboardShortcuts}}{{_ 'keyboard-shortcuts-enabled'}}{{else}}{{_ 'keyboard-shortcuts-disabled'}}{{/if}}") i.fa(class="fa-solid fa-keyboard") diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index 30c6457f8..83f693660 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -39,12 +39,6 @@ BlazeComponent.extendComponent({ return user && user.hasStarred(boardId); }, - isAutoWidth() { - const boardId = Utils.getCurrentBoardId(); - const user = ReactiveCache.getCurrentUser(); - return user && user.isAutoWidth(boardId); - }, - isKeyboardShortcuts() { const user = ReactiveCache.getCurrentUser(); return user && user.isKeyboardShortcuts(); @@ -83,10 +77,6 @@ BlazeComponent.extendComponent({ 'click .js-star-board'() { ReactiveCache.getCurrentUser().toggleBoardStar(Session.get('currentBoard')); }, - 'click .js-auto-width-board'() { - dragscroll.reset(); - ReactiveCache.getCurrentUser().toggleAutoWidth(Utils.getCurrentBoardId()); - }, 'click .js-keyboard-shortcuts-toggle'() { ReactiveCache.getCurrentUser().toggleKeyboardShortcuts(); }, diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade index 9686330a6..075b6282d 100644 --- a/client/components/lists/listHeader.jade +++ b/client/components/lists/listHeader.jade @@ -194,6 +194,11 @@ template(name="setListWidthPopup") 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 027261675..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(() => { @@ -155,7 +156,7 @@ Template.listActionPopup.helpers({ isWatching() { return this.findWatcher(Meteor.userId()); - }, + } }); Template.listActionPopup.events({ @@ -377,9 +378,19 @@ BlazeComponent.extendComponent({ 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/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", From 93868fd9051d62452be4e5f853356cb85e03a347 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 25 Dec 2024 06:47:51 +0200 Subject: [PATCH 228/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 833cdb95f..86a1274d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ This release fixes the following bugs: 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. Thanks to above GitHub users for their contributions and translators for their translations. From 7fc364cb639659d403deab55eef9c193a75c3d44 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 25 Dec 2024 06:51:18 +0200 Subject: [PATCH 229/356] Updated translations. --- imports/i18n/data/af.i18n.json | 5 +++-- imports/i18n/data/af_ZA.i18n.json | 5 +++-- imports/i18n/data/ar-DZ.i18n.json | 5 +++-- imports/i18n/data/ar-EG.i18n.json | 5 +++-- imports/i18n/data/ar.i18n.json | 5 +++-- imports/i18n/data/ary.i18n.json | 5 +++-- imports/i18n/data/ast-ES.i18n.json | 5 +++-- imports/i18n/data/az-AZ.i18n.json | 5 +++-- imports/i18n/data/az-LA.i18n.json | 5 +++-- imports/i18n/data/az.i18n.json | 5 +++-- imports/i18n/data/bg.i18n.json | 5 +++-- imports/i18n/data/br.i18n.json | 5 +++-- imports/i18n/data/ca.i18n.json | 5 +++-- imports/i18n/data/ca_ES.i18n.json | 5 +++-- imports/i18n/data/cmn.i18n.json | 5 +++-- imports/i18n/data/cs-CZ.i18n.json | 5 +++-- imports/i18n/data/cs.i18n.json | 5 +++-- imports/i18n/data/cy-GB.i18n.json | 5 +++-- imports/i18n/data/cy.i18n.json | 5 +++-- imports/i18n/data/da.i18n.json | 5 +++-- imports/i18n/data/de-AT.i18n.json | 5 +++-- imports/i18n/data/de-CH.i18n.json | 5 +++-- imports/i18n/data/de.i18n.json | 5 +++-- imports/i18n/data/de_DE.i18n.json | 5 +++-- imports/i18n/data/el-GR.i18n.json | 5 +++-- imports/i18n/data/el.i18n.json | 5 +++-- imports/i18n/data/en-BR.i18n.json | 5 +++-- imports/i18n/data/en-DE.i18n.json | 5 +++-- imports/i18n/data/en-GB.i18n.json | 5 +++-- imports/i18n/data/en-IT.i18n.json | 5 +++-- imports/i18n/data/en-MY.i18n.json | 5 +++-- imports/i18n/data/en-YS.i18n.json | 5 +++-- imports/i18n/data/en_TR.i18n.json | 5 +++-- imports/i18n/data/en_ZA.i18n.json | 5 +++-- imports/i18n/data/eo.i18n.json | 5 +++-- imports/i18n/data/es-AR.i18n.json | 5 +++-- imports/i18n/data/es-CL.i18n.json | 5 +++-- imports/i18n/data/es-LA.i18n.json | 5 +++-- imports/i18n/data/es-MX.i18n.json | 5 +++-- imports/i18n/data/es-PE.i18n.json | 5 +++-- imports/i18n/data/es-PY.i18n.json | 5 +++-- imports/i18n/data/es.i18n.json | 5 +++-- imports/i18n/data/es_CO.i18n.json | 5 +++-- imports/i18n/data/et-EE.i18n.json | 5 +++-- imports/i18n/data/eu.i18n.json | 5 +++-- imports/i18n/data/fa-IR.i18n.json | 5 +++-- imports/i18n/data/fa.i18n.json | 5 +++-- imports/i18n/data/fi.i18n.json | 5 +++-- imports/i18n/data/fr-CH.i18n.json | 5 +++-- imports/i18n/data/fr-FR.i18n.json | 5 +++-- imports/i18n/data/fr.i18n.json | 5 +++-- imports/i18n/data/fy-NL.i18n.json | 5 +++-- imports/i18n/data/fy.i18n.json | 5 +++-- imports/i18n/data/gl-ES.i18n.json | 5 +++-- imports/i18n/data/gl.i18n.json | 5 +++-- imports/i18n/data/gu-IN.i18n.json | 5 +++-- imports/i18n/data/he-IL.i18n.json | 5 +++-- imports/i18n/data/he.i18n.json | 5 +++-- imports/i18n/data/hi-IN.i18n.json | 5 +++-- imports/i18n/data/hi.i18n.json | 5 +++-- imports/i18n/data/hr.i18n.json | 5 +++-- imports/i18n/data/hu.i18n.json | 5 +++-- imports/i18n/data/hy.i18n.json | 5 +++-- imports/i18n/data/id.i18n.json | 5 +++-- imports/i18n/data/ig.i18n.json | 5 +++-- imports/i18n/data/it.i18n.json | 5 +++-- imports/i18n/data/ja-HI.i18n.json | 5 +++-- imports/i18n/data/ja.i18n.json | 5 +++-- imports/i18n/data/ka.i18n.json | 5 +++-- imports/i18n/data/km.i18n.json | 5 +++-- imports/i18n/data/ko-KR.i18n.json | 5 +++-- imports/i18n/data/ko.i18n.json | 5 +++-- imports/i18n/data/lt.i18n.json | 5 +++-- imports/i18n/data/lv.i18n.json | 5 +++-- imports/i18n/data/mk.i18n.json | 5 +++-- imports/i18n/data/mn.i18n.json | 5 +++-- imports/i18n/data/ms-MY.i18n.json | 5 +++-- imports/i18n/data/ms.i18n.json | 5 +++-- imports/i18n/data/nb.i18n.json | 5 +++-- imports/i18n/data/nl-NL.i18n.json | 5 +++-- imports/i18n/data/nl.i18n.json | 5 +++-- imports/i18n/data/oc.i18n.json | 5 +++-- imports/i18n/data/or_IN.i18n.json | 5 +++-- imports/i18n/data/pa.i18n.json | 5 +++-- imports/i18n/data/pl-PL.i18n.json | 5 +++-- imports/i18n/data/pl.i18n.json | 5 +++-- imports/i18n/data/pt-BR.i18n.json | 5 +++-- imports/i18n/data/pt.i18n.json | 5 +++-- imports/i18n/data/pt_PT.i18n.json | 5 +++-- imports/i18n/data/ro-RO.i18n.json | 5 +++-- imports/i18n/data/ro.i18n.json | 5 +++-- imports/i18n/data/ru-UA.i18n.json | 5 +++-- imports/i18n/data/ru.i18n.json | 5 +++-- imports/i18n/data/sk.i18n.json | 5 +++-- imports/i18n/data/sl.i18n.json | 5 +++-- imports/i18n/data/sr.i18n.json | 5 +++-- imports/i18n/data/sv.i18n.json | 5 +++-- imports/i18n/data/sw.i18n.json | 5 +++-- imports/i18n/data/ta.i18n.json | 5 +++-- imports/i18n/data/th.i18n.json | 5 +++-- imports/i18n/data/tk_TM.i18n.json | 5 +++-- imports/i18n/data/tlh.i18n.json | 5 +++-- imports/i18n/data/tr.i18n.json | 5 +++-- imports/i18n/data/ug.i18n.json | 5 +++-- imports/i18n/data/uk-UA.i18n.json | 5 +++-- imports/i18n/data/uk.i18n.json | 5 +++-- imports/i18n/data/uz-AR.i18n.json | 5 +++-- imports/i18n/data/uz-LA.i18n.json | 5 +++-- imports/i18n/data/uz-UZ.i18n.json | 5 +++-- imports/i18n/data/uz.i18n.json | 5 +++-- imports/i18n/data/ve-CC.i18n.json | 5 +++-- imports/i18n/data/ve-PP.i18n.json | 5 +++-- imports/i18n/data/ve.i18n.json | 5 +++-- imports/i18n/data/vi-VN.i18n.json | 5 +++-- imports/i18n/data/vi.i18n.json | 5 +++-- imports/i18n/data/vl-SS.i18n.json | 5 +++-- imports/i18n/data/vo.i18n.json | 5 +++-- imports/i18n/data/wa-RR.i18n.json | 5 +++-- imports/i18n/data/wa.i18n.json | 5 +++-- imports/i18n/data/wo.i18n.json | 5 +++-- imports/i18n/data/xh.i18n.json | 5 +++-- imports/i18n/data/yi.i18n.json | 5 +++-- imports/i18n/data/yo.i18n.json | 5 +++-- imports/i18n/data/yue_CN.i18n.json | 5 +++-- imports/i18n/data/zgh.i18n.json | 5 +++-- imports/i18n/data/zh-CN.i18n.json | 5 +++-- imports/i18n/data/zh-GB.i18n.json | 5 +++-- imports/i18n/data/zh-HK.i18n.json | 5 +++-- imports/i18n/data/zh-Hans.i18n.json | 5 +++-- imports/i18n/data/zh-Hant.i18n.json | 5 +++-- imports/i18n/data/zh-TW.i18n.json | 5 +++-- imports/i18n/data/zh.i18n.json | 5 +++-- imports/i18n/data/zu-ZA.i18n.json | 5 +++-- imports/i18n/data/zu.i18n.json | 5 +++-- 134 files changed, 402 insertions(+), 268 deletions(-) diff --git a/imports/i18n/data/af.i18n.json b/imports/i18n/data/af.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/af.i18n.json +++ b/imports/i18n/data/af.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/af_ZA.i18n.json b/imports/i18n/data/af_ZA.i18n.json index c690b057b..f833b2919 100644 --- a/imports/i18n/data/af_ZA.i18n.json +++ b/imports/i18n/data/af_ZA.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ar-DZ.i18n.json b/imports/i18n/data/ar-DZ.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/ar-DZ.i18n.json +++ b/imports/i18n/data/ar-DZ.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ar-EG.i18n.json b/imports/i18n/data/ar-EG.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/ar-EG.i18n.json +++ b/imports/i18n/data/ar-EG.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index d22e87e3f..85e4093fc 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -266,8 +266,9 @@ "checklists": "قوائم التّدقيق", "click-to-star": "اضغط لإضافة اللوحة للمفضلة.", "click-to-unstar": "اضغط لحذف اللوحة من المفضلة.", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "غلق اللوحة", diff --git a/imports/i18n/data/ary.i18n.json b/imports/i18n/data/ary.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/ary.i18n.json +++ b/imports/i18n/data/ary.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ast-ES.i18n.json b/imports/i18n/data/ast-ES.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/ast-ES.i18n.json +++ b/imports/i18n/data/ast-ES.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/az-AZ.i18n.json b/imports/i18n/data/az-AZ.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/az-AZ.i18n.json +++ b/imports/i18n/data/az-AZ.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/az-LA.i18n.json b/imports/i18n/data/az-LA.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/az-LA.i18n.json +++ b/imports/i18n/data/az-LA.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/az.i18n.json b/imports/i18n/data/az.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/az.i18n.json +++ b/imports/i18n/data/az.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/bg.i18n.json b/imports/i18n/data/bg.i18n.json index a9279e04d..c4e626a61 100644 --- a/imports/i18n/data/bg.i18n.json +++ b/imports/i18n/data/bg.i18n.json @@ -266,8 +266,9 @@ "checklists": "Списъци със задачи", "click-to-star": "Click to star this board.", "click-to-unstar": "Натиснете, за да премахнете това табло от любими.", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "Затвори Таблото", diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index 4e0fba788..c6c90fe27 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ca.i18n.json b/imports/i18n/data/ca.i18n.json index d8d774af6..92d40d58a 100644 --- a/imports/i18n/data/ca.i18n.json +++ b/imports/i18n/data/ca.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ca_ES.i18n.json b/imports/i18n/data/ca_ES.i18n.json index 52efbb61a..e441593b3 100644 --- a/imports/i18n/data/ca_ES.i18n.json +++ b/imports/i18n/data/ca_ES.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/cmn.i18n.json b/imports/i18n/data/cmn.i18n.json index 6f40c1d60..da813e035 100644 --- a/imports/i18n/data/cmn.i18n.json +++ b/imports/i18n/data/cmn.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/cs-CZ.i18n.json b/imports/i18n/data/cs-CZ.i18n.json index 5f14bb551..274b9f33f 100644 --- a/imports/i18n/data/cs-CZ.i18n.json +++ b/imports/i18n/data/cs-CZ.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/cs.i18n.json b/imports/i18n/data/cs.i18n.json index 77718f19c..6a18f2784 100644 --- a/imports/i18n/data/cs.i18n.json +++ b/imports/i18n/data/cs.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/cy-GB.i18n.json b/imports/i18n/data/cy-GB.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/cy-GB.i18n.json +++ b/imports/i18n/data/cy-GB.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/cy.i18n.json b/imports/i18n/data/cy.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/cy.i18n.json +++ b/imports/i18n/data/cy.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/da.i18n.json b/imports/i18n/data/da.i18n.json index 52956e336..988e5f938 100644 --- a/imports/i18n/data/da.i18n.json +++ b/imports/i18n/data/da.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/de-AT.i18n.json b/imports/i18n/data/de-AT.i18n.json index db6726330..2f06ada4c 100644 --- a/imports/i18n/data/de-AT.i18n.json +++ b/imports/i18n/data/de-AT.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/de-CH.i18n.json b/imports/i18n/data/de-CH.i18n.json index f9fce086b..37e87a857 100644 --- a/imports/i18n/data/de-CH.i18n.json +++ b/imports/i18n/data/de-CH.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index c4ee1a6f6..e74d92156 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index 263912d8c..7f1cdccbb 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -266,8 +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": "Klicken, um die automatische Breite der Liste zu aktivieren.", - "click-to-disable-auto-width": "Klicken, um die automatische Breite der Liste zu deaktivieren.", + "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", diff --git a/imports/i18n/data/el-GR.i18n.json b/imports/i18n/data/el-GR.i18n.json index f47149d26..e07fb12a6 100644 --- a/imports/i18n/data/el-GR.i18n.json +++ b/imports/i18n/data/el-GR.i18n.json @@ -266,8 +266,9 @@ "checklists": "Λίστες Ελέγχου - Checklists", "click-to-star": "Κλικ για να προσθέσετε αστεράκι στον πίνακα", "click-to-unstar": "Κλικ για να αφαιρέσετε αστεράκι από τον πίνακα", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "Κλείσιμο Πίνακα", diff --git a/imports/i18n/data/el.i18n.json b/imports/i18n/data/el.i18n.json index 8bccd34dd..4321bd650 100644 --- a/imports/i18n/data/el.i18n.json +++ b/imports/i18n/data/el.i18n.json @@ -266,8 +266,9 @@ "checklists": "Λίστες Ελέγχου - Checklists", "click-to-star": "Κλικ για να προσθέσετε αστεράκι στον πίνακα", "click-to-unstar": "Κλικ για να αφαιρέσετε αστεράκι από τον πίνακα", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "Κλείσιμο Πίνακα", diff --git a/imports/i18n/data/en-BR.i18n.json b/imports/i18n/data/en-BR.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/en-BR.i18n.json +++ b/imports/i18n/data/en-BR.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/en-DE.i18n.json b/imports/i18n/data/en-DE.i18n.json index 77694772c..12c07a73a 100644 --- a/imports/i18n/data/en-DE.i18n.json +++ b/imports/i18n/data/en-DE.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/en-GB.i18n.json b/imports/i18n/data/en-GB.i18n.json index 3a297c537..97b744778 100644 --- a/imports/i18n/data/en-GB.i18n.json +++ b/imports/i18n/data/en-GB.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/en-IT.i18n.json b/imports/i18n/data/en-IT.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/en-IT.i18n.json +++ b/imports/i18n/data/en-IT.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/en-MY.i18n.json b/imports/i18n/data/en-MY.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/en-MY.i18n.json +++ b/imports/i18n/data/en-MY.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/en-YS.i18n.json b/imports/i18n/data/en-YS.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/en-YS.i18n.json +++ b/imports/i18n/data/en-YS.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/en_TR.i18n.json b/imports/i18n/data/en_TR.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/en_TR.i18n.json +++ b/imports/i18n/data/en_TR.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/en_ZA.i18n.json b/imports/i18n/data/en_ZA.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/en_ZA.i18n.json +++ b/imports/i18n/data/en_ZA.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index 92be10ae6..bc9f0e01c 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/es-AR.i18n.json b/imports/i18n/data/es-AR.i18n.json index 5dcccd737..cafd15bf6 100644 --- a/imports/i18n/data/es-AR.i18n.json +++ b/imports/i18n/data/es-AR.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/es-CL.i18n.json b/imports/i18n/data/es-CL.i18n.json index 57eb791fd..12aa3094e 100644 --- a/imports/i18n/data/es-CL.i18n.json +++ b/imports/i18n/data/es-CL.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/es-LA.i18n.json b/imports/i18n/data/es-LA.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/es-LA.i18n.json +++ b/imports/i18n/data/es-LA.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/es-MX.i18n.json b/imports/i18n/data/es-MX.i18n.json index ad811afdf..dd5fa31f3 100644 --- a/imports/i18n/data/es-MX.i18n.json +++ b/imports/i18n/data/es-MX.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/es-PE.i18n.json b/imports/i18n/data/es-PE.i18n.json index fa763cc86..c517a7844 100644 --- a/imports/i18n/data/es-PE.i18n.json +++ b/imports/i18n/data/es-PE.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/es-PY.i18n.json b/imports/i18n/data/es-PY.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/es-PY.i18n.json +++ b/imports/i18n/data/es-PY.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index a1c3b2a43..1b80196de 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/es_CO.i18n.json b/imports/i18n/data/es_CO.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/es_CO.i18n.json +++ b/imports/i18n/data/es_CO.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/et-EE.i18n.json b/imports/i18n/data/et-EE.i18n.json index 8791d83d5..936fa1e6e 100644 --- a/imports/i18n/data/et-EE.i18n.json +++ b/imports/i18n/data/et-EE.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 32d5658cc..93a4c81c5 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -266,8 +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": "Egin klik zerrenda automatikoko zabalera gaitzeko.", - "click-to-disable-auto-width": "Egin klik zerrenda automatikoaren zabalera desgaitzeko.", + "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": "Kopiatu eta itsatsi edo arrastatu eta jaregin", "close": "Itxi", "close-board": "Itxi arbela", diff --git a/imports/i18n/data/fa-IR.i18n.json b/imports/i18n/data/fa-IR.i18n.json index 6ae0dbc98..5143dd6bd 100644 --- a/imports/i18n/data/fa-IR.i18n.json +++ b/imports/i18n/data/fa-IR.i18n.json @@ -266,8 +266,9 @@ "checklists": "چک‌لیست‌ها", "click-to-star": "با کلیک کردن ستاره بدهید", "click-to-unstar": "با کلیک کردن ستاره را کم کنید", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "بستن برد", diff --git a/imports/i18n/data/fa.i18n.json b/imports/i18n/data/fa.i18n.json index 4d48f9c0e..76e35442a 100644 --- a/imports/i18n/data/fa.i18n.json +++ b/imports/i18n/data/fa.i18n.json @@ -266,8 +266,9 @@ "checklists": "چک‌لیست‌ها", "click-to-star": "با کلیک کردن ستاره بدهید", "click-to-unstar": "با کلیک کردن ستاره را کم کنید", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "بستن برد", diff --git a/imports/i18n/data/fi.i18n.json b/imports/i18n/data/fi.i18n.json index e9ee07f9b..0c95a0f55 100644 --- a/imports/i18n/data/fi.i18n.json +++ b/imports/i18n/data/fi.i18n.json @@ -266,8 +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": "Klikkaa ottaaksesi käyttöön automaattinen listan leveys.", - "click-to-disable-auto-width": "Klikkaa poistaaksesi käytöstä automaattinen listan leveys.", + "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", diff --git a/imports/i18n/data/fr-CH.i18n.json b/imports/i18n/data/fr-CH.i18n.json index 11b410deb..1d5d20cf8 100644 --- a/imports/i18n/data/fr-CH.i18n.json +++ b/imports/i18n/data/fr-CH.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/fr-FR.i18n.json b/imports/i18n/data/fr-FR.i18n.json index 744f7b751..49f484b08 100644 --- a/imports/i18n/data/fr-FR.i18n.json +++ b/imports/i18n/data/fr-FR.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index 4cbb5a6b1..c57345a31 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/fy-NL.i18n.json b/imports/i18n/data/fy-NL.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/fy-NL.i18n.json +++ b/imports/i18n/data/fy-NL.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/fy.i18n.json b/imports/i18n/data/fy.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/fy.i18n.json +++ b/imports/i18n/data/fy.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/gl-ES.i18n.json b/imports/i18n/data/gl-ES.i18n.json index 75f5eb4b1..2c680f386 100644 --- a/imports/i18n/data/gl-ES.i18n.json +++ b/imports/i18n/data/gl-ES.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/gl.i18n.json b/imports/i18n/data/gl.i18n.json index 94c2dda12..72c95ad83 100644 --- a/imports/i18n/data/gl.i18n.json +++ b/imports/i18n/data/gl.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/gu-IN.i18n.json b/imports/i18n/data/gu-IN.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/gu-IN.i18n.json +++ b/imports/i18n/data/gu-IN.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/he-IL.i18n.json b/imports/i18n/data/he-IL.i18n.json index 9a1ad0db8..f33ca6dcb 100644 --- a/imports/i18n/data/he-IL.i18n.json +++ b/imports/i18n/data/he-IL.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index 60f5727f8..e843d61dc 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -266,8 +266,9 @@ "checklists": "רשימות", "click-to-star": "יש ללחוץ להוספת הלוח למועדפים.", "click-to-unstar": "יש ללחוץ להסרת הלוח מהמועדפים.", - "click-to-enable-auto-width": "לחיצה תפעיל רוחב רשימה אוטומטי.", - "click-to-disable-auto-width": "לחיצה תשבית רוחב רשימה אוטומטי.", + "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": "סגירת לוח", diff --git a/imports/i18n/data/hi-IN.i18n.json b/imports/i18n/data/hi-IN.i18n.json index 7df4a1316..918010931 100644 --- a/imports/i18n/data/hi-IN.i18n.json +++ b/imports/i18n/data/hi-IN.i18n.json @@ -266,8 +266,9 @@ "checklists": "जांच सूची", "click-to-star": "इस बोर्ड को स्टार करने के लिए क्लिक करें ।", "click-to-unstar": "इस बोर्ड को अनस्टार करने के लिए क्लिक करें।", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "बोर्ड बंद करे", diff --git a/imports/i18n/data/hi.i18n.json b/imports/i18n/data/hi.i18n.json index b6ac06c21..14d0b85a9 100644 --- a/imports/i18n/data/hi.i18n.json +++ b/imports/i18n/data/hi.i18n.json @@ -266,8 +266,9 @@ "checklists": "जांच सूची", "click-to-star": "इस बोर्ड को स्टार करने के लिए क्लिक करें ।", "click-to-unstar": "इस बोर्ड को अनस्टार करने के लिए क्लिक करें।", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "बोर्ड बंद करे", diff --git a/imports/i18n/data/hr.i18n.json b/imports/i18n/data/hr.i18n.json index 09cbf1e34..ed9cf44e1 100644 --- a/imports/i18n/data/hr.i18n.json +++ b/imports/i18n/data/hr.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/hu.i18n.json b/imports/i18n/data/hu.i18n.json index f3aade277..371ba2bee 100644 --- a/imports/i18n/data/hu.i18n.json +++ b/imports/i18n/data/hu.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/hy.i18n.json b/imports/i18n/data/hy.i18n.json index d323e660d..3deb2f347 100644 --- a/imports/i18n/data/hy.i18n.json +++ b/imports/i18n/data/hy.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/id.i18n.json b/imports/i18n/data/id.i18n.json index a46c88790..95cc3cd56 100644 --- a/imports/i18n/data/id.i18n.json +++ b/imports/i18n/data/id.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ig.i18n.json b/imports/i18n/data/ig.i18n.json index df849c867..69bc4fb0a 100644 --- a/imports/i18n/data/ig.i18n.json +++ b/imports/i18n/data/ig.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/it.i18n.json b/imports/i18n/data/it.i18n.json index d031c7e14..7e51ca735 100644 --- a/imports/i18n/data/it.i18n.json +++ b/imports/i18n/data/it.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index f0e22a15e..604b112d7 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index 4cadc4581..8e25593ef 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -266,8 +266,9 @@ "checklists": "チェックリスト", "click-to-star": "ボードにスターをつける", "click-to-unstar": "ボードからスターを外す", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "ボードを閉じる", diff --git a/imports/i18n/data/ka.i18n.json b/imports/i18n/data/ka.i18n.json index 7144929cb..581dbb545 100644 --- a/imports/i18n/data/ka.i18n.json +++ b/imports/i18n/data/ka.i18n.json @@ -266,8 +266,9 @@ "checklists": "კატალოგი", "click-to-star": "დააჭირეთ დაფის ვარსკვლავით მოსანიშნად", "click-to-unstar": "დააკლიკეთ დაფიდან ვარსკვლავის მოსახსნელად.", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "დაფის დახურვა", diff --git a/imports/i18n/data/km.i18n.json b/imports/i18n/data/km.i18n.json index 5fde659ed..44e609e15 100644 --- a/imports/i18n/data/km.i18n.json +++ b/imports/i18n/data/km.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ko-KR.i18n.json b/imports/i18n/data/ko-KR.i18n.json index 9c61d097a..051caaeff 100644 --- a/imports/i18n/data/ko-KR.i18n.json +++ b/imports/i18n/data/ko-KR.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ko.i18n.json b/imports/i18n/data/ko.i18n.json index 886390152..7eecf2b77 100644 --- a/imports/i18n/data/ko.i18n.json +++ b/imports/i18n/data/ko.i18n.json @@ -266,8 +266,9 @@ "checklists": "체크리스트", "click-to-star": "보드에 별 추가.", "click-to-unstar": "보드에 별 삭제.", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "보드 닫기", diff --git a/imports/i18n/data/lt.i18n.json b/imports/i18n/data/lt.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/lt.i18n.json +++ b/imports/i18n/data/lt.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/lv.i18n.json b/imports/i18n/data/lv.i18n.json index 299187397..1cc829ce3 100644 --- a/imports/i18n/data/lv.i18n.json +++ b/imports/i18n/data/lv.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/mk.i18n.json b/imports/i18n/data/mk.i18n.json index 2dd91d419..7b7467bd3 100644 --- a/imports/i18n/data/mk.i18n.json +++ b/imports/i18n/data/mk.i18n.json @@ -266,8 +266,9 @@ "checklists": "Списъци със задачи", "click-to-star": "Click to star this board.", "click-to-unstar": "Натиснете, за да премахнете това табло от любими.", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "Затвори Табла", diff --git a/imports/i18n/data/mn.i18n.json b/imports/i18n/data/mn.i18n.json index d71141ee4..1954eb7bf 100644 --- a/imports/i18n/data/mn.i18n.json +++ b/imports/i18n/data/mn.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/ms-MY.i18n.json +++ b/imports/i18n/data/ms-MY.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ms.i18n.json b/imports/i18n/data/ms.i18n.json index cd9abd59e..82d124749 100644 --- a/imports/i18n/data/ms.i18n.json +++ b/imports/i18n/data/ms.i18n.json @@ -266,8 +266,9 @@ "checklists": "Senarai semak", "click-to-star": "Klik untuk beri bintang", "click-to-unstar": "Klik untuk hapus bintang", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/nb.i18n.json b/imports/i18n/data/nb.i18n.json index 39a00fc07..8d082282e 100644 --- a/imports/i18n/data/nb.i18n.json +++ b/imports/i18n/data/nb.i18n.json @@ -266,8 +266,9 @@ "checklists": "Sjekklister", "click-to-star": "Favorittmerke Tavlen", "click-to-unstar": "Fjern favorittmerke Tavlen", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/nl-NL.i18n.json b/imports/i18n/data/nl-NL.i18n.json index 5a318e3f7..8f540d02c 100644 --- a/imports/i18n/data/nl-NL.i18n.json +++ b/imports/i18n/data/nl-NL.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 3070d8318..729f4c4a2 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -266,8 +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": "Klik om automatische lijstbreedte in te schakelen.", - "click-to-disable-auto-width": "Klik om automatische lijstbreedte uit te schakelen.", + "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": "Afbeelding Kopiëren & Plakken", "close": "Sluiten", "close-board": "Sluit bord", diff --git a/imports/i18n/data/oc.i18n.json b/imports/i18n/data/oc.i18n.json index dce162c78..722140824 100644 --- a/imports/i18n/data/oc.i18n.json +++ b/imports/i18n/data/oc.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/or_IN.i18n.json b/imports/i18n/data/or_IN.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/or_IN.i18n.json +++ b/imports/i18n/data/or_IN.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/pa.i18n.json b/imports/i18n/data/pa.i18n.json index 2cc964cba..95e0c77b1 100644 --- a/imports/i18n/data/pa.i18n.json +++ b/imports/i18n/data/pa.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/pl-PL.i18n.json b/imports/i18n/data/pl-PL.i18n.json index 5694c7374..a4310f258 100644 --- a/imports/i18n/data/pl-PL.i18n.json +++ b/imports/i18n/data/pl-PL.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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ę", diff --git a/imports/i18n/data/pl.i18n.json b/imports/i18n/data/pl.i18n.json index c20d77e10..d8ad2b117 100644 --- a/imports/i18n/data/pl.i18n.json +++ b/imports/i18n/data/pl.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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ę", diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index cb0c42887..280245250 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -266,8 +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": "Clique para habilitar a largura automática da lista", - "click-to-disable-auto-width": "Clique para desabilitar a largura automática da lista", + "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 Quadro", diff --git a/imports/i18n/data/pt.i18n.json b/imports/i18n/data/pt.i18n.json index cad0ca756..0ad80a1c7 100644 --- a/imports/i18n/data/pt.i18n.json +++ b/imports/i18n/data/pt.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/pt_PT.i18n.json b/imports/i18n/data/pt_PT.i18n.json index 5cb84ad71..2378aec3d 100644 --- a/imports/i18n/data/pt_PT.i18n.json +++ b/imports/i18n/data/pt_PT.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ro-RO.i18n.json b/imports/i18n/data/ro-RO.i18n.json index 0f0d96b95..3e47933f1 100644 --- a/imports/i18n/data/ro-RO.i18n.json +++ b/imports/i18n/data/ro-RO.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ro.i18n.json b/imports/i18n/data/ro.i18n.json index 44ef7d847..17a734e76 100644 --- a/imports/i18n/data/ro.i18n.json +++ b/imports/i18n/data/ro.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ru-UA.i18n.json b/imports/i18n/data/ru-UA.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/ru-UA.i18n.json +++ b/imports/i18n/data/ru-UA.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ru.i18n.json b/imports/i18n/data/ru.i18n.json index 83047d353..6d21f2eff 100644 --- a/imports/i18n/data/ru.i18n.json +++ b/imports/i18n/data/ru.i18n.json @@ -266,8 +266,9 @@ "checklists": "Контрольные списки", "click-to-star": "Добавить в «Избранное»", "click-to-unstar": "Удалить из «Избранного»", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "Закрыть доску", diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index 50a8b367e..e22f21837 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -266,8 +266,9 @@ "checklists": "Checklists", "click-to-star": "Pridať hviezdičku na nástenku", "click-to-unstar": "Odobrať hviezdičku z nástenky", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/sl.i18n.json b/imports/i18n/data/sl.i18n.json index 1293e5f31..4465caa36 100644 --- a/imports/i18n/data/sl.i18n.json +++ b/imports/i18n/data/sl.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/sr.i18n.json b/imports/i18n/data/sr.i18n.json index f56815e94..5f2e3082f 100644 --- a/imports/i18n/data/sr.i18n.json +++ b/imports/i18n/data/sr.i18n.json @@ -266,8 +266,9 @@ "checklists": "Спискови", "click-to-star": "Притисни да означиш звездицом ову књигу пословања.", "click-to-unstar": "Притисни да уклониш звездицу са ове пословне књиге.", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "Заклопи књигу пословања", diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index 799ee7e55..2617bd6b5 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -266,8 +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": "Klicka för att aktivera automatisk listbredd", - "click-to-disable-auto-width": "Klicka för att inaktivera automatisk listbredd", + "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": "Urklipp eller dra & släpp", "close": "Stäng", "close-board": "Stäng tavla", diff --git a/imports/i18n/data/sw.i18n.json b/imports/i18n/data/sw.i18n.json index 47ee17b2f..379bebba9 100644 --- a/imports/i18n/data/sw.i18n.json +++ b/imports/i18n/data/sw.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ta.i18n.json b/imports/i18n/data/ta.i18n.json index f9e230ac8..f6860f8d9 100644 --- a/imports/i18n/data/ta.i18n.json +++ b/imports/i18n/data/ta.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/th.i18n.json b/imports/i18n/data/th.i18n.json index 1baf51d4d..1535d7484 100644 --- a/imports/i18n/data/th.i18n.json +++ b/imports/i18n/data/th.i18n.json @@ -266,8 +266,9 @@ "checklists": "รายการตรวจสอบ", "click-to-star": "คลิกดาวบอร์ดนี้", "click-to-unstar": "คลิกยกเลิกดาวบอร์ดนี้", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "ปิดบอร์ด", diff --git a/imports/i18n/data/tk_TM.i18n.json b/imports/i18n/data/tk_TM.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/tk_TM.i18n.json +++ b/imports/i18n/data/tk_TM.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/tlh.i18n.json b/imports/i18n/data/tlh.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/tlh.i18n.json +++ b/imports/i18n/data/tlh.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index a2c8c9d5b..bf158c8d8 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ug.i18n.json b/imports/i18n/data/ug.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/ug.i18n.json +++ b/imports/i18n/data/ug.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index b693a4147..6ad9abe46 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -266,8 +266,9 @@ "checklists": "Контрольні списки", "click-to-star": "Натисніть, щоб відзначити цю дошку зірочкою.", "click-to-unstar": "Натисніть, щоб видалити зірочку з цієї дошки.", - "click-to-enable-auto-width": "Натисніть, щоб увімкнути автоматичну ширину списку.", - "click-to-disable-auto-width": "Натисніть, щоб вимкнути автоматичну ширину списку.", + "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": "Закрити дошку", diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index 009cad8ff..d346f6a7f 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -266,8 +266,9 @@ "checklists": "Контрольні списки", "click-to-star": "Натисніть, щоб відзначити цю дошку зірочкою.", "click-to-unstar": "Натисніть, щоб видалити зірочку з цієї дошки.", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "Закрити дошку", diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz-AR.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/uz-AR.i18n.json +++ b/imports/i18n/data/uz-AR.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/uz-LA.i18n.json b/imports/i18n/data/uz-LA.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/uz-LA.i18n.json +++ b/imports/i18n/data/uz-LA.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/uz-UZ.i18n.json b/imports/i18n/data/uz-UZ.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/uz-UZ.i18n.json +++ b/imports/i18n/data/uz-UZ.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/uz.i18n.json b/imports/i18n/data/uz.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/uz.i18n.json +++ b/imports/i18n/data/uz.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ve-CC.i18n.json b/imports/i18n/data/ve-CC.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/ve-CC.i18n.json +++ b/imports/i18n/data/ve-CC.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ve-PP.i18n.json b/imports/i18n/data/ve-PP.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/ve-PP.i18n.json +++ b/imports/i18n/data/ve-PP.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/ve.i18n.json b/imports/i18n/data/ve.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/ve.i18n.json +++ b/imports/i18n/data/ve.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/vi-VN.i18n.json b/imports/i18n/data/vi-VN.i18n.json index 531b9bf80..c0330a58d 100644 --- a/imports/i18n/data/vi-VN.i18n.json +++ b/imports/i18n/data/vi-VN.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/vi.i18n.json b/imports/i18n/data/vi.i18n.json index ebf18930c..74eeeb6cd 100644 --- a/imports/i18n/data/vi.i18n.json +++ b/imports/i18n/data/vi.i18n.json @@ -266,8 +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": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/vl-SS.i18n.json b/imports/i18n/data/vl-SS.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/vl-SS.i18n.json +++ b/imports/i18n/data/vl-SS.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/vo.i18n.json b/imports/i18n/data/vo.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/vo.i18n.json +++ b/imports/i18n/data/vo.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/wa-RR.i18n.json b/imports/i18n/data/wa-RR.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/wa-RR.i18n.json +++ b/imports/i18n/data/wa-RR.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/wa.i18n.json b/imports/i18n/data/wa.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/wa.i18n.json +++ b/imports/i18n/data/wa.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/wo.i18n.json b/imports/i18n/data/wo.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/wo.i18n.json +++ b/imports/i18n/data/wo.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/xh.i18n.json b/imports/i18n/data/xh.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/xh.i18n.json +++ b/imports/i18n/data/xh.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/yi.i18n.json b/imports/i18n/data/yi.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/yi.i18n.json +++ b/imports/i18n/data/yi.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/yo.i18n.json b/imports/i18n/data/yo.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/yo.i18n.json +++ b/imports/i18n/data/yo.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/yue_CN.i18n.json b/imports/i18n/data/yue_CN.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/yue_CN.i18n.json +++ b/imports/i18n/data/yue_CN.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/zgh.i18n.json b/imports/i18n/data/zgh.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/zgh.i18n.json +++ b/imports/i18n/data/zgh.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/zh-CN.i18n.json b/imports/i18n/data/zh-CN.i18n.json index c3ebcbd7d..0fe6fd93e 100644 --- a/imports/i18n/data/zh-CN.i18n.json +++ b/imports/i18n/data/zh-CN.i18n.json @@ -266,8 +266,9 @@ "checklists": "清单", "click-to-star": "点此来标记该看板", "click-to-unstar": "点此来去除该看板的标记", - "click-to-enable-auto-width": "Click to enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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": "关闭看板", diff --git a/imports/i18n/data/zh-GB.i18n.json b/imports/i18n/data/zh-GB.i18n.json index d3f530cf1..b90d65537 100644 --- a/imports/i18n/data/zh-GB.i18n.json +++ b/imports/i18n/data/zh-GB.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/zh-HK.i18n.json b/imports/i18n/data/zh-HK.i18n.json index 91123c7fc..348d8ede5 100644 --- a/imports/i18n/data/zh-HK.i18n.json +++ b/imports/i18n/data/zh-HK.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/zh-Hans.i18n.json b/imports/i18n/data/zh-Hans.i18n.json index 1b1085561..09710cf43 100644 --- a/imports/i18n/data/zh-Hans.i18n.json +++ b/imports/i18n/data/zh-Hans.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/zh-Hant.i18n.json b/imports/i18n/data/zh-Hant.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/zh-Hant.i18n.json +++ b/imports/i18n/data/zh-Hant.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index b8910714f..bdde29057 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -266,8 +266,9 @@ "checklists": "待辦清單", "click-to-star": "將看板加入我的最愛。", "click-to-unstar": "從我的最愛移除此看板。", - "click-to-enable-auto-width": "點選以啟用自動清單寬度。", - "click-to-disable-auto-width": "點選以停用自動清單寬度。", + "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": "關閉看板", diff --git a/imports/i18n/data/zh.i18n.json b/imports/i18n/data/zh.i18n.json index dd6697cc1..84d92d844 100644 --- a/imports/i18n/data/zh.i18n.json +++ b/imports/i18n/data/zh.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/zu-ZA.i18n.json b/imports/i18n/data/zu-ZA.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/zu-ZA.i18n.json +++ b/imports/i18n/data/zu-ZA.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", diff --git a/imports/i18n/data/zu.i18n.json b/imports/i18n/data/zu.i18n.json index 5668699a3..3f09fdb3e 100644 --- a/imports/i18n/data/zu.i18n.json +++ b/imports/i18n/data/zu.i18n.json @@ -266,8 +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 enable auto list width.", - "click-to-disable-auto-width": "Click to disable auto list width.", + "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", From 275ac445d0cd6f817dd2281aacc27ca7d30b17eb Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 25 Dec 2024 07:14:22 +0200 Subject: [PATCH 230/356] Keyboard Shortcuts Enable/Disable is now at Right Sidebar, where already was list of Keyboard Shortcuts. Thanks to xet7 ! Fixes https://github.com/wekan/wekan/pull/5628 --- client/components/boards/boardHeader.jade | 5 ----- client/components/boards/boardHeader.js | 8 -------- client/components/sidebar/sidebar.css | 6 +++++- client/components/sidebar/sidebar.jade | 5 ++++- client/components/sidebar/sidebar.js | 8 ++++++++ 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index ff6ce11a4..93da227b2 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -23,11 +23,6 @@ template(name="boardHeaderBar") span = currentBoard.stars - a.board-header-btn.js-keyboard-shortcuts-toggle( - title="{{#if isKeyboardShortcuts}}{{_ 'keyboard-shortcuts-enabled'}}{{else}}{{_ 'keyboard-shortcuts-disabled'}}{{/if}}") - i.fa(class="fa-solid fa-keyboard") - i.fa(class="fa-solid fa-{{#if isKeyboardShortcuts}}check-square-o{{else}}ban{{/if}}") - a.board-header-btn( class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}" title="{{_ currentBoard.permission}}") diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index 83f693660..01859ead5 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -39,11 +39,6 @@ BlazeComponent.extendComponent({ return user && user.hasStarred(boardId); }, - isKeyboardShortcuts() { - const user = ReactiveCache.getCurrentUser(); - return user && user.isKeyboardShortcuts(); - }, - // Only show the star counter if the number of star is greater than 2 showStarCounter() { const currentBoard = Utils.getCurrentBoard(); @@ -77,9 +72,6 @@ BlazeComponent.extendComponent({ 'click .js-star-board'() { ReactiveCache.getCurrentUser().toggleBoardStar(Session.get('currentBoard')); }, - 'click .js-keyboard-shortcuts-toggle'() { - ReactiveCache.getCurrentUser().toggleKeyboardShortcuts(); - }, 'click .js-open-board-menu': Popup.open('boardMenu'), 'click .js-change-visibility': Popup.open('boardChangeVisibility'), 'click .js-watch-board': Popup.open('boardChangeWatch'), diff --git a/client/components/sidebar/sidebar.css b/client/components/sidebar/sidebar.css index 769be3a95..9db528cf2 100644 --- a/client/components/sidebar/sidebar.css +++ b/client/components/sidebar/sidebar.css @@ -104,10 +104,14 @@ } .sidebar .sidebar-shortcuts { 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: 20px; +} .board-sidebar { display: none; width: 30vw; diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 65c002a47..59548713c 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -6,9 +6,12 @@ template(name="sidebar") // i.fa.fa-navicon .sidebar-actions .sidebar-shortcuts - a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-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 diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js index f7e8f2b2b..e9329fc27 100644 --- a/client/components/sidebar/sidebar.js +++ b/client/components/sidebar/sidebar.js @@ -105,6 +105,11 @@ BlazeComponent.extendComponent({ else return `${TAPi18n.__('sidebar-open')}`; }, + isKeyboardShortcuts() { + const user = ReactiveCache.getCurrentUser(); + return user && user.isKeyboardShortcuts(); + }, + events() { return [ { @@ -126,6 +131,9 @@ BlazeComponent.extendComponent({ 'click .js-shortcuts'() { FlowRouter.go('shortcuts'); }, + 'click .js-keyboard-shortcuts-toggle'() { + ReactiveCache.getCurrentUser().toggleKeyboardShortcuts(); + }, 'click .js-close-sidebar'() { Sidebar.toggle() }, From 5d145d0dd1a2fb394e55285803dc52e82a81aac0 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 25 Dec 2024 07:17:29 +0200 Subject: [PATCH 231/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86a1274d3..75792df18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ This release fixes the following bugs: 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. From 8ff11ccc887a1d52c83c63abab00762545eeeaca Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 25 Dec 2024 07:25:21 +0200 Subject: [PATCH 232/356] v7.74 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 75792df18..ffad5273c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.74 2024-12-25 WeKan ® release This release fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 948d52f0e..0790381b4 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.73.0" +appVersion: "v7.74.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index a0bfa57a2..c386d3412 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.73-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.73/wekan-7.73-amd64-windows.zip) +1. [wekan-7.74-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.74/wekan-7.74-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.73-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.74-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index e941eda26..932168f0e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.73.0", + "version": "v7.74.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 5dbc3530b..52ae92eb7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.73.0", + "version": "v7.74.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 5a76484f4..8bd957a69 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.73 + Wekan REST API v7.74 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                • - Wekan REST API v7.73 + Wekan REST API v7.74
                                • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                  -

                                  Wekan REST API v7.73

                                  +

                                  Wekan REST API v7.74

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

                                  diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 58a0426f7..d1631eeb4 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.73 + version: v7.74 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 77cd967a6..3b6929af1 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 = 773, + appVersion = 774, # Increment this for every release. - appMarketingVersion = (defaultText = "7.73.0~2024-12-24"), + appMarketingVersion = (defaultText = "7.74.0~2024-12-25"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 08cbe592d..b09e63999 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.73' +version: '7.74' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.73/wekan-7.73-amd64.zip - unzip wekan-7.73-amd64.zip - rm wekan-7.73-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.74/wekan-7.74-amd64.zip + unzip wekan-7.74-amd64.zip + rm wekan-7.74-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From f6a3a04dba5b29a6d574ebdb60570e0cb3885d73 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 25 Dec 2024 20:40:37 +0200 Subject: [PATCH 233/356] Updated translations. --- imports/i18n/data/he.i18n.json | 10 +++++----- imports/i18n/data/ja-HI.i18n.json | 30 +++++++++++++++--------------- imports/i18n/data/ja.i18n.json | 30 +++++++++++++++--------------- imports/i18n/data/nl.i18n.json | 16 ++++++++-------- imports/i18n/data/uk-UA.i18n.json | 10 +++++----- 5 files changed, 48 insertions(+), 48 deletions(-) diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index e843d61dc..4d5eb6e41 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -90,8 +90,8 @@ "set-list-width": "הגדרת רוחבים", "set-list-width-value": "הגדרת רוחבים מזעריים ומרביים (פיקסלים)", "list-width-error-message": "רשימת הרוחבים חייבים להיות מספרים שלמים מעל 100", - "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", - "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "keyboard-shortcuts-enabled": "קיצורי מקלדת פעילים. לחיצה תשבית אותם.", + "keyboard-shortcuts-disabled": "קיצורי מקלדת מושבתים. לחיצה תפעיל אותם.", "setSwimlaneHeightPopup-title": "הגדרת גובה מסלול", "set-swimlane-height": "הגדרת גובה מסלול", "set-swimlane-height-value": "גובה מסלול (פיקסלים)", @@ -266,9 +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", + "click-to-enable-auto-width": "רוחב רשימה אוטומטי מושבת. לחיצה תפעיל אותו.", + "click-to-disable-auto-width": "רוחב רשימה אוטומטי מופעל. לחיצה תשבית אותו.", + "auto-list-width": "רוחב רשימה אוטומטי", "clipboard": "לוח גזירים או גרירה ושחרור", "close": "סגירה", "close-board": "סגירת לוח", diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index 604b112d7..49498e13f 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -86,12 +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 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.", + "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": "スイムレーンの高さ(ピクセル)", @@ -266,9 +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", + "click-to-enable-auto-width": "リスト幅自動調整が無効です。クリックすると有効になります。", + "click-to-disable-auto-width": "リスト幅自動調整が有効です。クリックすると無効になります。", + "auto-list-width": "リスト幅自動調整", "clipboard": "Clipboard or drag & drop", "close": "Close", "close-board": "Close Board", @@ -579,7 +579,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-add-self": "現在のカードに自分を追加", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -1261,9 +1261,9 @@ "uncollapse": "展開", "hideCheckedChecklistItems": "チェック済みチェックリスト項目を非表示", "hideAllChecklistItems": "すべてのチェックリスト項目を非表示", - "support": "Support", - "supportPopup-title": "Support", - "accessibility-page-enabled": "Accessibility page enabled", - "accessibility-title": "Accessibility topic", - "accessibility-content": "Accessibility content" + "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 8e25593ef..ee0077109 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -86,12 +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 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.", + "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": "スイムレーンの高さ(ピクセル)", @@ -266,9 +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", + "click-to-enable-auto-width": "リスト幅自動調整が無効です。クリックすると有効になります。", + "click-to-disable-auto-width": "リスト幅自動調整が有効です。クリックすると無効になります。", + "auto-list-width": "リスト幅自動調整", "clipboard": "クリップボードもしくはドラッグ&ドロップ", "close": "閉じる", "close-board": "ボードを閉じる", @@ -579,7 +579,7 @@ "select-board": "ボードを選択", "set-wip-limit-value": "このリスト中のタスクの最大数を設定", "setWipLimitPopup-title": "仕掛中制限設定", - "shortcut-add-self": "Add yourself to current card", + "shortcut-add-self": "現在のカードに自分を追加", "shortcut-assign-self": "自分をこのカードに割り当てる", "shortcut-autocomplete-emoji": "絵文字の補完", "shortcut-autocomplete-members": "メンバーの補完", @@ -1261,9 +1261,9 @@ "uncollapse": "展開", "hideCheckedChecklistItems": "チェック済みチェックリスト項目を非表示", "hideAllChecklistItems": "すべてのチェックリスト項目を非表示", - "support": "Support", - "supportPopup-title": "Support", - "accessibility-page-enabled": "Accessibility page enabled", - "accessibility-title": "Accessibility topic", - "accessibility-content": "Accessibility content" + "support": "サポート", + "supportPopup-title": "サポート", + "accessibility-page-enabled": "アクセシビリティページが有効", + "accessibility-title": "アクセシビリティトピック", + "accessibility-content": "アクセシビリティコンテンツ" } diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 729f4c4a2..1509f7b27 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -90,8 +90,8 @@ "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": "Keyboard shortcuts enabled. Click to disable.", - "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "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)", @@ -266,9 +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", + "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", @@ -1263,7 +1263,7 @@ "hideAllChecklistItems": "Verberg alle checklist items", "support": "Ondersteuning", "supportPopup-title": "Ondersteuning", - "accessibility-page-enabled": "Accessibility page enabled", - "accessibility-title": "Accessibility topic", - "accessibility-content": "Accessibility content" + "accessibility-page-enabled": "Toegankelijkheidspagina ingeschakeld", + "accessibility-title": "Toegankelijkheid onderwerp", + "accessibility-content": "Toegankelijkheid inhoud" } diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index 6ad9abe46..ab10ba554 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -90,8 +90,8 @@ "set-list-width": "Встановити ширини", "set-list-width-value": "Встановити мін. та макс. ширину списку (у пікселях)", "list-width-error-message": "Ширина списку має бути цілими числами, більшими за 100", - "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", - "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "keyboard-shortcuts-enabled": "Комбінації клавіш увімкнено. Натисніть, щоб вимкнути.", + "keyboard-shortcuts-disabled": "Комбінації клавіш вимкнено. Натисніть, щоб увімкнути.", "setSwimlaneHeightPopup-title": "Встановити довжину доріжки", "set-swimlane-height": "Встановити довжину доріжки", "set-swimlane-height-value": "Висота доріжки (у пікселях)", @@ -266,9 +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", + "click-to-enable-auto-width": "Автоматична ширина списку вимкнена. Натисніть, щоб увімкнути.", + "click-to-disable-auto-width": "Увімкнено автоматичну ширину списку. Натисніть, щоб вимкнути.", + "auto-list-width": "Автоматична ширина списку", "clipboard": "Буфер обміну або перетягнути і відпустити", "close": "Закрити", "close-board": "Закрити дошку", From 989c73f1f108d5af86848e5da3ef44a8620e27f9 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 29 Dec 2024 16:56:17 +0200 Subject: [PATCH 234/356] Updated translations. --- imports/i18n/data/pt-BR.i18n.json | 18 +++++++++--------- imports/i18n/data/sv.i18n.json | 10 +++++----- imports/i18n/data/zh-TW.i18n.json | 10 +++++----- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index 280245250..b8663a8da 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -89,9 +89,9 @@ "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": "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.", + "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)", @@ -266,9 +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": "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", + "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", @@ -1263,7 +1263,7 @@ "hideAllChecklistItems": "Esconder todos os itens da lista de verificação", "support": "Suporte", "supportPopup-title": "Suporte", - "accessibility-page-enabled": "Accessibility page enabled", - "accessibility-title": "Accessibility topic", - "accessibility-content": "Accessibility content" + "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/sv.i18n.json b/imports/i18n/data/sv.i18n.json index 2617bd6b5..bf0afac5b 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -90,8 +90,8 @@ "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": "Keyboard shortcuts enabled. Click to disable.", - "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "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)", @@ -266,9 +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": "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", + "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", diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index bdde29057..7e18fd2c4 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -90,8 +90,8 @@ "set-list-width": "設定寬度", "set-list-width-value": "設定最小與最大寬度(畫素)", "list-width-error-message": "清單寬度必須為大於 100 的整數", - "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", - "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "keyboard-shortcuts-enabled": "已啟用鍵盤快捷鍵。點選以停用。", + "keyboard-shortcuts-disabled": "已停用鍵盤快捷鍵。點選以啟用。", "setSwimlaneHeightPopup-title": "設定泳道高度", "set-swimlane-height": "設定泳道高度", "set-swimlane-height-value": "泳道高度(畫素)", @@ -266,9 +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", + "click-to-enable-auto-width": "已停用自動列表寬度。點選以啟用。", + "click-to-disable-auto-width": "已啟用自動列表寬度。點選以停用。", + "auto-list-width": "自動列表寬度", "clipboard": "剪貼簿貼上或者拖曳檔案", "close": "關閉", "close-board": "關閉看板", From 8aeed8b03330fd9836e148460350e56192e0c3f8 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sun, 29 Dec 2024 22:12:45 +0200 Subject: [PATCH 235/356] Impove margins around shortcuts toggle --- client/components/sidebar/sidebar.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/sidebar/sidebar.css b/client/components/sidebar/sidebar.css index 9db528cf2..7877be8e8 100644 --- a/client/components/sidebar/sidebar.css +++ b/client/components/sidebar/sidebar.css @@ -110,7 +110,7 @@ } .sidebar .sidebar-shortcuts .sidebar-btn { margin-left: 3px; - margin-right: 20px; + margin-right: 3px; } .board-sidebar { display: none; From ad0e86d725244e934dfcba040e5d813a40538a8e Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sun, 29 Dec 2024 22:14:55 +0200 Subject: [PATCH 236/356] Remove keyboard shortcut toggle from board header --- client/components/boards/boardHeader.jade | 5 ----- 1 file changed, 5 deletions(-) diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index 93da227b2..06cb0d549 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -66,11 +66,6 @@ template(name="boardHeaderBar") span = currentBoard.stars - a.board-header-btn.js-keyboard-shortcuts-toggle( - title="{{#if isKeyboardShortcuts}}{{_ 'keyboard-shortcuts-enabled'}}{{else}}{{_ 'keyboard-shortcuts-disabled'}}{{/if}}") - i.fa(class="fa-solid fa-keyboard") - i.fa(class="fa-solid fa-{{#if isKeyboardShortcuts}}check-square-o{{else}}ban{{/if}}") - a.board-header-btn( class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}" title="{{_ currentBoard.permission}}") From 028b8b606aa1df97363d471885b4bb8774866613 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 29 Dec 2024 22:19:47 +0200 Subject: [PATCH 237/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ffad5273c..097e1a555 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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. + +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: From 407d018067a5398f0c8d50519096b921d744be68 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 29 Dec 2024 22:38:19 +0200 Subject: [PATCH 238/356] Fix Cannot save Layout settings. Thanks to tensor5g and xet7 ! Fixes #5630 --- client/components/settings/settingBody.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js index 616600b5b..be8322af3 100644 --- a/client/components/settings/settingBody.js +++ b/client/components/settings/settingBody.js @@ -242,6 +242,7 @@ 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() @@ -249,6 +250,7 @@ BlazeComponent.extendComponent({ const accessibilityContent = $('#accessibility-content') .val() .trim(); +*/ const spinnerName = $('#spinnerName').val(); try { @@ -272,11 +274,13 @@ BlazeComponent.extendComponent({ oidcBtnText, mailDomainName, legalNotice, + }, + }); +/* accessibilityPageEnabled, accessibilityTitle, accessibilityContent, - }, - }); +*/ } catch (e) { return; } finally { From 9a761d2a771053cdb4cb72021dabc6e4c218b674 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 29 Dec 2024 22:40:22 +0200 Subject: [PATCH 239/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 097e1a555..e329401b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ 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. From d51e8d1d1dbf74cdd6bf51a6713c9712161d1aa9 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Sun, 29 Dec 2024 22:54:32 +0200 Subject: [PATCH 240/356] Move swimlane creation button to board header when using swimlane view mode --- client/components/boards/boardColors.css | 8 ---- client/components/boards/boardHeader.jade | 21 ++++++++ client/components/boards/boardHeader.js | 38 +++++++++++++++ .../components/swimlanes/swimlaneHeader.jade | 14 ------ client/components/swimlanes/swimlaneHeader.js | 48 +------------------ client/components/swimlanes/swimlanes.css | 5 -- 6 files changed, 60 insertions(+), 74 deletions(-) diff --git a/client/components/boards/boardColors.css b/client/components/boards/boardColors.css index cecf559f0..61335d2e8 100644 --- a/client/components/boards/boardColors.css +++ b/client/components/boards/boardColors.css @@ -2181,9 +2181,6 @@ THEME - Modern Dark padding: 6px; font-size: 16px; } -.board-color-moderndark .swimlane .swimlane-header-wrap .swimlane-header-plus-icon { - font-size: 16px; -} .board-color-moderndark .swimlane { background: #2a2a2a; line-height: 18px; @@ -3395,11 +3392,6 @@ THEME - Clean Light 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; diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index 93da227b2..fce2913ed 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -16,6 +16,10 @@ template(name="boardHeaderBar") 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 $eq boardView 'board-view-swimlanes' + a.board-header-btn.js-open-add-swimlane-menu(title="{{_ 'add-swimlane'}}") + i.fa.fa-plus + 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'}}") i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}") @@ -59,6 +63,10 @@ template(name="boardHeaderBar") 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 $eq boardView 'board-view-swimlanes' + a.board-header-btn.js-open-add-swimlane-menu(title="{{_ 'add-swimlane'}}") + i.fa.fa-plus + 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'}}") i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}") @@ -295,3 +303,16 @@ template(name="cardsSortPopup") li a.js-sort-created-asc {{_ 'created-at-oldest-first'}} + +template(name="swimlaneAddPopup") + unless currentUser.isCommentOnly + form + input.swimlane-name-input.full-line(type="text" placeholder="{{_ 'add-swimlane'}}" + autocomplete="off" autofocus) + .edit-controls.clearfix + button.primary.confirm(type="submit") {{_ 'add'}} + unless currentBoard.isTemplatesBoard + unless currentBoard.isTemplateBoard + span.quiet + | {{_ 'or'}} + a.js-swimlane-template {{_ 'template'}} diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index 01859ead5..6ff723d73 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -2,6 +2,8 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; import dragscroll from '@wekanteam/dragscroll'; +const { calculateIndexData } = Utils; + /* const DOWNCLS = 'fa-sort-down'; const UPCLS = 'fa-sort-up'; @@ -68,6 +70,7 @@ BlazeComponent.extendComponent({ events() { return [ { + 'click .js-open-add-swimlane-menu': Popup.open('swimlaneAdd'), 'click .js-edit-board-title': Popup.open('boardChangeTitle'), 'click .js-star-board'() { ReactiveCache.getCurrentUser().toggleBoardStar(Session.get('currentBoard')); @@ -128,6 +131,41 @@ BlazeComponent.extendComponent({ }, }).register('boardHeaderBar'); +BlazeComponent.extendComponent({ + events() { + return [ + { + submit(event) { + event.preventDefault(); + const currentBoard = Utils.getCurrentBoard(); + const titleInput = this.find('.swimlane-name-input'); + const title = titleInput.value.trim(); + const swimlaneType = currentBoard.isTemplatesBoard() + ? 'template-swimlane' + : 'swimlane'; + + if (title) { + Swimlanes.insert({ + title, + boardId: Session.get('currentBoard'), + sort: 0, + type: swimlaneType, + }); + + titleInput.value = ''; + titleInput.focus(); + } + // XXX ideally, we should move the popup to the newly + // created swimlane so a user can add more than one swimlane + // with a minimum of interactions + Popup.back(); + }, + 'click .js-swimlane-template': Popup.open('searchElement'), + }, + ]; + }, +}).register('swimlaneAddPopup'); + Template.boardHeaderBar.helpers({ boardView() { return Utils.boardView(); diff --git a/client/components/swimlanes/swimlaneHeader.jade b/client/components/swimlanes/swimlaneHeader.jade index d14686163..e5477ce40 100644 --- a/client/components/swimlanes/swimlaneHeader.jade +++ b/client/components/swimlanes/swimlaneHeader.jade @@ -24,7 +24,6 @@ template(name="swimlaneFixedHeader") | {{isTitleDefault title}} .swimlane-header-menu unless currentUser.isCommentOnly - 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 @@ -75,19 +74,6 @@ template(name="swimlaneActionPopup") i.fa.fa-arrow-up | {{_ 'move-swimlane'}} -template(name="swimlaneAddPopup") - unless currentUser.isCommentOnly - form - input.swimlane-name-input.full-line(type="text" placeholder="{{_ 'add-swimlane'}}" - autocomplete="off" autofocus) - .edit-controls.clearfix - button.primary.confirm(type="submit") {{_ 'add'}} - unless currentBoard.isTemplatesBoard - unless currentBoard.isTemplateBoard - span.quiet - | {{_ 'or'}} - a.js-swimlane-template {{_ 'template'}} - template(name="setSwimlaneColorPopup") form.edit-label .palette-colors: each colors diff --git a/client/components/swimlanes/swimlaneHeader.js b/client/components/swimlanes/swimlaneHeader.js index 2b1547500..de2ef95eb 100644 --- a/client/components/swimlanes/swimlaneHeader.js +++ b/client/components/swimlanes/swimlaneHeader.js @@ -38,7 +38,6 @@ BlazeComponent.extendComponent({ this.collapsed(!this.collapsed()); }, 'click .js-open-swimlane-menu': Popup.open('swimlaneAction'), - 'click .js-open-add-swimlane-menu': Popup.open('swimlaneAdd'), submit: this.editTitle, }, ]; @@ -81,7 +80,7 @@ Template.editSwimlaneTitleForm.helpers({ // When that happens, try use translation "defaultdefault" that has same content of default, or return text "Default". // This can happen, if swimlane does not have name. // Yes, this is fixing the symptom (Swimlane title does not have title) - // instead of fixing the problem (Add Swimlane title when creating swimlane) + // instead of fixing the problem (Add Swimlane title when creating swimlane) // because there could be thousands of swimlanes, adding name Default to all of them // would be very slow. if (title.startsWith("key 'default") && title.endsWith('returned an object instead of string.')) { @@ -116,51 +115,6 @@ Template.swimlaneActionPopup.events({ }, }); -BlazeComponent.extendComponent({ - onCreated() { - this.currentSwimlane = this.currentData(); - }, - - events() { - return [ - { - submit(event) { - event.preventDefault(); - const currentBoard = Utils.getCurrentBoard(); - const nextSwimlane = currentBoard.nextSwimlane(this.currentSwimlane); - const titleInput = this.find('.swimlane-name-input'); - const title = titleInput.value.trim(); - const sortValue = calculateIndexData( - this.currentSwimlane, - nextSwimlane, - 1, - ); - const swimlaneType = currentBoard.isTemplatesBoard() - ? 'template-swimlane' - : 'swimlane'; - - if (title) { - Swimlanes.insert({ - title, - boardId: Session.get('currentBoard'), - sort: sortValue.base, - type: swimlaneType, - }); - - titleInput.value = ''; - titleInput.focus(); - } - // XXX ideally, we should move the popup to the newly - // created swimlane so a user can add more than one swimlane - // with a minimum of interactions - Popup.back(); - }, - 'click .js-swimlane-template': Popup.open('searchElement'), - }, - ]; - }, -}).register('swimlaneAddPopup'); - BlazeComponent.extendComponent({ onCreated() { this.currentSwimlane = this.currentData(); diff --git a/client/components/swimlanes/swimlanes.css b/client/components/swimlanes/swimlanes.css index 373de8ab3..5b4523456 100644 --- a/client/components/swimlanes/swimlanes.css +++ b/client/components/swimlanes/swimlanes.css @@ -73,11 +73,6 @@ display: none; } } -.swimlane .swimlane-header-wrap .swimlane-header-plus-icon { - margin-left: 5px; - padding-right: 20px; - font-size: 22px; -} .swimlane .swimlane-header-wrap .swimlane-header-menu-icon { padding-right: 20px; font-size: 22px; From f1d8220ab7166c4781b80a377f040369450d7fd0 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 29 Dec 2024 23:50:26 +0200 Subject: [PATCH 241/356] v7.75 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e329401b6..6351f2e70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.75 2024-12-29 WeKan ® release This release fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 0790381b4..ec069e6a9 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.74.0" +appVersion: "v7.75.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index c386d3412..ab44e5b0b 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.74-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.74/wekan-7.74-amd64-windows.zip) +1. [wekan-7.75-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.75/wekan-7.75-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.74-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.75-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 932168f0e..b84a8ee73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.74.0", + "version": "v7.75.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 52ae92eb7..56a3ddb5d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.74.0", + "version": "v7.75.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 8bd957a69..10e5aa2bd 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.74 + Wekan REST API v7.75 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                  • - Wekan REST API v7.74 + Wekan REST API v7.75
                                  • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                    -

                                    Wekan REST API v7.74

                                    +

                                    Wekan REST API v7.75

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

                                    diff --git a/public/api/wekan.yml b/public/api/wekan.yml index d1631eeb4..9a1ef0bb6 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.74 + version: v7.75 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 3b6929af1..9e7cb40c0 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 = 774, + appVersion = 775, # Increment this for every release. - appMarketingVersion = (defaultText = "7.74.0~2024-12-25"), + appMarketingVersion = (defaultText = "7.75.0~2024-12-29"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index b09e63999..97ffff688 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.74' +version: '7.75' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.74/wekan-7.74-amd64.zip - unzip wekan-7.74-amd64.zip - rm wekan-7.74-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.75/wekan-7.75-amd64.zip + unzip wekan-7.75-amd64.zip + rm wekan-7.75-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From fecae8d0a3f1ed82e9f19c2fea92c3ee72ad1b0d Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Mon, 30 Dec 2024 00:17:56 +0200 Subject: [PATCH 242/356] Revert "Move swimlane creation button to board header when using swimlane view mode" This reverts commit d51e8d1d1dbf74cdd6bf51a6713c9712161d1aa9. --- client/components/boards/boardColors.css | 8 ++++ client/components/boards/boardHeader.jade | 21 -------- client/components/boards/boardHeader.js | 38 --------------- .../components/swimlanes/swimlaneHeader.jade | 14 ++++++ client/components/swimlanes/swimlaneHeader.js | 48 ++++++++++++++++++- client/components/swimlanes/swimlanes.css | 5 ++ 6 files changed, 74 insertions(+), 60 deletions(-) diff --git a/client/components/boards/boardColors.css b/client/components/boards/boardColors.css index 61335d2e8..cecf559f0 100644 --- a/client/components/boards/boardColors.css +++ b/client/components/boards/boardColors.css @@ -2181,6 +2181,9 @@ THEME - Modern Dark padding: 6px; font-size: 16px; } +.board-color-moderndark .swimlane .swimlane-header-wrap .swimlane-header-plus-icon { + font-size: 16px; +} .board-color-moderndark .swimlane { background: #2a2a2a; line-height: 18px; @@ -3392,6 +3395,11 @@ THEME - Clean Light 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; diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index fce2913ed..93da227b2 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -16,10 +16,6 @@ template(name="boardHeaderBar") 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 $eq boardView 'board-view-swimlanes' - a.board-header-btn.js-open-add-swimlane-menu(title="{{_ 'add-swimlane'}}") - i.fa.fa-plus - 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'}}") i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}") @@ -63,10 +59,6 @@ template(name="boardHeaderBar") 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 $eq boardView 'board-view-swimlanes' - a.board-header-btn.js-open-add-swimlane-menu(title="{{_ 'add-swimlane'}}") - i.fa.fa-plus - 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'}}") i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}") @@ -303,16 +295,3 @@ template(name="cardsSortPopup") li a.js-sort-created-asc {{_ 'created-at-oldest-first'}} - -template(name="swimlaneAddPopup") - unless currentUser.isCommentOnly - form - input.swimlane-name-input.full-line(type="text" placeholder="{{_ 'add-swimlane'}}" - autocomplete="off" autofocus) - .edit-controls.clearfix - button.primary.confirm(type="submit") {{_ 'add'}} - unless currentBoard.isTemplatesBoard - unless currentBoard.isTemplateBoard - span.quiet - | {{_ 'or'}} - a.js-swimlane-template {{_ 'template'}} diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index 6ff723d73..01859ead5 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -2,8 +2,6 @@ import { ReactiveCache } from '/imports/reactiveCache'; import { TAPi18n } from '/imports/i18n'; import dragscroll from '@wekanteam/dragscroll'; -const { calculateIndexData } = Utils; - /* const DOWNCLS = 'fa-sort-down'; const UPCLS = 'fa-sort-up'; @@ -70,7 +68,6 @@ BlazeComponent.extendComponent({ events() { return [ { - 'click .js-open-add-swimlane-menu': Popup.open('swimlaneAdd'), 'click .js-edit-board-title': Popup.open('boardChangeTitle'), 'click .js-star-board'() { ReactiveCache.getCurrentUser().toggleBoardStar(Session.get('currentBoard')); @@ -131,41 +128,6 @@ BlazeComponent.extendComponent({ }, }).register('boardHeaderBar'); -BlazeComponent.extendComponent({ - events() { - return [ - { - submit(event) { - event.preventDefault(); - const currentBoard = Utils.getCurrentBoard(); - const titleInput = this.find('.swimlane-name-input'); - const title = titleInput.value.trim(); - const swimlaneType = currentBoard.isTemplatesBoard() - ? 'template-swimlane' - : 'swimlane'; - - if (title) { - Swimlanes.insert({ - title, - boardId: Session.get('currentBoard'), - sort: 0, - type: swimlaneType, - }); - - titleInput.value = ''; - titleInput.focus(); - } - // XXX ideally, we should move the popup to the newly - // created swimlane so a user can add more than one swimlane - // with a minimum of interactions - Popup.back(); - }, - 'click .js-swimlane-template': Popup.open('searchElement'), - }, - ]; - }, -}).register('swimlaneAddPopup'); - Template.boardHeaderBar.helpers({ boardView() { return Utils.boardView(); diff --git a/client/components/swimlanes/swimlaneHeader.jade b/client/components/swimlanes/swimlaneHeader.jade index e5477ce40..d14686163 100644 --- a/client/components/swimlanes/swimlaneHeader.jade +++ b/client/components/swimlanes/swimlaneHeader.jade @@ -24,6 +24,7 @@ template(name="swimlaneFixedHeader") | {{isTitleDefault title}} .swimlane-header-menu unless currentUser.isCommentOnly + 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 @@ -74,6 +75,19 @@ template(name="swimlaneActionPopup") i.fa.fa-arrow-up | {{_ 'move-swimlane'}} +template(name="swimlaneAddPopup") + unless currentUser.isCommentOnly + form + input.swimlane-name-input.full-line(type="text" placeholder="{{_ 'add-swimlane'}}" + autocomplete="off" autofocus) + .edit-controls.clearfix + button.primary.confirm(type="submit") {{_ 'add'}} + unless currentBoard.isTemplatesBoard + unless currentBoard.isTemplateBoard + span.quiet + | {{_ 'or'}} + a.js-swimlane-template {{_ 'template'}} + template(name="setSwimlaneColorPopup") form.edit-label .palette-colors: each colors diff --git a/client/components/swimlanes/swimlaneHeader.js b/client/components/swimlanes/swimlaneHeader.js index de2ef95eb..2b1547500 100644 --- a/client/components/swimlanes/swimlaneHeader.js +++ b/client/components/swimlanes/swimlaneHeader.js @@ -38,6 +38,7 @@ BlazeComponent.extendComponent({ this.collapsed(!this.collapsed()); }, 'click .js-open-swimlane-menu': Popup.open('swimlaneAction'), + 'click .js-open-add-swimlane-menu': Popup.open('swimlaneAdd'), submit: this.editTitle, }, ]; @@ -80,7 +81,7 @@ Template.editSwimlaneTitleForm.helpers({ // When that happens, try use translation "defaultdefault" that has same content of default, or return text "Default". // This can happen, if swimlane does not have name. // Yes, this is fixing the symptom (Swimlane title does not have title) - // instead of fixing the problem (Add Swimlane title when creating swimlane) + // instead of fixing the problem (Add Swimlane title when creating swimlane) // because there could be thousands of swimlanes, adding name Default to all of them // would be very slow. if (title.startsWith("key 'default") && title.endsWith('returned an object instead of string.')) { @@ -115,6 +116,51 @@ Template.swimlaneActionPopup.events({ }, }); +BlazeComponent.extendComponent({ + onCreated() { + this.currentSwimlane = this.currentData(); + }, + + events() { + return [ + { + submit(event) { + event.preventDefault(); + const currentBoard = Utils.getCurrentBoard(); + const nextSwimlane = currentBoard.nextSwimlane(this.currentSwimlane); + const titleInput = this.find('.swimlane-name-input'); + const title = titleInput.value.trim(); + const sortValue = calculateIndexData( + this.currentSwimlane, + nextSwimlane, + 1, + ); + const swimlaneType = currentBoard.isTemplatesBoard() + ? 'template-swimlane' + : 'swimlane'; + + if (title) { + Swimlanes.insert({ + title, + boardId: Session.get('currentBoard'), + sort: sortValue.base, + type: swimlaneType, + }); + + titleInput.value = ''; + titleInput.focus(); + } + // XXX ideally, we should move the popup to the newly + // created swimlane so a user can add more than one swimlane + // with a minimum of interactions + Popup.back(); + }, + 'click .js-swimlane-template': Popup.open('searchElement'), + }, + ]; + }, +}).register('swimlaneAddPopup'); + BlazeComponent.extendComponent({ onCreated() { this.currentSwimlane = this.currentData(); diff --git a/client/components/swimlanes/swimlanes.css b/client/components/swimlanes/swimlanes.css index 5b4523456..373de8ab3 100644 --- a/client/components/swimlanes/swimlanes.css +++ b/client/components/swimlanes/swimlanes.css @@ -73,6 +73,11 @@ display: none; } } +.swimlane .swimlane-header-wrap .swimlane-header-plus-icon { + margin-left: 5px; + padding-right: 20px; + font-size: 22px; +} .swimlane .swimlane-header-wrap .swimlane-header-menu-icon { padding-right: 20px; font-size: 22px; From cf756231847976537774f878621b3721cdf4b6f5 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Mon, 30 Dec 2024 00:34:40 +0200 Subject: [PATCH 243/356] Always handle the escape key when shortcuts are enabled --- client/lib/keyboard.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index fa1e706b7..3f262b82c 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -23,6 +23,10 @@ Mousetrap.stopCallback = (e, element) => { if (!ReactiveCache.getCurrentUser().isKeyboardShortcuts()) return true; + // Always handle escape + if (e.keyCode === 27) + return false; + // Make sure there are no selected characters if (window.getSelection().type === "Range") return true; From a5f915721748d3345b071902d698fc8823344be3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 30 Dec 2024 00:42:33 +0200 Subject: [PATCH 244/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6351f2e70..4fa07b3be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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. + +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: From 96e11cb727ddfca48ae24db48c3122dbce01964a Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Mon, 30 Dec 2024 01:25:25 +0200 Subject: [PATCH 245/356] Display new swimlane creation button when no swimlanes exist --- client/components/boards/boardBody.jade | 12 +++++++++--- client/components/boards/boardBody.js | 5 +++++ client/components/swimlanes/swimlaneHeader.js | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/client/components/boards/boardBody.jade b/client/components/boards/boardBody.jade index 32cd274f2..89e99ae6d 100644 --- a/client/components/boards/boardBody.jade +++ b/client/components/boards/boardBody.jade @@ -17,7 +17,8 @@ template(name="boardBody") | {{_ 'tableVisibilityMode-allowPrivateOnly'}} else .board-wrapper(class=currentBoard.colorClass) - .board-canvas.js-swimlanes.dragscroll( + .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}}") @@ -27,8 +28,13 @@ template(name="boardBody") 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 diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index 346bb181f..eb5690f43 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -248,6 +248,10 @@ BlazeComponent.extendComponent({ } }, + hasSwimlanes() { + return Utils.getCurrentBoard().swimlanes().length > 0; + }, + isViewLists() { const currentUser = ReactiveCache.getCurrentUser(); if (currentUser) { @@ -288,6 +292,7 @@ BlazeComponent.extendComponent({ this._isDragging = false; } }, + 'click .js-empty-board-add-swimlane': Popup.open('swimlaneAdd'), }, ]; }, diff --git a/client/components/swimlanes/swimlaneHeader.js b/client/components/swimlanes/swimlaneHeader.js index 2b1547500..17988f454 100644 --- a/client/components/swimlanes/swimlaneHeader.js +++ b/client/components/swimlanes/swimlaneHeader.js @@ -143,7 +143,7 @@ BlazeComponent.extendComponent({ Swimlanes.insert({ title, boardId: Session.get('currentBoard'), - sort: sortValue.base, + sort: sortValue.base || 0, type: swimlaneType, }); From 37f7924524ead56db5efb279e3c8d46eeae41656 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 30 Dec 2024 01:37:27 +0200 Subject: [PATCH 246/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fa07b3be..8ef0eea7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ 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. From f1810e47e00fbf76592fa3a16a9ca0b818e35f06 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 30 Dec 2024 01:57:04 +0200 Subject: [PATCH 247/356] v7.76 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ef0eea7c..969fb2ae7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.76 2024-12-30 WeKan ® release This release fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index ec069e6a9..7a6c8393d 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.75.0" +appVersion: "v7.76.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index ab44e5b0b..4cc286acc 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.75-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.75/wekan-7.75-amd64-windows.zip) +1. [wekan-7.76-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.76/wekan-7.76-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.75-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.76-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index b84a8ee73..2a23e4c06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.75.0", + "version": "v7.76.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 56a3ddb5d..f4bb8c94d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.75.0", + "version": "v7.76.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 10e5aa2bd..af5d0ce60 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.75 + Wekan REST API v7.76 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                    • - Wekan REST API v7.75 + Wekan REST API v7.76
                                    • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                      -

                                      Wekan REST API v7.75

                                      +

                                      Wekan REST API v7.76

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

                                      diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 9a1ef0bb6..6da142c18 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.75 + version: v7.76 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 9e7cb40c0..c6dda814e 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 = 775, + appVersion = 776, # Increment this for every release. - appMarketingVersion = (defaultText = "7.75.0~2024-12-29"), + appMarketingVersion = (defaultText = "7.76.0~2024-12-30"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 97ffff688..2afd6ea92 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.75' +version: '7.76' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.75/wekan-7.75-amd64.zip - unzip wekan-7.75-amd64.zip - rm wekan-7.75-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.76/wekan-7.76-amd64.zip + unzip wekan-7.76-amd64.zip + rm wekan-7.76-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 189ebd420134fc7a0ae64912ddb7e14c66884625 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Mon, 30 Dec 2024 20:15:52 +0200 Subject: [PATCH 248/356] Enable keyboard shortcuts by default --- models/users.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/users.js b/models/users.js index 5d28dae3b..ce00bdad9 100644 --- a/models/users.js +++ b/models/users.js @@ -962,7 +962,7 @@ Users.helpers({ }, isKeyboardShortcuts() { - const { keyboardShortcuts = false } = this.profile || {}; + const { keyboardShortcuts = true } = this.profile || {}; return keyboardShortcuts; }, @@ -1031,7 +1031,7 @@ Users.mutations({ }; }, toggleKeyboardShortcuts() { - const { keyboardShortcuts = false } = this.profile || {}; + const { keyboardShortcuts = true } = this.profile || {}; return { $set: { 'profile.keyboardShortcuts': !keyboardShortcuts, From b253683b3cad54b7c1c9ef7cf23393cb9750ba5d Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Mon, 30 Dec 2024 20:23:54 +0200 Subject: [PATCH 249/356] Fix comment backgrounds in cleandark theme --- client/components/boards/boardColors.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/components/boards/boardColors.css b/client/components/boards/boardColors.css index cecf559f0..e03b80fdd 100644 --- a/client/components/boards/boardColors.css +++ b/client/components/boards/boardColors.css @@ -2993,6 +2993,10 @@ THEME - Clean Dark 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; From 2948e0aa4f070a5a3db8400d7c5752a24e5fc8b0 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Mon, 30 Dec 2024 20:31:00 +0200 Subject: [PATCH 250/356] Fix confusing and broken "Add checklist" and "Add subtask" buttons in card details view --- client/components/boards/boardColors.css | 5 ----- 1 file changed, 5 deletions(-) diff --git a/client/components/boards/boardColors.css b/client/components/boards/boardColors.css index cecf559f0..890c900e9 100644 --- a/client/components/boards/boardColors.css +++ b/client/components/boards/boardColors.css @@ -4131,11 +4131,6 @@ THEME - Clean Light color: #FFFFFF; } -.board-color-cleanlight .card-details-left .js-open-inlined-form, -.board-color-cleandark .card-details-left .js-open-inlined-form { - float: right; -} - .board-color-cleanlight .new-comment .fa, .board-color-cleandark .new-comment .fa { display: none; From efd22df657788546cbbe7327d0389a9953e9bd87 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Mon, 30 Dec 2024 20:31:28 +0200 Subject: [PATCH 251/356] Add some padding to checklist title to make it seperate from card details body --- client/components/cards/checklists.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/components/cards/checklists.css b/client/components/cards/checklists.css index c730e0ac8..6b8c7e8f9 100644 --- a/client/components/cards/checklists.css +++ b/client/components/cards/checklists.css @@ -45,6 +45,9 @@ textarea.js-edit-checklist-item { border-radius: 16px; height: 100%; } +.checklist-title { + padding: 10px; +} .checklist-title .checkbox { float: left; width: 30px; From 01a717f1438852b432bc7f510df7cae6a1c8fe93 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Mon, 30 Dec 2024 21:03:18 +0200 Subject: [PATCH 252/356] Generic fix for keyboard shortcuts which fixes "SPACE" shortcut and more bugs --- client/lib/keyboard.js | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 3f262b82c..a7e0ada76 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -14,24 +14,33 @@ window.addEventListener('keydown', (e) => { Mousetrap.trigger(String.fromCharCode(e.which).toLowerCase()); }); -// Store the original stopCallback in a global -const originalStopCallback = Mousetrap.stopCallback; - // Overwrite the stopCallback to allow for more keyboard shortcut customizations -Mousetrap.stopCallback = (e, element) => { +Mousetrap.stopCallback = (event, element) => { // Are shortcuts enabled for the user? if (!ReactiveCache.getCurrentUser().isKeyboardShortcuts()) return true; // Always handle escape - if (e.keyCode === 27) + if (event.keyCode === 27) return false; // Make sure there are no selected characters if (window.getSelection().type === "Range") return true; - return originalStopCallback(e, element); + // 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() { From 5db8d45f4d1ad6509bc1d642ea666a9f6940f792 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 30 Dec 2024 23:13:07 +0200 Subject: [PATCH 253/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 969fb2ae7..33dd162da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming WeKan ® release + +This release fixes the following bugs: + +- [Enable keyboard shortcuts by default](https://github.com/wekan/wekan/pull/5639). + 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: From 7980899f37642a99793258db89d0e2966d398547 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 30 Dec 2024 23:14:39 +0200 Subject: [PATCH 254/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 33dd162da..aca777614 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ This release 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. Thanks to above GitHub users for their contributions and translators for their translations. From c7bf0b24a7e549675a91f0dc3832b421a7e58fae Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 30 Dec 2024 23:16:35 +0200 Subject: [PATCH 255/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aca777614..d666a3150 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ This release fixes the following bugs: 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. Thanks to above GitHub users for their contributions and translators for their translations. From bf0d6cad2c691d307cdb5504f7e88e640f0dc90f Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 30 Dec 2024 23:18:04 +0200 Subject: [PATCH 256/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d666a3150..73beb7c22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ This release fixes the following bugs: 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. From fb8e23dc4be3bfcd15c8f78aac8d481ada17f55e Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 30 Dec 2024 23:20:32 +0200 Subject: [PATCH 257/356] Updated translations. --- imports/i18n/data/hi-IN.i18n.json | 144 +++++++++++++++--------------- imports/i18n/data/hi.i18n.json | 144 +++++++++++++++--------------- 2 files changed, 144 insertions(+), 144 deletions(-) diff --git a/imports/i18n/data/hi-IN.i18n.json b/imports/i18n/data/hi-IN.i18n.json index 918010931..3b87ea110 100644 --- a/imports/i18n/data/hi-IN.i18n.json +++ b/imports/i18n/data/hi-IN.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%sसंग्रह में ले जाया गया", "activity-attached": "संलग्न %s से %s", "activity-created": "बनाया %s", - "activity-changedListTitle": "renamed list to %s", + "activity-changedListTitle": "सूची का नाम बदलकर %sकर दिया गया", "activity-customfield-created": "बनाया रिवाज क्षेत्र %s", "activity-excluded": "छोड़ा %s से %s", "activity-imported": "सूचित कर %s के अंदर %s से %s", @@ -86,16 +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 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", + "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": "चिह्नांकन-सूची जोड़ें", @@ -103,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": "सदस्य", @@ -146,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", @@ -165,9 +165,9 @@ "board-public-info": "यह बोर्ड हो जाएगा सार्वजनिक.", "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": "बदलें वॉच", @@ -266,9 +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", + "click-to-enable-auto-width": "ऑटो सूची चौड़ाई अक्षम है। सक्षम करने के लिए क्लिक करें", + "click-to-disable-auto-width": "ऑटो सूची चौड़ाई अक्षम है। अक्षम करने के लिए क्लिक करें.", + "auto-list-width": "ऑटो सूची चौड़ाई", "clipboard": "क्लिपबोर्ड या खींचें और छोड़ें", "close": "बंद करे", "close-board": "बोर्ड बंद करे", @@ -300,7 +300,7 @@ "color-white": "white", "color-yellow": "पीला", "unset-color": "Unset", - "comments": "Comments", + "comments": "टिप्पणियाँ", "comment": "टिप्पणी", "comment-placeholder": "टिप्पणी लिखें", "comment-only": "केवल टिप्पणी करें", @@ -389,7 +389,7 @@ "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", @@ -428,7 +428,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", @@ -450,7 +450,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.", - "show-activities": "Show Activities", + "show-activities": "गतिविधियाँ दिखाएँ", "headerBarCreateBoardPopup-title": "बोर्ड निर्माण करना", "home": "Home", "import": "Import", @@ -557,7 +557,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": "मिटाएँ सूची ?", @@ -579,14 +579,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": "Add yourself to current card", + "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", @@ -748,9 +748,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", @@ -863,7 +863,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", @@ -894,9 +894,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", @@ -964,7 +964,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", + "hide-finished-checklist": "समाप्त चेकलिस्ट छुपाएं", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -972,7 +972,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", @@ -1109,7 +1109,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", @@ -1118,8 +1118,8 @@ "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", + "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", @@ -1127,7 +1127,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", @@ -1202,10 +1202,10 @@ "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", + "newlineBecomesNewChecklistItem": "पाठ की प्रत्येक पंक्ति चेकलिस्ट आइटम में से एक बन जाती है", + "newLineNewItem": "पाठ की एक पंक्ति = एक चेकलिस्ट आइटम", + "newlineBecomesNewChecklistItemOriginOrder": "पाठ की प्रत्येक पंक्ति चेकलिस्ट आइटम, मूल क्रम में से एक बन जाती है", + "originOrder": "मूल क्रम", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1239,31 +1239,31 @@ "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-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": "उप-कार्य फ़ील्ड दिखाएँ", + "convert-to-markdown": "मार्कडाउन में कनवर्ट करें", + "import-board-zip": ".zip फ़ाइल जोड़ें जिसमें बोर्ड JSON फ़ाइलें हैं, और अनुलग्नकों के साथ बोर्ड नाम उपनिर्देशिकाएँ हैं", "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" + "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 14d0b85a9..966532ebc 100644 --- a/imports/i18n/data/hi.i18n.json +++ b/imports/i18n/data/hi.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%sसंग्रह में ले जाया गया", "activity-attached": "संलग्न %s से %s", "activity-created": "बनाया %s", - "activity-changedListTitle": "renamed list to %s", + "activity-changedListTitle": "सूची का नाम बदलकर %s कर दिया गया", "activity-customfield-created": "बनाया रिवाज क्षेत्र %s", "activity-excluded": "छोड़ा %s से %s", "activity-imported": "सूचित कर %s के अंदर %s से %s", @@ -86,16 +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 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", + "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": "चिह्नांकन-सूची जोड़ें", @@ -103,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": "सदस्य", @@ -146,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", @@ -165,9 +165,9 @@ "board-public-info": "यह बोर्ड हो जाएगा सार्वजनिक.", "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": "बदलें वॉच", @@ -266,9 +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", + "click-to-enable-auto-width": "स्वचालित सूची चौड़ाई अक्षम। सक्षम करने के लिए क्लिक करें।", + "click-to-disable-auto-width": "ऑटो सूची चौड़ाई सक्षम। अक्षम करने के लिए क्लिक करें.", + "auto-list-width": "स्वचालित सूची चौड़ाई", "clipboard": "क्लिपबोर्ड या खींचें और छोड़ें", "close": "बंद करे", "close-board": "बोर्ड बंद करे", @@ -300,7 +300,7 @@ "color-white": "white", "color-yellow": "पीला", "unset-color": "Unset", - "comments": "Comments", + "comments": "टिप्पणियाँ", "comment": "टिप्पणी", "comment-placeholder": "टिप्पणी लिखें", "comment-only": "केवल टिप्पणी करें", @@ -389,7 +389,7 @@ "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", @@ -428,7 +428,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", @@ -450,7 +450,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.", - "show-activities": "Show Activities", + "show-activities": "गतिविधियाँ दिखाएं", "headerBarCreateBoardPopup-title": "बोर्ड निर्माण करना", "home": "Home", "import": "Import", @@ -557,7 +557,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": "मिटाएँ सूची ?", @@ -579,14 +579,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": "Add yourself to current card", + "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", @@ -748,9 +748,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", @@ -863,7 +863,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", @@ -894,9 +894,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", @@ -964,7 +964,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", + "hide-finished-checklist": "पूर्ण चेकलिस्ट छिपाएं", "task": "Task", "create-task": "Create Task", "ok": "OK", @@ -972,7 +972,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", @@ -1109,7 +1109,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", @@ -1118,8 +1118,8 @@ "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", + "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", @@ -1127,7 +1127,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", @@ -1202,10 +1202,10 @@ "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", + "newlineBecomesNewChecklistItem": "पाठ की प्रत्येक पंक्ति चेकलिस्ट आइटम में से एक बन जाती है|", + "newLineNewItem": "एक पंक्ति = एक चेकलिस्ट आइटम", + "newlineBecomesNewChecklistItemOriginOrder": "पाठ की प्रत्येक पंक्ति चेकलिस्ट आइटम में बदल जाती है, मूल क्रम", + "originOrder": "मूल क्रम", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1239,31 +1239,31 @@ "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-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": "उप-कार्य फ़ील्ड दिखाएँ", + "convert-to-markdown": "मार्कडाउन में कन्वर्ट करें", + "import-board-zip": ".zip फ़ाइल जोड़ें जिसमें बोर्ड JSON फ़ाइलें और अनुलग्नकों वाले उपनिर्देशिका हों", "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" + "uncollapse": "असंकुचित करें", + "hideCheckedChecklistItems": "चेक की गई चेकलिस्ट आइटम छिपाएं", + "hideAllChecklistItems": "सभी चेकलिस्ट आइटम छिपाएं", + "support": "सहायता", + "supportPopup-title": "सहायता", + "accessibility-page-enabled": "अभिगम्यता पृष्ठ सक्षम किया गया", + "accessibility-title": "एक्सेसिबिलिटी टॉपिक", + "accessibility-content": "अभिगम्यता सामग्री" } From 3e01231874b4d17532e1e7a3db9dd90cc9c95b8a Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Mon, 30 Dec 2024 23:22:54 +0200 Subject: [PATCH 258/356] Allow vertical scrollbars to be disabled (user preferences, visible by default) --- client/components/boards/boardBody.jade | 3 ++- client/components/boards/boardBody.js | 5 +++++ client/components/cards/cardDetails.jade | 2 +- client/components/cards/cardDetails.js | 5 +++++ client/components/lists/listBody.jade | 2 +- client/components/lists/listBody.js | 5 +++++ client/components/main/layouts.css | 3 +++ client/components/sidebar/sidebar.jade | 7 ++++++- client/components/sidebar/sidebar.js | 12 ++++++++++++ imports/i18n/data/en.i18n.json | 1 + models/users.js | 20 ++++++++++++++++++++ 11 files changed, 61 insertions(+), 4 deletions(-) diff --git a/client/components/boards/boardBody.jade b/client/components/boards/boardBody.jade index 89e99ae6d..de1c1ca3c 100644 --- a/client/components/boards/boardBody.jade +++ b/client/components/boards/boardBody.jade @@ -21,7 +21,8 @@ template(name="boardBody") 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 diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index eb5690f43..29bf5e5bb 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -270,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 diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade index 99288bfe6..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.nodragscroll(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 diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index ce1e9066a..9d022b2cd 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -114,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 ? diff --git a/client/components/lists/listBody.jade b/client/components/lists/listBody.jade index 22a11fec8..662b5f187 100644 --- a/client/components/lists/listBody.jade +++ b/client/components/lists/listBody.jade @@ -1,6 +1,6 @@ template(name="listBody") unless collapsed - .list-body + .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") 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/main/layouts.css b/client/components/main/layouts.css index 22ec3b609..a08b2f3ed 100644 --- a/client/components/main/layouts.css +++ b/client/components/main/layouts.css @@ -446,6 +446,9 @@ a:not(.disabled).is-active i.fa { padding: 0; padding-top: 15px; } +.no-scrollbars { + scrollbar-width: none; +} @media screen and (max-width: 800px) { #content { margin: 1px 0px 0px 0px; diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 59548713c..d10149381 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -1,5 +1,5 @@ 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}}") @@ -33,6 +33,11 @@ template(name='homeSidebar') span {{_ 'hide-minicard-label-text'}} b   .materialCheckBox(class="{{#if hiddenMinicardLabelText}}is-checked{{/if}}") + ul + a.flex.js-vertical-scrollbars-toggle(title="{{_ 'enable-vertical-scrollbars'}}") + span {{_ 'enable-vertical-scrollbars'}} + b   + .materialCheckBox(class="{{#if isVerticalScrollbars}}is-checked{{/if}}") hr unless currentUser.isNoComments h3.activity-title diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js index e9329fc27..36cc3f050 100644 --- a/client/components/sidebar/sidebar.js +++ b/client/components/sidebar/sidebar.js @@ -110,6 +110,11 @@ BlazeComponent.extendComponent({ return user && user.isKeyboardShortcuts(); }, + isVerticalScrollbars() { + const user = ReactiveCache.getCurrentUser(); + return user && user.isVerticalScrollbars(); + }, + events() { return [ { @@ -134,6 +139,9 @@ BlazeComponent.extendComponent({ 'click .js-keyboard-shortcuts-toggle'() { ReactiveCache.getCurrentUser().toggleKeyboardShortcuts(); }, + 'click .js-vertical-scrollbars-toggle'() { + ReactiveCache.getCurrentUser().toggleVerticalScrollbars(); + }, 'click .js-close-sidebar'() { Sidebar.toggle() }, @@ -155,6 +163,10 @@ BlazeComponent.extendComponent({ return false; } }, + isVerticalScrollbars() { + const user = ReactiveCache.getCurrentUser(); + return user && user.isVerticalScrollbars(); + }, showActivities() { let ret = Utils.getCurrentBoard().showActivities ?? false; return ret; diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -383,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", diff --git a/models/users.js b/models/users.js index 5d28dae3b..68b811b76 100644 --- a/models/users.js +++ b/models/users.js @@ -451,6 +451,13 @@ Users.attachSchema( type: Boolean, defaultValue: false, }, + 'profile.verticalScrollbars': { + /** + * User-specified state of vertical scrollbars visibility. + */ + type: Boolean, + defaultValue: true, + }, services: { /** * services field of the user @@ -966,6 +973,11 @@ Users.helpers({ return keyboardShortcuts; }, + isVerticalScrollbars() { + const { verticalScrollbars = true } = this.profile || {}; + return verticalScrollbars; + }, + remove() { User.remove({ _id: this._id, @@ -1038,6 +1050,14 @@ Users.mutations({ }, }; }, + toggleVerticalScrollbars() { + const { verticalScrollbars = true } = this.profile || {}; + return { + $set: { + 'profile.verticalScrollbars': !verticalScrollbars, + }, + }; + }, addInvite(boardId) { return { From 7abe8d71a88b7503cc0afe89a38bab78241ef988 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 30 Dec 2024 23:32:34 +0200 Subject: [PATCH 259/356] v7.77 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73beb7c22..ab578cde5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.77 2024-12-30 WeKan ® release This release fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 7a6c8393d..27646af70 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.76.0" +appVersion: "v7.77.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 4cc286acc..1b1699c2a 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.76-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.76/wekan-7.76-amd64-windows.zip) +1. [wekan-7.77-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.77/wekan-7.77-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.76-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.77-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 2a23e4c06..7dc602b3d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.76.0", + "version": "v7.77.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index f4bb8c94d..128cf05a1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.76.0", + "version": "v7.77.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index af5d0ce60..bb5f2c9de 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.76 + Wekan REST API v7.77 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                      • - Wekan REST API v7.76 + Wekan REST API v7.77
                                      • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                        -

                                        Wekan REST API v7.76

                                        +

                                        Wekan REST API v7.77

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

                                        diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 6da142c18..18a4ae332 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.76 + version: v7.77 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index c6dda814e..ba5410087 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 = 776, + appVersion = 777, # Increment this for every release. - appMarketingVersion = (defaultText = "7.76.0~2024-12-30"), + appMarketingVersion = (defaultText = "7.77.0~2024-12-30"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 2afd6ea92..300bd3c5a 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.76' +version: '7.77' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.76/wekan-7.76-amd64.zip - unzip wekan-7.76-amd64.zip - rm wekan-7.76-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.77/wekan-7.77-amd64.zip + unzip wekan-7.77-amd64.zip + rm wekan-7.77-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 7ba66f638674df45680a658a9021be1b502f6905 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 31 Dec 2024 00:22:15 +0200 Subject: [PATCH 260/356] Updated translations. --- .tx/config | 2 +- .../data/{ar-DZ.i18n.json => ar_DZ.i18n.json} | 0 .../data/{ar-EG.i18n.json => ar_EG.i18n.json} | 0 .../{ast-ES.i18n.json => ast_ES.i18n.json} | 0 .../data/{az-AZ.i18n.json => az_AZ.i18n.json} | 0 .../data/{az-LA.i18n.json => az_LA.i18n.json} | 0 .../data/{cs-CZ.i18n.json => cs_CZ.i18n.json} | 0 .../data/{cy-GB.i18n.json => cy_GB.i18n.json} | 0 .../data/{de-AT.i18n.json => de_AT.i18n.json} | 0 .../data/{de-CH.i18n.json => de_CH.i18n.json} | 0 .../data/{el-GR.i18n.json => el_GR.i18n.json} | 0 .../data/{en-BR.i18n.json => en_BR.i18n.json} | 0 .../data/{en-DE.i18n.json => en_DE.i18n.json} | 0 .../data/{en-GB.i18n.json => en_GB.i18n.json} | 0 .../data/{en-IT.i18n.json => en_IT.i18n.json} | 0 .../data/{en-MY.i18n.json => en_MY.i18n.json} | 0 .../data/{en-YS.i18n.json => en_YS.i18n.json} | 0 .../data/{es-AR.i18n.json => es_AR.i18n.json} | 0 .../data/{es-CL.i18n.json => es_CL.i18n.json} | 0 .../data/{es-LA.i18n.json => es_LA.i18n.json} | 0 .../data/{es-MX.i18n.json => es_MX.i18n.json} | 0 .../data/{es-PE.i18n.json => es_PE.i18n.json} | 0 .../data/{es-PY.i18n.json => es_PY.i18n.json} | 0 .../data/{et-EE.i18n.json => et_EE.i18n.json} | 0 .../data/{fa-IR.i18n.json => fa_IR.i18n.json} | 0 .../data/{fr-CH.i18n.json => fr_CH.i18n.json} | 0 .../data/{fr-FR.i18n.json => fr_FR.i18n.json} | 0 .../data/{fy-NL.i18n.json => fy_NL.i18n.json} | 0 .../data/{gl-ES.i18n.json => gl_ES.i18n.json} | 0 .../data/{gu-IN.i18n.json => gu_IN.i18n.json} | 0 .../data/{he-IL.i18n.json => he_IL.i18n.json} | 0 .../data/{hi-IN.i18n.json => hi_IN.i18n.json} | 0 .../data/{ja-HI.i18n.json => ja_HI.i18n.json} | 0 .../data/{ko-KR.i18n.json => ko_KR.i18n.json} | 0 .../data/{ms-MY.i18n.json => ms_MY.i18n.json} | 0 .../data/{nl-NL.i18n.json => nl_NL.i18n.json} | 0 .../data/{pl-PL.i18n.json => pl_PL.i18n.json} | 0 .../data/{pt-BR.i18n.json => pt_BR.i18n.json} | 0 .../data/{ro-RO.i18n.json => ro_RO.i18n.json} | 0 .../data/{ru-UA.i18n.json => ru_UA.i18n.json} | 0 .../data/{uk-UA.i18n.json => uk_UA.i18n.json} | 0 .../data/{uz-AR.i18n.json => uz_AR.i18n.json} | 0 .../data/{uz-LA.i18n.json => uz_LA.i18n.json} | 0 .../data/{uz-UZ.i18n.json => uz_UZ.i18n.json} | 0 .../data/{ve-CC.i18n.json => ve_CC.i18n.json} | 0 .../data/{ve-PP.i18n.json => ve_PP.i18n.json} | 0 .../data/{vi-VN.i18n.json => vi_VN.i18n.json} | 0 .../data/{vl-SS.i18n.json => vl_SS.i18n.json} | 0 .../data/{wa-RR.i18n.json => wa_RR.i18n.json} | 0 .../data/{zh-CN.i18n.json => zh_CN.i18n.json} | 0 .../data/{zh-GB.i18n.json => zh_GB.i18n.json} | 0 .../data/{zh-HK.i18n.json => zh_HK.i18n.json} | 0 .../{zh-Hans.i18n.json => zh_Hans.i18n.json} | 0 .../{zh-Hant.i18n.json => zh_Hant.i18n.json} | 0 .../data/{zh-TW.i18n.json => zh_TW.i18n.json} | 0 .../data/{zu-ZA.i18n.json => zu_ZA.i18n.json} | 0 imports/i18n/languages.js | 368 +++++++++--------- 57 files changed, 188 insertions(+), 182 deletions(-) rename imports/i18n/data/{ar-DZ.i18n.json => ar_DZ.i18n.json} (100%) rename imports/i18n/data/{ar-EG.i18n.json => ar_EG.i18n.json} (100%) rename imports/i18n/data/{ast-ES.i18n.json => ast_ES.i18n.json} (100%) rename imports/i18n/data/{az-AZ.i18n.json => az_AZ.i18n.json} (100%) rename imports/i18n/data/{az-LA.i18n.json => az_LA.i18n.json} (100%) rename imports/i18n/data/{cs-CZ.i18n.json => cs_CZ.i18n.json} (100%) rename imports/i18n/data/{cy-GB.i18n.json => cy_GB.i18n.json} (100%) rename imports/i18n/data/{de-AT.i18n.json => de_AT.i18n.json} (100%) rename imports/i18n/data/{de-CH.i18n.json => de_CH.i18n.json} (100%) rename imports/i18n/data/{el-GR.i18n.json => el_GR.i18n.json} (100%) rename imports/i18n/data/{en-BR.i18n.json => en_BR.i18n.json} (100%) rename imports/i18n/data/{en-DE.i18n.json => en_DE.i18n.json} (100%) rename imports/i18n/data/{en-GB.i18n.json => en_GB.i18n.json} (100%) rename imports/i18n/data/{en-IT.i18n.json => en_IT.i18n.json} (100%) rename imports/i18n/data/{en-MY.i18n.json => en_MY.i18n.json} (100%) rename imports/i18n/data/{en-YS.i18n.json => en_YS.i18n.json} (100%) rename imports/i18n/data/{es-AR.i18n.json => es_AR.i18n.json} (100%) rename imports/i18n/data/{es-CL.i18n.json => es_CL.i18n.json} (100%) rename imports/i18n/data/{es-LA.i18n.json => es_LA.i18n.json} (100%) rename imports/i18n/data/{es-MX.i18n.json => es_MX.i18n.json} (100%) rename imports/i18n/data/{es-PE.i18n.json => es_PE.i18n.json} (100%) rename imports/i18n/data/{es-PY.i18n.json => es_PY.i18n.json} (100%) rename imports/i18n/data/{et-EE.i18n.json => et_EE.i18n.json} (100%) rename imports/i18n/data/{fa-IR.i18n.json => fa_IR.i18n.json} (100%) rename imports/i18n/data/{fr-CH.i18n.json => fr_CH.i18n.json} (100%) rename imports/i18n/data/{fr-FR.i18n.json => fr_FR.i18n.json} (100%) rename imports/i18n/data/{fy-NL.i18n.json => fy_NL.i18n.json} (100%) rename imports/i18n/data/{gl-ES.i18n.json => gl_ES.i18n.json} (100%) rename imports/i18n/data/{gu-IN.i18n.json => gu_IN.i18n.json} (100%) rename imports/i18n/data/{he-IL.i18n.json => he_IL.i18n.json} (100%) rename imports/i18n/data/{hi-IN.i18n.json => hi_IN.i18n.json} (100%) rename imports/i18n/data/{ja-HI.i18n.json => ja_HI.i18n.json} (100%) rename imports/i18n/data/{ko-KR.i18n.json => ko_KR.i18n.json} (100%) rename imports/i18n/data/{ms-MY.i18n.json => ms_MY.i18n.json} (100%) rename imports/i18n/data/{nl-NL.i18n.json => nl_NL.i18n.json} (100%) rename imports/i18n/data/{pl-PL.i18n.json => pl_PL.i18n.json} (100%) rename imports/i18n/data/{pt-BR.i18n.json => pt_BR.i18n.json} (100%) rename imports/i18n/data/{ro-RO.i18n.json => ro_RO.i18n.json} (100%) rename imports/i18n/data/{ru-UA.i18n.json => ru_UA.i18n.json} (100%) rename imports/i18n/data/{uk-UA.i18n.json => uk_UA.i18n.json} (100%) rename imports/i18n/data/{uz-AR.i18n.json => uz_AR.i18n.json} (100%) rename imports/i18n/data/{uz-LA.i18n.json => uz_LA.i18n.json} (100%) rename imports/i18n/data/{uz-UZ.i18n.json => uz_UZ.i18n.json} (100%) rename imports/i18n/data/{ve-CC.i18n.json => ve_CC.i18n.json} (100%) rename imports/i18n/data/{ve-PP.i18n.json => ve_PP.i18n.json} (100%) rename imports/i18n/data/{vi-VN.i18n.json => vi_VN.i18n.json} (100%) rename imports/i18n/data/{vl-SS.i18n.json => vl_SS.i18n.json} (100%) rename imports/i18n/data/{wa-RR.i18n.json => wa_RR.i18n.json} (100%) rename imports/i18n/data/{zh-CN.i18n.json => zh_CN.i18n.json} (100%) rename imports/i18n/data/{zh-GB.i18n.json => zh_GB.i18n.json} (100%) rename imports/i18n/data/{zh-HK.i18n.json => zh_HK.i18n.json} (100%) rename imports/i18n/data/{zh-Hans.i18n.json => zh_Hans.i18n.json} (100%) rename imports/i18n/data/{zh-Hant.i18n.json => zh_Hant.i18n.json} (100%) rename imports/i18n/data/{zh-TW.i18n.json => zh_TW.i18n.json} (100%) rename imports/i18n/data/{zu-ZA.i18n.json => zu_ZA.i18n.json} (100%) diff --git a/.tx/config b/.tx/config index 261af1170..495dc814a 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 = es_419: es-LA, mn_MN: mn, sl_SI: sl, ja_JP: ja, lv_LV: lv, vep: ve-PP, en@ysv: en-YS, hu_HU: hu, ja-Hira: ja-HI, fi_FI: fi, vec: ve-CC, id_ID: id, zh_Hans: zh-Hans, az@latin: az-LA, uz@Latn: uz-LA, vls: vl-SS, uz@Arab: uz-AR, war: wa-RR, zh_CN.GB2312: zh-GB [o:wekan:p:wekan:r:application] file_filter = imports/i18n/data/.i18n.json diff --git a/imports/i18n/data/ar-DZ.i18n.json b/imports/i18n/data/ar_DZ.i18n.json similarity index 100% rename from imports/i18n/data/ar-DZ.i18n.json rename to imports/i18n/data/ar_DZ.i18n.json diff --git a/imports/i18n/data/ar-EG.i18n.json b/imports/i18n/data/ar_EG.i18n.json similarity index 100% rename from imports/i18n/data/ar-EG.i18n.json rename to imports/i18n/data/ar_EG.i18n.json diff --git a/imports/i18n/data/ast-ES.i18n.json b/imports/i18n/data/ast_ES.i18n.json similarity index 100% rename from imports/i18n/data/ast-ES.i18n.json rename to imports/i18n/data/ast_ES.i18n.json diff --git a/imports/i18n/data/az-AZ.i18n.json b/imports/i18n/data/az_AZ.i18n.json similarity index 100% rename from imports/i18n/data/az-AZ.i18n.json rename to imports/i18n/data/az_AZ.i18n.json diff --git a/imports/i18n/data/az-LA.i18n.json b/imports/i18n/data/az_LA.i18n.json similarity index 100% rename from imports/i18n/data/az-LA.i18n.json rename to imports/i18n/data/az_LA.i18n.json diff --git a/imports/i18n/data/cs-CZ.i18n.json b/imports/i18n/data/cs_CZ.i18n.json similarity index 100% rename from imports/i18n/data/cs-CZ.i18n.json rename to imports/i18n/data/cs_CZ.i18n.json diff --git a/imports/i18n/data/cy-GB.i18n.json b/imports/i18n/data/cy_GB.i18n.json similarity index 100% rename from imports/i18n/data/cy-GB.i18n.json rename to imports/i18n/data/cy_GB.i18n.json diff --git a/imports/i18n/data/de-AT.i18n.json b/imports/i18n/data/de_AT.i18n.json similarity index 100% rename from imports/i18n/data/de-AT.i18n.json rename to imports/i18n/data/de_AT.i18n.json diff --git a/imports/i18n/data/de-CH.i18n.json b/imports/i18n/data/de_CH.i18n.json similarity index 100% rename from imports/i18n/data/de-CH.i18n.json rename to imports/i18n/data/de_CH.i18n.json diff --git a/imports/i18n/data/el-GR.i18n.json b/imports/i18n/data/el_GR.i18n.json similarity index 100% rename from imports/i18n/data/el-GR.i18n.json rename to imports/i18n/data/el_GR.i18n.json diff --git a/imports/i18n/data/en-BR.i18n.json b/imports/i18n/data/en_BR.i18n.json similarity index 100% rename from imports/i18n/data/en-BR.i18n.json rename to imports/i18n/data/en_BR.i18n.json diff --git a/imports/i18n/data/en-DE.i18n.json b/imports/i18n/data/en_DE.i18n.json similarity index 100% rename from imports/i18n/data/en-DE.i18n.json rename to imports/i18n/data/en_DE.i18n.json diff --git a/imports/i18n/data/en-GB.i18n.json b/imports/i18n/data/en_GB.i18n.json similarity index 100% rename from imports/i18n/data/en-GB.i18n.json rename to imports/i18n/data/en_GB.i18n.json diff --git a/imports/i18n/data/en-IT.i18n.json b/imports/i18n/data/en_IT.i18n.json similarity index 100% rename from imports/i18n/data/en-IT.i18n.json rename to imports/i18n/data/en_IT.i18n.json diff --git a/imports/i18n/data/en-MY.i18n.json b/imports/i18n/data/en_MY.i18n.json similarity index 100% rename from imports/i18n/data/en-MY.i18n.json rename to imports/i18n/data/en_MY.i18n.json diff --git a/imports/i18n/data/en-YS.i18n.json b/imports/i18n/data/en_YS.i18n.json similarity index 100% rename from imports/i18n/data/en-YS.i18n.json rename to imports/i18n/data/en_YS.i18n.json diff --git a/imports/i18n/data/es-AR.i18n.json b/imports/i18n/data/es_AR.i18n.json similarity index 100% rename from imports/i18n/data/es-AR.i18n.json rename to imports/i18n/data/es_AR.i18n.json diff --git a/imports/i18n/data/es-CL.i18n.json b/imports/i18n/data/es_CL.i18n.json similarity index 100% rename from imports/i18n/data/es-CL.i18n.json rename to imports/i18n/data/es_CL.i18n.json diff --git a/imports/i18n/data/es-LA.i18n.json b/imports/i18n/data/es_LA.i18n.json similarity index 100% rename from imports/i18n/data/es-LA.i18n.json rename to imports/i18n/data/es_LA.i18n.json diff --git a/imports/i18n/data/es-MX.i18n.json b/imports/i18n/data/es_MX.i18n.json similarity index 100% rename from imports/i18n/data/es-MX.i18n.json rename to imports/i18n/data/es_MX.i18n.json diff --git a/imports/i18n/data/es-PE.i18n.json b/imports/i18n/data/es_PE.i18n.json similarity index 100% rename from imports/i18n/data/es-PE.i18n.json rename to imports/i18n/data/es_PE.i18n.json diff --git a/imports/i18n/data/es-PY.i18n.json b/imports/i18n/data/es_PY.i18n.json similarity index 100% rename from imports/i18n/data/es-PY.i18n.json rename to imports/i18n/data/es_PY.i18n.json diff --git a/imports/i18n/data/et-EE.i18n.json b/imports/i18n/data/et_EE.i18n.json similarity index 100% rename from imports/i18n/data/et-EE.i18n.json rename to imports/i18n/data/et_EE.i18n.json diff --git a/imports/i18n/data/fa-IR.i18n.json b/imports/i18n/data/fa_IR.i18n.json similarity index 100% rename from imports/i18n/data/fa-IR.i18n.json rename to imports/i18n/data/fa_IR.i18n.json diff --git a/imports/i18n/data/fr-CH.i18n.json b/imports/i18n/data/fr_CH.i18n.json similarity index 100% rename from imports/i18n/data/fr-CH.i18n.json rename to imports/i18n/data/fr_CH.i18n.json diff --git a/imports/i18n/data/fr-FR.i18n.json b/imports/i18n/data/fr_FR.i18n.json similarity index 100% rename from imports/i18n/data/fr-FR.i18n.json rename to imports/i18n/data/fr_FR.i18n.json diff --git a/imports/i18n/data/fy-NL.i18n.json b/imports/i18n/data/fy_NL.i18n.json similarity index 100% rename from imports/i18n/data/fy-NL.i18n.json rename to imports/i18n/data/fy_NL.i18n.json diff --git a/imports/i18n/data/gl-ES.i18n.json b/imports/i18n/data/gl_ES.i18n.json similarity index 100% rename from imports/i18n/data/gl-ES.i18n.json rename to imports/i18n/data/gl_ES.i18n.json diff --git a/imports/i18n/data/gu-IN.i18n.json b/imports/i18n/data/gu_IN.i18n.json similarity index 100% rename from imports/i18n/data/gu-IN.i18n.json rename to imports/i18n/data/gu_IN.i18n.json diff --git a/imports/i18n/data/he-IL.i18n.json b/imports/i18n/data/he_IL.i18n.json similarity index 100% rename from imports/i18n/data/he-IL.i18n.json rename to imports/i18n/data/he_IL.i18n.json diff --git a/imports/i18n/data/hi-IN.i18n.json b/imports/i18n/data/hi_IN.i18n.json similarity index 100% rename from imports/i18n/data/hi-IN.i18n.json rename to imports/i18n/data/hi_IN.i18n.json diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja_HI.i18n.json similarity index 100% rename from imports/i18n/data/ja-HI.i18n.json rename to imports/i18n/data/ja_HI.i18n.json diff --git a/imports/i18n/data/ko-KR.i18n.json b/imports/i18n/data/ko_KR.i18n.json similarity index 100% rename from imports/i18n/data/ko-KR.i18n.json rename to imports/i18n/data/ko_KR.i18n.json diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms_MY.i18n.json similarity index 100% rename from imports/i18n/data/ms-MY.i18n.json rename to imports/i18n/data/ms_MY.i18n.json diff --git a/imports/i18n/data/nl-NL.i18n.json b/imports/i18n/data/nl_NL.i18n.json similarity index 100% rename from imports/i18n/data/nl-NL.i18n.json rename to imports/i18n/data/nl_NL.i18n.json diff --git a/imports/i18n/data/pl-PL.i18n.json b/imports/i18n/data/pl_PL.i18n.json similarity index 100% rename from imports/i18n/data/pl-PL.i18n.json rename to imports/i18n/data/pl_PL.i18n.json diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt_BR.i18n.json similarity index 100% rename from imports/i18n/data/pt-BR.i18n.json rename to imports/i18n/data/pt_BR.i18n.json diff --git a/imports/i18n/data/ro-RO.i18n.json b/imports/i18n/data/ro_RO.i18n.json similarity index 100% rename from imports/i18n/data/ro-RO.i18n.json rename to imports/i18n/data/ro_RO.i18n.json diff --git a/imports/i18n/data/ru-UA.i18n.json b/imports/i18n/data/ru_UA.i18n.json similarity index 100% rename from imports/i18n/data/ru-UA.i18n.json rename to imports/i18n/data/ru_UA.i18n.json diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk_UA.i18n.json similarity index 100% rename from imports/i18n/data/uk-UA.i18n.json rename to imports/i18n/data/uk_UA.i18n.json diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz_AR.i18n.json similarity index 100% rename from imports/i18n/data/uz-AR.i18n.json rename to imports/i18n/data/uz_AR.i18n.json diff --git a/imports/i18n/data/uz-LA.i18n.json b/imports/i18n/data/uz_LA.i18n.json similarity index 100% rename from imports/i18n/data/uz-LA.i18n.json rename to imports/i18n/data/uz_LA.i18n.json diff --git a/imports/i18n/data/uz-UZ.i18n.json b/imports/i18n/data/uz_UZ.i18n.json similarity index 100% rename from imports/i18n/data/uz-UZ.i18n.json rename to imports/i18n/data/uz_UZ.i18n.json diff --git a/imports/i18n/data/ve-CC.i18n.json b/imports/i18n/data/ve_CC.i18n.json similarity index 100% rename from imports/i18n/data/ve-CC.i18n.json rename to imports/i18n/data/ve_CC.i18n.json diff --git a/imports/i18n/data/ve-PP.i18n.json b/imports/i18n/data/ve_PP.i18n.json similarity index 100% rename from imports/i18n/data/ve-PP.i18n.json rename to imports/i18n/data/ve_PP.i18n.json diff --git a/imports/i18n/data/vi-VN.i18n.json b/imports/i18n/data/vi_VN.i18n.json similarity index 100% rename from imports/i18n/data/vi-VN.i18n.json rename to imports/i18n/data/vi_VN.i18n.json diff --git a/imports/i18n/data/vl-SS.i18n.json b/imports/i18n/data/vl_SS.i18n.json similarity index 100% rename from imports/i18n/data/vl-SS.i18n.json rename to imports/i18n/data/vl_SS.i18n.json diff --git a/imports/i18n/data/wa-RR.i18n.json b/imports/i18n/data/wa_RR.i18n.json similarity index 100% rename from imports/i18n/data/wa-RR.i18n.json rename to imports/i18n/data/wa_RR.i18n.json diff --git a/imports/i18n/data/zh-CN.i18n.json b/imports/i18n/data/zh_CN.i18n.json similarity index 100% rename from imports/i18n/data/zh-CN.i18n.json rename to imports/i18n/data/zh_CN.i18n.json diff --git a/imports/i18n/data/zh-GB.i18n.json b/imports/i18n/data/zh_GB.i18n.json similarity index 100% rename from imports/i18n/data/zh-GB.i18n.json rename to imports/i18n/data/zh_GB.i18n.json diff --git a/imports/i18n/data/zh-HK.i18n.json b/imports/i18n/data/zh_HK.i18n.json similarity index 100% rename from imports/i18n/data/zh-HK.i18n.json rename to imports/i18n/data/zh_HK.i18n.json diff --git a/imports/i18n/data/zh-Hans.i18n.json b/imports/i18n/data/zh_Hans.i18n.json similarity index 100% rename from imports/i18n/data/zh-Hans.i18n.json rename to imports/i18n/data/zh_Hans.i18n.json diff --git a/imports/i18n/data/zh-Hant.i18n.json b/imports/i18n/data/zh_Hant.i18n.json similarity index 100% rename from imports/i18n/data/zh-Hant.i18n.json rename to imports/i18n/data/zh_Hant.i18n.json diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh_TW.i18n.json similarity index 100% rename from imports/i18n/data/zh-TW.i18n.json rename to imports/i18n/data/zh_TW.i18n.json diff --git a/imports/i18n/data/zu-ZA.i18n.json b/imports/i18n/data/zu_ZA.i18n.json similarity index 100% rename from imports/i18n/data/zu-ZA.i18n.json rename to imports/i18n/data/zu_ZA.i18n.json diff --git a/imports/i18n/languages.js b/imports/i18n/languages.js index 68a770c79..731367c75 100644 --- a/imports/i18n/languages.js +++ b/imports/i18n/languages.js @@ -20,18 +20,18 @@ export default { load: () => import('./data/en_ZA.i18n.json'), rtl: "false", }, - "ar-DZ": { + "ar_DZ": { code: "ar", - tag: "ar-DZ", + tag: "ar_DZ", name: "دزيرية", - load: () => import('./data/ar-DZ.i18n.json'), + load: () => import('./data/ar_DZ.i18n.json'), rtl: "true", }, - "ar-EG": { + "ar_EG": { code: "ar", - tag: "ar-EG", + tag: "ar_EG", name: "مَصرى", - load: () => import('./data/ar-EG.i18n.json'), + load: () => import('./data/ar_EG.i18n.json'), rtl: "true", }, "ar": { @@ -48,17 +48,17 @@ export default { load: () => import('./data/ary.i18n.json'), rtl: "true", }, - "az-AZ": { + "az_AZ": { code: "az", - tag: "az-AZ", + tag: "az_AZ", name: "Azərbaycan (Azərbaycan)", - load: () => import('./data/az-AZ.i18n.json'), + load: () => import('./data/az_AZ.i18n.json'), }, - "az-LA": { + "az_LA": { code: "az", - tag: "az-LA", + tag: "az_LA", name: "Azərbaycan (Latin)", - load: () => import('./data/az-LA.i18n.json'), + load: () => import('./data/az_LA.i18n.json'), }, "az": { code: "az", @@ -84,9 +84,9 @@ export default { name: "català", load: () => import('./data/ca.i18n.json'), }, - "ca-ES": { + "ca_ES": { code: "ca", - tag: "ca-ES", + tag: "ca_ES", name: "català (Espanya)", load: () => import('./data/ca_ES.i18n.json'), }, @@ -102,17 +102,17 @@ export default { name: "čeština", load: () => import('./data/cs.i18n.json'), }, - "cs-CZ": { + "cs_CZ": { code: "cs", - tag: "cs-CZ", + tag: "cs_CZ", name: "čeština (Česká republika)", - load: () => import('./data/cs-CZ.i18n.json'), + load: () => import('./data/cs_CZ.i18n.json'), }, - "cy-GB": { + "cy_GB": { code: "cy", - tag: "cy-GB", + tag: "cy_GB", name: "Welsh (UK)", - load: () => import('./data/cy-GB.i18n.json'), + load: () => import('./data/cy_GB.i18n.json'), }, "cy": { code: "cy", @@ -126,21 +126,21 @@ export default { name: "Dansk", load: () => import('./data/da.i18n.json'), }, - "de-AT": { + "de_AT": { code: "de", - tag: "de-AT", + tag: "de_AT", name: "Deutsch (Österreich)", - load: () => import('./data/de-AT.i18n.json'), + load: () => import('./data/de_AT.i18n.json'), }, - "de-CH": { + "de_CH": { code: "de", - tag: "de-CH", + tag: "de_CH", name: "Deutsch (Schweiz)", - load: () => import('./data/de-CH.i18n.json'), + load: () => import('./data/de_CH.i18n.json'), }, - "de-DE": { + "de_DE": { code: "de", - tag: "de-DE", + tag: "de_DE", name: "Deutsch (Deutschland)", load: () => import('./data/de_DE.i18n.json'), }, @@ -150,11 +150,11 @@ export default { name: "Deutsch", load: () => import('./data/de.i18n.json'), }, - "el-GR": { + "el_GR": { code: "el", - tag: "el-GR", + tag: "el_GR", name: "Ελληνικά (Ελλάδα)", - load: () => import('./data/el-GR.i18n.json'), + load: () => import('./data/el_GR.i18n.json'), }, "el": { code: "el", @@ -162,41 +162,41 @@ export default { name: "Ελληνικά", load: () => import('./data/el.i18n.json'), }, - "en-BR": { + "en_BR": { code: "en", - tag: "en-BR", + tag: "en_BR", name: "English (Brazil)", - load: () => import('./data/en-BR.i18n.json'), + load: () => import('./data/en_BR.i18n.json'), }, - "en-DE": { + "en_DE": { code: "en", - tag: "en-DE", + tag: "en_DE", name: "English (Germany)", - load: () => import('./data/en-DE.i18n.json'), + load: () => import('./data/en_DE.i18n.json'), }, - "en-GB": { + "en_GB": { code: "en", - tag: "en-GB", + tag: "en_GB", name: "English (UK)", - load: () => import('./data/en-GB.i18n.json'), + load: () => import('./data/en_GB.i18n.json'), }, - "en-IT": { + "en_IT": { code: "en", - tag: "en-IT", + tag: "en_IT", name: "English (Italy)", - load: () => import('./data/en-IT.i18n.json'), + load: () => import('./data/en_IT.i18n.json'), }, - "en-MY": { + "en_MY": { code: "en", - tag: "en-MY", + tag: "en_MY", name: "English (Malaysia)", - load: () => import('./data/en-MY.i18n.json'), + load: () => import('./data/en_MY.i18n.json'), }, - "en-YS": { + "en_YS": { code: "en", - tag: "en-YS", + tag: "en_YS", name: "English (Yeshivish)", - load: () => import('./data/en-YS.i18n.json'), + load: () => import('./data/en_YS.i18n.json'), }, "en": { code: "en", @@ -210,53 +210,53 @@ export default { name: "Esperanto", load: () => import('./data/eo.i18n.json'), }, - "ast-ES": { + "ast_ES": { code: "es", - tag: "ast-ES", + tag: "ast_ES", name: "español de Asturias", - load: () => import('./data/ast-ES.i18n.json'), + load: () => import('./data/ast_ES.i18n.json'), }, - "es-AR": { + "es_AR": { code: "es", - tag: "es-AR", + tag: "es_AR", name: "español de Argentina", - load: () => import('./data/es-AR.i18n.json'), + load: () => import('./data/es_AR.i18n.json'), }, - "es-CL": { + "es_CL": { code: "es", - tag: "es-CL", + tag: "es_CL", name: "español de Chile", - load: () => import('./data/es-CL.i18n.json'), + load: () => import('./data/es_CL.i18n.json'), }, - "es-CO": { + "es_CO": { code: "es", - tag: "es-CO", + tag: "es_CO", name: "español en Colombia", - load: () => import('./data/es-CO.i18n.json'), + load: () => import('./data/es_CO.i18n.json'), }, - "es-LA": { + "es_LA": { code: "es", - tag: "es-LA", + tag: "es_LA", name: "español de América Latina", - load: () => import('./data/es-LA.i18n.json'), + load: () => import('./data/es_LA.i18n.json'), }, - "es-MX": { + "es_MX": { code: "es", - tag: "es-MX", + tag: "es_MX", name: "español de México", - load: () => import('./data/es-MX.i18n.json'), + load: () => import('./data/es_MX.i18n.json'), }, - "es-PE": { + "es_PE": { code: "es", - tag: "es-PE", + tag: "es_PE", name: "español de Perú", - load: () => import('./data/es-PE.i18n.json'), + load: () => import('./data/es_PE.i18n.json'), }, - "es-PY": { + "es_PY": { code: "es", - tag: "es-PY", + tag: "es_PY", name: "español de Paraguayo", - load: () => import('./data/es-PY.i18n.json'), + load: () => import('./data/es_PY.i18n.json'), }, "es": { code: "es", @@ -264,11 +264,11 @@ export default { name: "español", load: () => import('./data/es.i18n.json'), }, - "et-EE": { + "et_EE": { code: "et", - tag: "et-EE", + tag: "et_EE", name: "eesti keel (Eesti)", - load: () => import('./data/et-EE.i18n.json'), + load: () => import('./data/et_EE.i18n.json'), }, "eu": { code: "eu", @@ -276,11 +276,11 @@ export default { name: "Euskara", load: () => import('./data/eu.i18n.json'), }, - "fa-IR": { + "fa_IR": { code: "fa", - tag: "fa-IR", + tag: "fa_IR", name: "فارسی/پارسی (ایران\u200e)", - load: () => import('./data/fa-IR.i18n.json'), + load: () => import('./data/fa_IR.i18n.json'), rtl: "true", }, "fa": { @@ -296,23 +296,23 @@ export default { name: "Suomi", load: () => import('./data/fi.i18n.json'), }, - "fr-BE": { + "fr_BE": { code: "fr", - tag: "fr-BE", + tag: "fr_BE", name: "Français (Belgique)", - load: () => import('./data/fr-BE.i18n.json'), + load: () => import('./data/fr_BE.i18n.json'), }, - "fr-CA": { + "fr_CA": { code: "fr", - tag: "fr-CA", + tag: "fr_CA", name: "Français (Canada)", - load: () => import('./data/fr-CA.i18n.json'), + load: () => import('./data/fr_CA.i18n.json'), }, - "fr-CH": { + "fr_CH": { code: "fr", - tag: "fr-CH", + tag: "fr_CH", name: "Français (Schweiz)", - load: () => import('./data/fr-CH.i18n.json'), + load: () => import('./data/fr_CH.i18n.json'), }, "fr": { code: "fr", @@ -320,11 +320,11 @@ export default { name: "Français", load: () => import('./data/fr.i18n.json'), }, - "fy-NL": { + "fy_NL": { code: "fy", - tag: "fy-NL", + tag: "fy_NL", name: "Westerlauwersk Frysk (Nederlân)", - load: () => import('./data/fy-NL.i18n.json'), + load: () => import('./data/fy_NL.i18n.json'), }, "fy": { code: "fy", @@ -332,11 +332,11 @@ export default { name: "Westerlauwersk Frysk", load: () => import('./data/fy.i18n.json'), }, - "gl-ES": { + "gl_ES": { code: "gl", - tag: "gl-ES", + tag: "gl_ES", name: "Galego (España)", - load: () => import('./data/gl-ES.i18n.json'), + load: () => import('./data/gl_ES.i18n.json'), }, "gl": { code: "gl", @@ -344,17 +344,17 @@ export default { name: "Galego", load: () => import('./data/gl.i18n.json'), }, - "gu-IN": { + "gu_IN": { code: "gu", - tag: "gu-IN", + tag: "gu_IN", name: "ગુજરાતી", - load: () => import('./data/gu-IN.i18n.json'), + load: () => import('./data/gu_IN.i18n.json'), }, - "he-IL": { + "he_IL": { code: "he", - tag: "he-IL", + tag: "he_IL", name: "עברית (ישראל)", - load: () => import('./data/he-IL.i18n.json'), + load: () => import('./data/he_IL.i18n.json'), rtl: "true", }, "he": { @@ -364,11 +364,11 @@ export default { load: () => import('./data/he.i18n.json'), rtl: "true", }, - "hi-IN": { + "hi_IN": { code: "hi", - tag: "hi-IN", + tag: "hi_IN", name: "हिंदी (भारत)", - load: () => import('./data/hi-IN.i18n.json'), + load: () => import('./data/hi_IN.i18n.json'), }, "hi": { code: "hi", @@ -418,17 +418,17 @@ export default { name: "日本語", load: () => import('./data/ja.i18n.json'), }, - "ja-Hira": { + "ja_Hira": { code: "ja", - tag: "ja-Hira", + tag: "ja_Hira", name: "平仮名", - load: () => import('./data/ja-HI.i18n.json'), + load: () => import('./data/ja_HI.i18n.json'), }, - "ja-JP": { + "ja_JP": { code: "ja", - tag: "ja-JP", + tag: "ja_JP", name: "日本語(日本)", - load: () => import('./data/ja-JP.i18n.json'), + load: () => import('./data/ja_JP.i18n.json'), }, "ka": { code: "ka", @@ -442,11 +442,11 @@ export default { name: "ភាសាខ្មែរ", load: () => import('./data/km.i18n.json'), }, - "ko-KR": { + "ko_KR": { code: "ko", - tag: "ko-KR", + tag: "ko_KR", name: "한국어(한국)", - load: () => import('./data/ko-KR.i18n.json'), + load: () => import('./data/ko_KR.i18n.json'), }, "ko": { code: "ko", @@ -484,11 +484,11 @@ export default { name: "بهاس ملايو", load: () => import('./data/ms.i18n.json'), }, - "ms-MY": { + "ms_MY": { code: "ms", - tag: "ms-MY", + tag: "ms_MY", name: "بهاس ملايو (Malaysia)", - load: () => import('./data/ms-MY.i18n.json'), + load: () => import('./data/ms_MY.i18n.json'), }, "nb": { code: "nb", @@ -496,11 +496,11 @@ export default { name: "Norsk bokmål", load: () => import('./data/nb.i18n.json'), }, - "nl-NL": { + "nl_NL": { code: "nl", - tag: "nl-NL", + tag: "nl_NL", name: "Nederlands (Nederland)", - load: () => import('./data/nl-NL.i18n.json'), + load: () => import('./data/nl_NL.i18n.json'), }, "nl": { code: "nl", @@ -514,9 +514,9 @@ export default { name: "Occitan", load: () => import('./data/oc.i18n.json'), }, - "or-IN": { + "or_IN": { code: "or", - tag: "or-IN", + tag: "or_IN", name: "ଓଡିଆ (ଭାରତ)", load: () => import('./data/or_IN.i18n.json'), }, @@ -526,11 +526,11 @@ export default { name: "ਪੰਜਾਬੀ", load: () => import('./data/pa.i18n.json'), }, - "pl-PL": { + "pl_PL": { code: "pl", - tag: "pl-PL", + tag: "pl_PL", name: "Polski (Polska)", - load: () => import('./data/pl-PL.i18n.json'), + load: () => import('./data/pl_PL.i18n.json'), }, "pl": { code: "pl", @@ -538,11 +538,11 @@ export default { name: "Polski", load: () => import('./data/pl.i18n.json'), }, - "pt-BR": { + "pt_BR": { code: "pt", - tag: "pt-BR", + tag: "pt_BR", name: "Português do Brasil", - load: () => import('./data/pt-BR.i18n.json'), + load: () => import('./data/pt_BR.i18n.json'), }, "pt": { code: "pt", @@ -550,11 +550,11 @@ export default { name: "Português", load: () => import('./data/pt.i18n.json'), }, - "pt-PT": { + "pt_PT": { code: "pt", - tag: "pt-PT", + tag: "pt_PT", name: "Português de Portugal", - load: () => import('./data/pt-PT.i18n.json'), + load: () => import('./data/pt_PT.i18n.json'), }, "ro": { code: "ro", @@ -562,11 +562,11 @@ export default { name: "Română", load: () => import('./data/ro.i18n.json'), }, - "ro-RO": { + "ro_RO": { code: "ro", - tag: "ro-RO", + tag: "ro_RO", name: "Română (România)", - load: () => import('./data/ro-RO.i18n.json'), + load: () => import('./data/ro_RO.i18n.json'), }, "ru": { code: "ru", @@ -610,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", @@ -640,29 +646,29 @@ export default { name: "українська мова", load: () => import('./data/uk.i18n.json'), }, - "uk-UA": { + "uk_UA": { code: "uk", - tag: "uk-UA", + tag: "uk_UA", name: "Українська (Україна)", - load: () => import('./data/uk-UA.i18n.json'), + load: () => import('./data/uk_UA.i18n.json'), }, - "uz-AR": { + "uz_AR": { code: "uz", - tag: "uz-AR", + tag: "uz_AR", name: "o'zbek (arab)", - load: () => import('./data/uz-AR.i18n.json'), + load: () => import('./data/uz_AR.i18n.json'), }, - "uz-LA": { + "uz_LA": { code: "uz", - tag: "uz-LA", + tag: "uz_LA", name: "o'zbek (lotin)", - load: () => import('./data/uz-LA.i18n.json'), + load: () => import('./data/uz_LA.i18n.json'), }, - "uz-UZ": { + "uz_UZ": { code: "uz", - tag: "uz-UZ", + tag: "uz_UZ", name: "o'zbek (O'zbekiston)", - load: () => import('./data/uz-UZ.i18n.json'), + load: () => import('./data/uz_UZ.i18n.json'), }, "uz": { code: "uz", @@ -670,17 +676,17 @@ export default { name: "o'zbek", load: () => import('./data/uz.i18n.json'), }, - "ve-CC": { + "ve_CC": { code: "ve", - tag: "ve-CC", + tag: "ve_CC", name: "vèneto", - load: () => import('./data/ve-CC.i18n.json'), + load: () => import('./data/ve_CC.i18n.json'), }, - "ve-PP": { + "ve_PP": { code: "ve", - tag: "ve-PP", + tag: "ve_PP", name: "vepsän kelʹ", - load: () => import('./data/ve-PP.i18n.json'), + load: () => import('./data/ve_PP.i18n.json'), }, "ve": { code: "ve", @@ -688,11 +694,11 @@ export default { name: "Tshivenḓa", load: () => import('./data/ve.i18n.json'), }, - "vi-VN": { + "vi_VN": { code: "vi", - tag: "vi-VN", + tag: "vi_VN", name: "Tiếng Việt (Việt Nam)", - load: () => import('./data/vi-VN.i18n.json'), + load: () => import('./data/vi_VN.i18n.json'), }, "vi": { code: "vi", @@ -700,11 +706,11 @@ export default { name: "Tiếng Việt", load: () => import('./data/vi.i18n.json'), }, - "vl-SS": { + "vl_SS": { code: "vl", - tag: "vl-SS", + tag: "vl_SS", name: "Vlaams", - load: () => import('./data/vl-SS.i18n.json'), + load: () => import('./data/vl_SS.i18n.json'), }, "vo": { code: "vo", @@ -712,11 +718,11 @@ export default { name: "Volapük", load: () => import('./data/vo.i18n.json'), }, - "wa-RR": { + "wa_RR": { code: "wa", - tag: "wa-RR", - name: "Wáray-Wáray", - load: () => import('./data/wa-RR.i18n.json'), + tag: "wa_RR", + name: "Wáray_Wáray", + load: () => import('./data/wa_RR.i18n.json'), }, "wa": { code: "wa", @@ -760,47 +766,47 @@ export default { name: "廣東話", load: () => import('./data/yue_CN.i18n.json'), }, - "zh-CN": { + "zh_CN": { code: "zh", - tag: "zh-CN", + tag: "zh_CN", name: "简体中文", - load: () => import('./data/zh-CN.i18n.json'), + load: () => import('./data/zh_CN.i18n.json'), }, - "zh-GB": { + "zh_GB": { code: "zh", - tag: "zh-GB", + tag: "zh_GB", name: "简体中文 GB2312", - load: () => import('./data/zh-GB.i18n.json'), + load: () => import('./data/zh_GB.i18n.json'), }, - "zh-Hans": { + "zh_Hans": { code: "zh", - tag: "zh-Hans", + tag: "zh_Hans", name: "简化字", - load: () => import('./data/zh-Hans.i18n.json'), + load: () => import('./data/zh_Hans.i18n.json'), }, - "zh-Hant": { + "zh_Hant": { code: "zh", - tag: "zh-Hant", + tag: "zh_Hant", name: "正體字", - load: () => import('./data/zh-Hant.i18n.json'), + load: () => import('./data/zh_Hant.i18n.json'), }, - "zh-HK": { + "zh_HK": { code: "zh", - tag: "zh-HK", + tag: "zh_HK", name: "繁体中文(香港)", - load: () => import('./data/zh-HK.i18n.json'), + load: () => import('./data/zh_HK.i18n.json'), }, - "zh-TW": { + "zh_TW": { code: "zh", - tag: "zh-TW", + tag: "zh_TW", name: "繁體中文(台灣)", - load: () => import('./data/zh-TW.i18n.json'), + load: () => import('./data/zh_TW.i18n.json'), }, - "zu-ZA": { + "zu_ZA": { code: "zu", - tag: "zu-ZA", + tag: "zu_ZA", name: "isiZulu (Ningizimu Afrika)", - load: () => import('./data/zu-ZA.i18n.json'), + load: () => import('./data/zu_ZA.i18n.json'), }, "zu": { code: "zu", From 8bb089fe0721866824d1e7f04bc6ae044b606b05 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 31 Dec 2024 00:37:44 +0200 Subject: [PATCH 261/356] Updated translations. --- .tx/config | 2 +- imports/i18n/data/af.i18n.json | 1 + imports/i18n/data/af_ZA.i18n.json | 1 + .../data/{ar_DZ.i18n.json => ar-DZ.i18n.json} | 1 + .../data/{ar_EG.i18n.json => ar-EG.i18n.json} | 1 + imports/i18n/data/ar.i18n.json | 1 + imports/i18n/data/ary.i18n.json | 1 + .../{ast_ES.i18n.json => ast-ES.i18n.json} | 1 + .../data/{az_AZ.i18n.json => az-AZ.i18n.json} | 1 + imports/i18n/data/az-LA.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/az.i18n.json | 1 + imports/i18n/data/az_LA.i18n.json | 1269 ---------------- imports/i18n/data/bg.i18n.json | 1 + imports/i18n/data/br.i18n.json | 1 + imports/i18n/data/ca.i18n.json | 1 + imports/i18n/data/ca_ES.i18n.json | 1 + imports/i18n/data/cmn.i18n.json | 1 + .../data/{cs_CZ.i18n.json => cs-CZ.i18n.json} | 1 + imports/i18n/data/cs.i18n.json | 1 + imports/i18n/data/cy-GB.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/cy.i18n.json | 1 + imports/i18n/data/cy_GB.i18n.json | 1269 ---------------- imports/i18n/data/da.i18n.json | 1 + .../data/{de_AT.i18n.json => de-AT.i18n.json} | 1 + .../data/{de_CH.i18n.json => de-CH.i18n.json} | 1 + imports/i18n/data/de.i18n.json | 1 + imports/i18n/data/de_DE.i18n.json | 1 + .../data/{el_GR.i18n.json => el-GR.i18n.json} | 1 + imports/i18n/data/el.i18n.json | 1 + imports/i18n/data/en-BR.i18n.json | 1270 +++++++++++++++++ .../data/{en_DE.i18n.json => en-DE.i18n.json} | 1 + .../data/{en_GB.i18n.json => en-GB.i18n.json} | 1 + imports/i18n/data/en-IT.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/en-MY.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/en-YS.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/en_BR.i18n.json | 1269 ---------------- imports/i18n/data/en_IT.i18n.json | 1269 ---------------- imports/i18n/data/en_MY.i18n.json | 1269 ---------------- imports/i18n/data/en_TR.i18n.json | 1 + imports/i18n/data/en_YS.i18n.json | 1269 ---------------- imports/i18n/data/en_ZA.i18n.json | 1 + imports/i18n/data/eo.i18n.json | 1 + .../data/{es_AR.i18n.json => es-AR.i18n.json} | 1 + .../data/{es_CL.i18n.json => es-CL.i18n.json} | 1 + .../data/{es_LA.i18n.json => es-LA.i18n.json} | 1 + .../data/{es_MX.i18n.json => es-MX.i18n.json} | 1 + .../data/{es_PE.i18n.json => es-PE.i18n.json} | 1 + .../data/{es_PY.i18n.json => es-PY.i18n.json} | 1 + imports/i18n/data/es.i18n.json | 1 + imports/i18n/data/es_CO.i18n.json | 1 + .../data/{et_EE.i18n.json => et-EE.i18n.json} | 1 + imports/i18n/data/eu.i18n.json | 1 + .../data/{fa_IR.i18n.json => fa-IR.i18n.json} | 1 + imports/i18n/data/fa.i18n.json | 1 + imports/i18n/data/fi.i18n.json | 1 + .../data/{fr_CH.i18n.json => fr-CH.i18n.json} | 1 + .../data/{fr_FR.i18n.json => fr-FR.i18n.json} | 1 + imports/i18n/data/fr.i18n.json | 1 + .../data/{fy_NL.i18n.json => fy-NL.i18n.json} | 1 + imports/i18n/data/fy.i18n.json | 1 + .../data/{gl_ES.i18n.json => gl-ES.i18n.json} | 1 + imports/i18n/data/gl.i18n.json | 1 + imports/i18n/data/gu-IN.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/gu_IN.i18n.json | 1269 ---------------- .../data/{he_IL.i18n.json => he-IL.i18n.json} | 1 + imports/i18n/data/he.i18n.json | 1 + .../data/{hi_IN.i18n.json => hi-IN.i18n.json} | 1 + imports/i18n/data/hi.i18n.json | 1 + imports/i18n/data/hr.i18n.json | 1 + imports/i18n/data/hu.i18n.json | 1 + imports/i18n/data/hy.i18n.json | 1 + imports/i18n/data/id.i18n.json | 1 + imports/i18n/data/ig.i18n.json | 1 + imports/i18n/data/it.i18n.json | 1 + .../data/{ja_HI.i18n.json => ja-HI.i18n.json} | 1 + imports/i18n/data/ja.i18n.json | 1 + imports/i18n/data/ka.i18n.json | 1 + imports/i18n/data/km.i18n.json | 1 + .../data/{ko_KR.i18n.json => ko-KR.i18n.json} | 1 + imports/i18n/data/ko.i18n.json | 1 + imports/i18n/data/lt.i18n.json | 1 + imports/i18n/data/lv.i18n.json | 1 + imports/i18n/data/mk.i18n.json | 1 + imports/i18n/data/mn.i18n.json | 1 + imports/i18n/data/ms-MY.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/ms.i18n.json | 1 + imports/i18n/data/ms_MY.i18n.json | 1269 ---------------- imports/i18n/data/nb.i18n.json | 1 + .../data/{nl_NL.i18n.json => nl-NL.i18n.json} | 1 + imports/i18n/data/nl.i18n.json | 1 + imports/i18n/data/oc.i18n.json | 1 + imports/i18n/data/or_IN.i18n.json | 1 + imports/i18n/data/pa.i18n.json | 1 + .../data/{pl_PL.i18n.json => pl-PL.i18n.json} | 1 + imports/i18n/data/pl.i18n.json | 1 + .../data/{pt_BR.i18n.json => pt-BR.i18n.json} | 1 + imports/i18n/data/pt.i18n.json | 1 + imports/i18n/data/pt_PT.i18n.json | 1 + .../data/{ro_RO.i18n.json => ro-RO.i18n.json} | 1 + imports/i18n/data/ro.i18n.json | 1 + .../data/{ru_UA.i18n.json => ru-UA.i18n.json} | 1 + imports/i18n/data/ru.i18n.json | 1 + imports/i18n/data/sk.i18n.json | 1 + imports/i18n/data/sl.i18n.json | 1 + imports/i18n/data/sr.i18n.json | 1 + imports/i18n/data/sv.i18n.json | 1 + imports/i18n/data/sw.i18n.json | 1 + imports/i18n/data/ta.i18n.json | 1 + imports/i18n/data/te-IN.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/th.i18n.json | 1 + imports/i18n/data/tk_TM.i18n.json | 1 + imports/i18n/data/tlh.i18n.json | 1 + imports/i18n/data/tr.i18n.json | 1 + imports/i18n/data/ug.i18n.json | 1 + .../data/{uk_UA.i18n.json => uk-UA.i18n.json} | 1 + imports/i18n/data/uk.i18n.json | 1 + imports/i18n/data/uz-AR.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/uz-LA.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/uz-UZ.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/uz.i18n.json | 1 + imports/i18n/data/uz_AR.i18n.json | 1269 ---------------- imports/i18n/data/uz_LA.i18n.json | 1269 ---------------- imports/i18n/data/uz_UZ.i18n.json | 1269 ---------------- imports/i18n/data/ve-CC.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/ve-PP.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/ve.i18n.json | 1 + imports/i18n/data/ve_CC.i18n.json | 1269 ---------------- imports/i18n/data/ve_PP.i18n.json | 1269 ---------------- .../data/{vi_VN.i18n.json => vi-VN.i18n.json} | 1 + imports/i18n/data/vi.i18n.json | 1 + imports/i18n/data/vl-SS.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/vl_SS.i18n.json | 1269 ---------------- imports/i18n/data/vo.i18n.json | 1 + imports/i18n/data/wa-RR.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/wa.i18n.json | 1 + imports/i18n/data/wa_RR.i18n.json | 1269 ---------------- imports/i18n/data/wo.i18n.json | 1 + imports/i18n/data/xh.i18n.json | 1 + imports/i18n/data/yi.i18n.json | 1 + imports/i18n/data/yo.i18n.json | 1 + imports/i18n/data/yue_CN.i18n.json | 1 + imports/i18n/data/zgh.i18n.json | 1 + .../data/{zh_CN.i18n.json => zh-CN.i18n.json} | 1 + .../data/{zh_GB.i18n.json => zh-GB.i18n.json} | 1 + .../data/{zh_HK.i18n.json => zh-HK.i18n.json} | 1 + .../{zh_Hans.i18n.json => zh-Hans.i18n.json} | 1 + imports/i18n/data/zh-Hant.i18n.json | 1270 +++++++++++++++++ .../data/{zh_TW.i18n.json => zh-TW.i18n.json} | 1 + imports/i18n/data/zh.i18n.json | 1 + imports/i18n/data/zh_Hant.i18n.json | 1269 ---------------- imports/i18n/data/zu-ZA.i18n.json | 1270 +++++++++++++++++ imports/i18n/data/zu.i18n.json | 1 + imports/i18n/data/zu_ZA.i18n.json | 1269 ---------------- imports/i18n/languages.js | 366 ++--- 154 files changed, 23161 insertions(+), 21757 deletions(-) rename imports/i18n/data/{ar_DZ.i18n.json => ar-DZ.i18n.json} (99%) rename imports/i18n/data/{ar_EG.i18n.json => ar-EG.i18n.json} (99%) rename imports/i18n/data/{ast_ES.i18n.json => ast-ES.i18n.json} (99%) rename imports/i18n/data/{az_AZ.i18n.json => az-AZ.i18n.json} (99%) create mode 100644 imports/i18n/data/az-LA.i18n.json delete mode 100644 imports/i18n/data/az_LA.i18n.json rename imports/i18n/data/{cs_CZ.i18n.json => cs-CZ.i18n.json} (99%) create mode 100644 imports/i18n/data/cy-GB.i18n.json delete mode 100644 imports/i18n/data/cy_GB.i18n.json rename imports/i18n/data/{de_AT.i18n.json => de-AT.i18n.json} (99%) rename imports/i18n/data/{de_CH.i18n.json => de-CH.i18n.json} (99%) rename imports/i18n/data/{el_GR.i18n.json => el-GR.i18n.json} (99%) create mode 100644 imports/i18n/data/en-BR.i18n.json rename imports/i18n/data/{en_DE.i18n.json => en-DE.i18n.json} (99%) rename imports/i18n/data/{en_GB.i18n.json => en-GB.i18n.json} (99%) create mode 100644 imports/i18n/data/en-IT.i18n.json create mode 100644 imports/i18n/data/en-MY.i18n.json create mode 100644 imports/i18n/data/en-YS.i18n.json delete mode 100644 imports/i18n/data/en_BR.i18n.json delete mode 100644 imports/i18n/data/en_IT.i18n.json delete mode 100644 imports/i18n/data/en_MY.i18n.json delete mode 100644 imports/i18n/data/en_YS.i18n.json rename imports/i18n/data/{es_AR.i18n.json => es-AR.i18n.json} (99%) rename imports/i18n/data/{es_CL.i18n.json => es-CL.i18n.json} (99%) rename imports/i18n/data/{es_LA.i18n.json => es-LA.i18n.json} (99%) rename imports/i18n/data/{es_MX.i18n.json => es-MX.i18n.json} (99%) rename imports/i18n/data/{es_PE.i18n.json => es-PE.i18n.json} (99%) rename imports/i18n/data/{es_PY.i18n.json => es-PY.i18n.json} (99%) rename imports/i18n/data/{et_EE.i18n.json => et-EE.i18n.json} (99%) rename imports/i18n/data/{fa_IR.i18n.json => fa-IR.i18n.json} (99%) rename imports/i18n/data/{fr_CH.i18n.json => fr-CH.i18n.json} (99%) rename imports/i18n/data/{fr_FR.i18n.json => fr-FR.i18n.json} (99%) rename imports/i18n/data/{fy_NL.i18n.json => fy-NL.i18n.json} (99%) rename imports/i18n/data/{gl_ES.i18n.json => gl-ES.i18n.json} (99%) create mode 100644 imports/i18n/data/gu-IN.i18n.json delete mode 100644 imports/i18n/data/gu_IN.i18n.json rename imports/i18n/data/{he_IL.i18n.json => he-IL.i18n.json} (99%) rename imports/i18n/data/{hi_IN.i18n.json => hi-IN.i18n.json} (99%) rename imports/i18n/data/{ja_HI.i18n.json => ja-HI.i18n.json} (99%) rename imports/i18n/data/{ko_KR.i18n.json => ko-KR.i18n.json} (99%) create mode 100644 imports/i18n/data/ms-MY.i18n.json delete mode 100644 imports/i18n/data/ms_MY.i18n.json rename imports/i18n/data/{nl_NL.i18n.json => nl-NL.i18n.json} (99%) rename imports/i18n/data/{pl_PL.i18n.json => pl-PL.i18n.json} (99%) rename imports/i18n/data/{pt_BR.i18n.json => pt-BR.i18n.json} (99%) rename imports/i18n/data/{ro_RO.i18n.json => ro-RO.i18n.json} (99%) rename imports/i18n/data/{ru_UA.i18n.json => ru-UA.i18n.json} (99%) create mode 100644 imports/i18n/data/te-IN.i18n.json rename imports/i18n/data/{uk_UA.i18n.json => uk-UA.i18n.json} (99%) create mode 100644 imports/i18n/data/uz-AR.i18n.json create mode 100644 imports/i18n/data/uz-LA.i18n.json create mode 100644 imports/i18n/data/uz-UZ.i18n.json delete mode 100644 imports/i18n/data/uz_AR.i18n.json delete mode 100644 imports/i18n/data/uz_LA.i18n.json delete mode 100644 imports/i18n/data/uz_UZ.i18n.json create mode 100644 imports/i18n/data/ve-CC.i18n.json create mode 100644 imports/i18n/data/ve-PP.i18n.json delete mode 100644 imports/i18n/data/ve_CC.i18n.json delete mode 100644 imports/i18n/data/ve_PP.i18n.json rename imports/i18n/data/{vi_VN.i18n.json => vi-VN.i18n.json} (99%) create mode 100644 imports/i18n/data/vl-SS.i18n.json delete mode 100644 imports/i18n/data/vl_SS.i18n.json create mode 100644 imports/i18n/data/wa-RR.i18n.json delete mode 100644 imports/i18n/data/wa_RR.i18n.json rename imports/i18n/data/{zh_CN.i18n.json => zh-CN.i18n.json} (99%) rename imports/i18n/data/{zh_GB.i18n.json => zh-GB.i18n.json} (99%) rename imports/i18n/data/{zh_HK.i18n.json => zh-HK.i18n.json} (99%) rename imports/i18n/data/{zh_Hans.i18n.json => zh-Hans.i18n.json} (99%) create mode 100644 imports/i18n/data/zh-Hant.i18n.json rename imports/i18n/data/{zh_TW.i18n.json => zh-TW.i18n.json} (99%) delete mode 100644 imports/i18n/data/zh_Hant.i18n.json create mode 100644 imports/i18n/data/zu-ZA.i18n.json delete mode 100644 imports/i18n/data/zu_ZA.i18n.json diff --git a/.tx/config b/.tx/config index 495dc814a..7745b5608 100644 --- a/.tx/config +++ b/.tx/config @@ -1,6 +1,6 @@ [main] host = https://www.transifex.com -lang_map = es_419: es-LA, mn_MN: mn, sl_SI: sl, ja_JP: ja, lv_LV: lv, vep: ve-PP, en@ysv: en-YS, hu_HU: hu, ja-Hira: ja-HI, fi_FI: fi, vec: ve-CC, id_ID: id, zh_Hans: zh-Hans, az@latin: az-LA, uz@Latn: uz-LA, vls: vl-SS, uz@Arab: uz-AR, 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/imports/i18n/data/af.i18n.json b/imports/i18n/data/af.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/af.i18n.json +++ b/imports/i18n/data/af.i18n.json @@ -383,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", diff --git a/imports/i18n/data/af_ZA.i18n.json b/imports/i18n/data/af_ZA.i18n.json index f833b2919..eabb5d012 100644 --- a/imports/i18n/data/af_ZA.i18n.json +++ b/imports/i18n/data/af_ZA.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ar_DZ.i18n.json b/imports/i18n/data/ar-DZ.i18n.json similarity index 99% rename from imports/i18n/data/ar_DZ.i18n.json rename to imports/i18n/data/ar-DZ.i18n.json index 95e0c77b1..f3a04d4b8 100644 --- a/imports/i18n/data/ar_DZ.i18n.json +++ b/imports/i18n/data/ar-DZ.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ar_EG.i18n.json b/imports/i18n/data/ar-EG.i18n.json similarity index 99% rename from imports/i18n/data/ar_EG.i18n.json rename to imports/i18n/data/ar-EG.i18n.json index 95e0c77b1..f3a04d4b8 100644 --- a/imports/i18n/data/ar_EG.i18n.json +++ b/imports/i18n/data/ar-EG.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index 85e4093fc..d14228ad3 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ary.i18n.json b/imports/i18n/data/ary.i18n.json index 95e0c77b1..f3a04d4b8 100644 --- a/imports/i18n/data/ary.i18n.json +++ b/imports/i18n/data/ary.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ast_ES.i18n.json b/imports/i18n/data/ast-ES.i18n.json similarity index 99% rename from imports/i18n/data/ast_ES.i18n.json rename to imports/i18n/data/ast-ES.i18n.json index 95e0c77b1..f3a04d4b8 100644 --- a/imports/i18n/data/ast_ES.i18n.json +++ b/imports/i18n/data/ast-ES.i18n.json @@ -383,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", diff --git a/imports/i18n/data/az_AZ.i18n.json b/imports/i18n/data/az-AZ.i18n.json similarity index 99% rename from imports/i18n/data/az_AZ.i18n.json rename to imports/i18n/data/az-AZ.i18n.json index 95e0c77b1..f3a04d4b8 100644 --- a/imports/i18n/data/az_AZ.i18n.json +++ b/imports/i18n/data/az-AZ.i18n.json @@ -383,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", diff --git a/imports/i18n/data/az-LA.i18n.json b/imports/i18n/data/az-LA.i18n.json new file mode 100644 index 000000000..f3a04d4b8 --- /dev/null +++ b/imports/i18n/data/az-LA.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/az.i18n.json b/imports/i18n/data/az.i18n.json index 95e0c77b1..f3a04d4b8 100644 --- a/imports/i18n/data/az.i18n.json +++ b/imports/i18n/data/az.i18n.json @@ -383,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", diff --git a/imports/i18n/data/az_LA.i18n.json b/imports/i18n/data/az_LA.i18n.json deleted file mode 100644 index 95e0c77b1..000000000 --- a/imports/i18n/data/az_LA.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/bg.i18n.json b/imports/i18n/data/bg.i18n.json index c4e626a61..d1b13653f 100644 --- a/imports/i18n/data/bg.i18n.json +++ b/imports/i18n/data/bg.i18n.json @@ -383,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": "За да направите това трябва да сте администратор на това табло", diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index c6c90fe27..fd0bcf72d 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ca.i18n.json b/imports/i18n/data/ca.i18n.json index 92d40d58a..7b5477da4 100644 --- a/imports/i18n/data/ca.i18n.json +++ b/imports/i18n/data/ca.i18n.json @@ -383,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ó", diff --git a/imports/i18n/data/ca_ES.i18n.json b/imports/i18n/data/ca_ES.i18n.json index e441593b3..df194004d 100644 --- a/imports/i18n/data/ca_ES.i18n.json +++ b/imports/i18n/data/ca_ES.i18n.json @@ -383,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", diff --git a/imports/i18n/data/cmn.i18n.json b/imports/i18n/data/cmn.i18n.json index da813e035..5c99ba0c6 100644 --- a/imports/i18n/data/cmn.i18n.json +++ b/imports/i18n/data/cmn.i18n.json @@ -383,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", diff --git a/imports/i18n/data/cs_CZ.i18n.json b/imports/i18n/data/cs-CZ.i18n.json similarity index 99% rename from imports/i18n/data/cs_CZ.i18n.json rename to imports/i18n/data/cs-CZ.i18n.json index 274b9f33f..6519e8738 100644 --- a/imports/i18n/data/cs_CZ.i18n.json +++ b/imports/i18n/data/cs-CZ.i18n.json @@ -383,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", diff --git a/imports/i18n/data/cs.i18n.json b/imports/i18n/data/cs.i18n.json index 6a18f2784..cb8eb9998 100644 --- a/imports/i18n/data/cs.i18n.json +++ b/imports/i18n/data/cs.i18n.json @@ -383,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", diff --git a/imports/i18n/data/cy-GB.i18n.json b/imports/i18n/data/cy-GB.i18n.json new file mode 100644 index 000000000..f3a04d4b8 --- /dev/null +++ b/imports/i18n/data/cy-GB.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/cy.i18n.json b/imports/i18n/data/cy.i18n.json index 95e0c77b1..f3a04d4b8 100644 --- a/imports/i18n/data/cy.i18n.json +++ b/imports/i18n/data/cy.i18n.json @@ -383,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", diff --git a/imports/i18n/data/cy_GB.i18n.json b/imports/i18n/data/cy_GB.i18n.json deleted file mode 100644 index 95e0c77b1..000000000 --- a/imports/i18n/data/cy_GB.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/da.i18n.json b/imports/i18n/data/da.i18n.json index 988e5f938..112a4af95 100644 --- a/imports/i18n/data/da.i18n.json +++ b/imports/i18n/data/da.i18n.json @@ -383,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", diff --git a/imports/i18n/data/de_AT.i18n.json b/imports/i18n/data/de-AT.i18n.json similarity index 99% rename from imports/i18n/data/de_AT.i18n.json rename to imports/i18n/data/de-AT.i18n.json index 2f06ada4c..18a7c9d4c 100644 --- a/imports/i18n/data/de_AT.i18n.json +++ b/imports/i18n/data/de-AT.i18n.json @@ -383,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", diff --git a/imports/i18n/data/de_CH.i18n.json b/imports/i18n/data/de-CH.i18n.json similarity index 99% rename from imports/i18n/data/de_CH.i18n.json rename to imports/i18n/data/de-CH.i18n.json index 37e87a857..207657e00 100644 --- a/imports/i18n/data/de_CH.i18n.json +++ b/imports/i18n/data/de-CH.i18n.json @@ -383,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", diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index e74d92156..2b6fb6ed1 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -383,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", diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index 7f1cdccbb..c4111ab7f 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -383,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", diff --git a/imports/i18n/data/el_GR.i18n.json b/imports/i18n/data/el-GR.i18n.json similarity index 99% rename from imports/i18n/data/el_GR.i18n.json rename to imports/i18n/data/el-GR.i18n.json index e07fb12a6..d16dc726b 100644 --- a/imports/i18n/data/el_GR.i18n.json +++ b/imports/i18n/data/el-GR.i18n.json @@ -383,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": "Πρέπει να είστε διαχειριστής του πίνακα αυτού για να προβείτε σε αυτό", diff --git a/imports/i18n/data/el.i18n.json b/imports/i18n/data/el.i18n.json index 4321bd650..4ef6140dd 100644 --- a/imports/i18n/data/el.i18n.json +++ b/imports/i18n/data/el.i18n.json @@ -383,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": "Πρέπει να είστε διαχειριστής του πίνακα αυτού για να προβείτε σε αυτό", diff --git a/imports/i18n/data/en-BR.i18n.json b/imports/i18n/data/en-BR.i18n.json new file mode 100644 index 000000000..f3a04d4b8 --- /dev/null +++ b/imports/i18n/data/en-BR.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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_DE.i18n.json b/imports/i18n/data/en-DE.i18n.json similarity index 99% rename from imports/i18n/data/en_DE.i18n.json rename to imports/i18n/data/en-DE.i18n.json index 12c07a73a..45512bd51 100644 --- a/imports/i18n/data/en_DE.i18n.json +++ b/imports/i18n/data/en-DE.i18n.json @@ -383,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", diff --git a/imports/i18n/data/en_GB.i18n.json b/imports/i18n/data/en-GB.i18n.json similarity index 99% rename from imports/i18n/data/en_GB.i18n.json rename to imports/i18n/data/en-GB.i18n.json index 97b744778..db3517bae 100644 --- a/imports/i18n/data/en_GB.i18n.json +++ b/imports/i18n/data/en-GB.i18n.json @@ -383,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", diff --git a/imports/i18n/data/en-IT.i18n.json b/imports/i18n/data/en-IT.i18n.json new file mode 100644 index 000000000..f3a04d4b8 --- /dev/null +++ b/imports/i18n/data/en-IT.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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-MY.i18n.json b/imports/i18n/data/en-MY.i18n.json new file mode 100644 index 000000000..f3a04d4b8 --- /dev/null +++ b/imports/i18n/data/en-MY.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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-YS.i18n.json b/imports/i18n/data/en-YS.i18n.json new file mode 100644 index 000000000..f3a04d4b8 --- /dev/null +++ b/imports/i18n/data/en-YS.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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_BR.i18n.json b/imports/i18n/data/en_BR.i18n.json deleted file mode 100644 index 95e0c77b1..000000000 --- a/imports/i18n/data/en_BR.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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_IT.i18n.json b/imports/i18n/data/en_IT.i18n.json deleted file mode 100644 index 95e0c77b1..000000000 --- a/imports/i18n/data/en_IT.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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_MY.i18n.json b/imports/i18n/data/en_MY.i18n.json deleted file mode 100644 index 95e0c77b1..000000000 --- a/imports/i18n/data/en_MY.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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 index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/en_TR.i18n.json +++ b/imports/i18n/data/en_TR.i18n.json @@ -383,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", diff --git a/imports/i18n/data/en_YS.i18n.json b/imports/i18n/data/en_YS.i18n.json deleted file mode 100644 index 95e0c77b1..000000000 --- a/imports/i18n/data/en_YS.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/en_ZA.i18n.json +++ b/imports/i18n/data/en_ZA.i18n.json @@ -383,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", diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index bc9f0e01c..af02f56a8 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -383,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", diff --git a/imports/i18n/data/es_AR.i18n.json b/imports/i18n/data/es-AR.i18n.json similarity index 99% rename from imports/i18n/data/es_AR.i18n.json rename to imports/i18n/data/es-AR.i18n.json index cafd15bf6..25019b45d 100644 --- a/imports/i18n/data/es_AR.i18n.json +++ b/imports/i18n/data/es-AR.i18n.json @@ -383,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", diff --git a/imports/i18n/data/es_CL.i18n.json b/imports/i18n/data/es-CL.i18n.json similarity index 99% rename from imports/i18n/data/es_CL.i18n.json rename to imports/i18n/data/es-CL.i18n.json index 12aa3094e..20cb1b507 100644 --- a/imports/i18n/data/es_CL.i18n.json +++ b/imports/i18n/data/es-CL.i18n.json @@ -383,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", diff --git a/imports/i18n/data/es_LA.i18n.json b/imports/i18n/data/es-LA.i18n.json similarity index 99% rename from imports/i18n/data/es_LA.i18n.json rename to imports/i18n/data/es-LA.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/es_LA.i18n.json +++ b/imports/i18n/data/es-LA.i18n.json @@ -383,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", diff --git a/imports/i18n/data/es_MX.i18n.json b/imports/i18n/data/es-MX.i18n.json similarity index 99% rename from imports/i18n/data/es_MX.i18n.json rename to imports/i18n/data/es-MX.i18n.json index dd5fa31f3..439dea796 100644 --- a/imports/i18n/data/es_MX.i18n.json +++ b/imports/i18n/data/es-MX.i18n.json @@ -383,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", diff --git a/imports/i18n/data/es_PE.i18n.json b/imports/i18n/data/es-PE.i18n.json similarity index 99% rename from imports/i18n/data/es_PE.i18n.json rename to imports/i18n/data/es-PE.i18n.json index c517a7844..3e015ad9f 100644 --- a/imports/i18n/data/es_PE.i18n.json +++ b/imports/i18n/data/es-PE.i18n.json @@ -383,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", diff --git a/imports/i18n/data/es_PY.i18n.json b/imports/i18n/data/es-PY.i18n.json similarity index 99% rename from imports/i18n/data/es_PY.i18n.json rename to imports/i18n/data/es-PY.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/es_PY.i18n.json +++ b/imports/i18n/data/es-PY.i18n.json @@ -383,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", diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 1b80196de..a48bc7fdc 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -383,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", diff --git a/imports/i18n/data/es_CO.i18n.json b/imports/i18n/data/es_CO.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/es_CO.i18n.json +++ b/imports/i18n/data/es_CO.i18n.json @@ -383,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", diff --git a/imports/i18n/data/et_EE.i18n.json b/imports/i18n/data/et-EE.i18n.json similarity index 99% rename from imports/i18n/data/et_EE.i18n.json rename to imports/i18n/data/et-EE.i18n.json index 936fa1e6e..5782a5a3a 100644 --- a/imports/i18n/data/et_EE.i18n.json +++ b/imports/i18n/data/et-EE.i18n.json @@ -383,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.", diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 93a4c81c5..72c68ad4c 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -383,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": "Enable vertical scrollbars", "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", diff --git a/imports/i18n/data/fa_IR.i18n.json b/imports/i18n/data/fa-IR.i18n.json similarity index 99% rename from imports/i18n/data/fa_IR.i18n.json rename to imports/i18n/data/fa-IR.i18n.json index 5143dd6bd..7689d6c46 100644 --- a/imports/i18n/data/fa_IR.i18n.json +++ b/imports/i18n/data/fa-IR.i18n.json @@ -383,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": "شما جهت انجام آن باید مدیر برد باشید", diff --git a/imports/i18n/data/fa.i18n.json b/imports/i18n/data/fa.i18n.json index 76e35442a..fbb5ff195 100644 --- a/imports/i18n/data/fa.i18n.json +++ b/imports/i18n/data/fa.i18n.json @@ -383,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": "شما جهت انجام آن باید مدیر برد باشید", diff --git a/imports/i18n/data/fi.i18n.json b/imports/i18n/data/fi.i18n.json index 0c95a0f55..abb1d2b83 100644 --- a/imports/i18n/data/fi.i18n.json +++ b/imports/i18n/data/fi.i18n.json @@ -383,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": "Enable vertical scrollbars", "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ä", diff --git a/imports/i18n/data/fr_CH.i18n.json b/imports/i18n/data/fr-CH.i18n.json similarity index 99% rename from imports/i18n/data/fr_CH.i18n.json rename to imports/i18n/data/fr-CH.i18n.json index 1d5d20cf8..f7309a9c5 100644 --- a/imports/i18n/data/fr_CH.i18n.json +++ b/imports/i18n/data/fr-CH.i18n.json @@ -383,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", diff --git a/imports/i18n/data/fr_FR.i18n.json b/imports/i18n/data/fr-FR.i18n.json similarity index 99% rename from imports/i18n/data/fr_FR.i18n.json rename to imports/i18n/data/fr-FR.i18n.json index 49f484b08..49dce9563 100644 --- a/imports/i18n/data/fr_FR.i18n.json +++ b/imports/i18n/data/fr-FR.i18n.json @@ -383,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", diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index c57345a31..0ad6a972d 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -383,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", diff --git a/imports/i18n/data/fy_NL.i18n.json b/imports/i18n/data/fy-NL.i18n.json similarity index 99% rename from imports/i18n/data/fy_NL.i18n.json rename to imports/i18n/data/fy-NL.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/fy_NL.i18n.json +++ b/imports/i18n/data/fy-NL.i18n.json @@ -383,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", diff --git a/imports/i18n/data/fy.i18n.json b/imports/i18n/data/fy.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/fy.i18n.json +++ b/imports/i18n/data/fy.i18n.json @@ -383,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", diff --git a/imports/i18n/data/gl_ES.i18n.json b/imports/i18n/data/gl-ES.i18n.json similarity index 99% rename from imports/i18n/data/gl_ES.i18n.json rename to imports/i18n/data/gl-ES.i18n.json index 2c680f386..5e464d475 100644 --- a/imports/i18n/data/gl_ES.i18n.json +++ b/imports/i18n/data/gl-ES.i18n.json @@ -383,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", diff --git a/imports/i18n/data/gl.i18n.json b/imports/i18n/data/gl.i18n.json index 72c95ad83..ef86721bb 100644 --- a/imports/i18n/data/gl.i18n.json +++ b/imports/i18n/data/gl.i18n.json @@ -383,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", diff --git a/imports/i18n/data/gu-IN.i18n.json b/imports/i18n/data/gu-IN.i18n.json new file mode 100644 index 000000000..f3a04d4b8 --- /dev/null +++ b/imports/i18n/data/gu-IN.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/gu_IN.i18n.json b/imports/i18n/data/gu_IN.i18n.json deleted file mode 100644 index 95e0c77b1..000000000 --- a/imports/i18n/data/gu_IN.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/he_IL.i18n.json b/imports/i18n/data/he-IL.i18n.json similarity index 99% rename from imports/i18n/data/he_IL.i18n.json rename to imports/i18n/data/he-IL.i18n.json index f33ca6dcb..722a0ff53 100644 --- a/imports/i18n/data/he_IL.i18n.json +++ b/imports/i18n/data/he-IL.i18n.json @@ -383,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", diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index 4d5eb6e41..5f5961406 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -383,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": "צריכות להיות לך הרשאות ניהול על לוח זה כדי לעשות זאת", diff --git a/imports/i18n/data/hi_IN.i18n.json b/imports/i18n/data/hi-IN.i18n.json similarity index 99% rename from imports/i18n/data/hi_IN.i18n.json rename to imports/i18n/data/hi-IN.i18n.json index 3b87ea110..002ff6a8e 100644 --- a/imports/i18n/data/hi_IN.i18n.json +++ b/imports/i18n/data/hi-IN.i18n.json @@ -383,6 +383,7 @@ "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", diff --git a/imports/i18n/data/hi.i18n.json b/imports/i18n/data/hi.i18n.json index 966532ebc..24a7ece0c 100644 --- a/imports/i18n/data/hi.i18n.json +++ b/imports/i18n/data/hi.i18n.json @@ -383,6 +383,7 @@ "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", diff --git a/imports/i18n/data/hr.i18n.json b/imports/i18n/data/hr.i18n.json index ed9cf44e1..0734dba51 100644 --- a/imports/i18n/data/hr.i18n.json +++ b/imports/i18n/data/hr.i18n.json @@ -383,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", diff --git a/imports/i18n/data/hu.i18n.json b/imports/i18n/data/hu.i18n.json index 371ba2bee..5ee3c5b92 100644 --- a/imports/i18n/data/hu.i18n.json +++ b/imports/i18n/data/hu.i18n.json @@ -383,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", diff --git a/imports/i18n/data/hy.i18n.json b/imports/i18n/data/hy.i18n.json index 3deb2f347..5e3b256c3 100644 --- a/imports/i18n/data/hy.i18n.json +++ b/imports/i18n/data/hy.i18n.json @@ -383,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", diff --git a/imports/i18n/data/id.i18n.json b/imports/i18n/data/id.i18n.json index 95cc3cd56..252b7becf 100644 --- a/imports/i18n/data/id.i18n.json +++ b/imports/i18n/data/id.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ig.i18n.json b/imports/i18n/data/ig.i18n.json index 69bc4fb0a..0c514b047 100644 --- a/imports/i18n/data/ig.i18n.json +++ b/imports/i18n/data/ig.i18n.json @@ -383,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", diff --git a/imports/i18n/data/it.i18n.json b/imports/i18n/data/it.i18n.json index 7e51ca735..86d2c57ca 100644 --- a/imports/i18n/data/it.i18n.json +++ b/imports/i18n/data/it.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ja_HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json similarity index 99% rename from imports/i18n/data/ja_HI.i18n.json rename to imports/i18n/data/ja-HI.i18n.json index 49498e13f..4907488ee 100644 --- a/imports/i18n/data/ja_HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index ee0077109..df5fe38a6 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -383,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": "操作にはボードの管理者権限が必要です", diff --git a/imports/i18n/data/ka.i18n.json b/imports/i18n/data/ka.i18n.json index 581dbb545..f135a9c6e 100644 --- a/imports/i18n/data/ka.i18n.json +++ b/imports/i18n/data/ka.i18n.json @@ -383,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": "ამის გასაკეთებლად საჭიროა იყოთ დაფის ადმინისტრატორი", diff --git a/imports/i18n/data/km.i18n.json b/imports/i18n/data/km.i18n.json index 44e609e15..098450ce6 100644 --- a/imports/i18n/data/km.i18n.json +++ b/imports/i18n/data/km.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ko_KR.i18n.json b/imports/i18n/data/ko-KR.i18n.json similarity index 99% rename from imports/i18n/data/ko_KR.i18n.json rename to imports/i18n/data/ko-KR.i18n.json index 051caaeff..234e3f6ef 100644 --- a/imports/i18n/data/ko_KR.i18n.json +++ b/imports/i18n/data/ko-KR.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ko.i18n.json b/imports/i18n/data/ko.i18n.json index 7eecf2b77..89b4c46c4 100644 --- a/imports/i18n/data/ko.i18n.json +++ b/imports/i18n/data/ko.i18n.json @@ -383,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": "이 작업은 보드의 관리자만 실행할 수 있습니다.", diff --git a/imports/i18n/data/lt.i18n.json b/imports/i18n/data/lt.i18n.json index 95e0c77b1..f3a04d4b8 100644 --- a/imports/i18n/data/lt.i18n.json +++ b/imports/i18n/data/lt.i18n.json @@ -383,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", diff --git a/imports/i18n/data/lv.i18n.json b/imports/i18n/data/lv.i18n.json index 1cc829ce3..4714a8938 100644 --- a/imports/i18n/data/lv.i18n.json +++ b/imports/i18n/data/lv.i18n.json @@ -383,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", diff --git a/imports/i18n/data/mk.i18n.json b/imports/i18n/data/mk.i18n.json index 7b7467bd3..ac89b62d0 100644 --- a/imports/i18n/data/mk.i18n.json +++ b/imports/i18n/data/mk.i18n.json @@ -383,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": "За да направите това трябва да сте администратор на това табло", diff --git a/imports/i18n/data/mn.i18n.json b/imports/i18n/data/mn.i18n.json index 1954eb7bf..a250f0e98 100644 --- a/imports/i18n/data/mn.i18n.json +++ b/imports/i18n/data/mn.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json new file mode 100644 index 000000000..f3a04d4b8 --- /dev/null +++ b/imports/i18n/data/ms-MY.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/ms.i18n.json b/imports/i18n/data/ms.i18n.json index 82d124749..5f8f4da0d 100644 --- a/imports/i18n/data/ms.i18n.json +++ b/imports/i18n/data/ms.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ms_MY.i18n.json b/imports/i18n/data/ms_MY.i18n.json deleted file mode 100644 index 95e0c77b1..000000000 --- a/imports/i18n/data/ms_MY.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/nb.i18n.json b/imports/i18n/data/nb.i18n.json index 8d082282e..6704684c5 100644 --- a/imports/i18n/data/nb.i18n.json +++ b/imports/i18n/data/nb.i18n.json @@ -383,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", diff --git a/imports/i18n/data/nl_NL.i18n.json b/imports/i18n/data/nl-NL.i18n.json similarity index 99% rename from imports/i18n/data/nl_NL.i18n.json rename to imports/i18n/data/nl-NL.i18n.json index 8f540d02c..03ce0f8b6 100644 --- a/imports/i18n/data/nl_NL.i18n.json +++ b/imports/i18n/data/nl-NL.i18n.json @@ -383,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.", diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 1509f7b27..959aeb264 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -383,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.", diff --git a/imports/i18n/data/oc.i18n.json b/imports/i18n/data/oc.i18n.json index 722140824..46220404c 100644 --- a/imports/i18n/data/oc.i18n.json +++ b/imports/i18n/data/oc.i18n.json @@ -383,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ò", diff --git a/imports/i18n/data/or_IN.i18n.json b/imports/i18n/data/or_IN.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/or_IN.i18n.json +++ b/imports/i18n/data/or_IN.i18n.json @@ -383,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", diff --git a/imports/i18n/data/pa.i18n.json b/imports/i18n/data/pa.i18n.json index 95e0c77b1..f3a04d4b8 100644 --- a/imports/i18n/data/pa.i18n.json +++ b/imports/i18n/data/pa.i18n.json @@ -383,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", diff --git a/imports/i18n/data/pl_PL.i18n.json b/imports/i18n/data/pl-PL.i18n.json similarity index 99% rename from imports/i18n/data/pl_PL.i18n.json rename to imports/i18n/data/pl-PL.i18n.json index a4310f258..3c6d0dd37 100644 --- a/imports/i18n/data/pl_PL.i18n.json +++ b/imports/i18n/data/pl-PL.i18n.json @@ -383,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ć", diff --git a/imports/i18n/data/pl.i18n.json b/imports/i18n/data/pl.i18n.json index d8ad2b117..832c4373f 100644 --- a/imports/i18n/data/pl.i18n.json +++ b/imports/i18n/data/pl.i18n.json @@ -383,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ć", diff --git a/imports/i18n/data/pt_BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json similarity index 99% rename from imports/i18n/data/pt_BR.i18n.json rename to imports/i18n/data/pt-BR.i18n.json index b8663a8da..753947048 100644 --- a/imports/i18n/data/pt_BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -383,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": "Enable vertical scrollbars", "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", diff --git a/imports/i18n/data/pt.i18n.json b/imports/i18n/data/pt.i18n.json index 0ad80a1c7..41694686f 100644 --- a/imports/i18n/data/pt.i18n.json +++ b/imports/i18n/data/pt.i18n.json @@ -383,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", diff --git a/imports/i18n/data/pt_PT.i18n.json b/imports/i18n/data/pt_PT.i18n.json index 2378aec3d..b9c8b3e75 100644 --- a/imports/i18n/data/pt_PT.i18n.json +++ b/imports/i18n/data/pt_PT.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ro_RO.i18n.json b/imports/i18n/data/ro-RO.i18n.json similarity index 99% rename from imports/i18n/data/ro_RO.i18n.json rename to imports/i18n/data/ro-RO.i18n.json index 3e47933f1..23e12f6cf 100644 --- a/imports/i18n/data/ro_RO.i18n.json +++ b/imports/i18n/data/ro-RO.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ro.i18n.json b/imports/i18n/data/ro.i18n.json index 17a734e76..36c8beb56 100644 --- a/imports/i18n/data/ro.i18n.json +++ b/imports/i18n/data/ro.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ru_UA.i18n.json b/imports/i18n/data/ru-UA.i18n.json similarity index 99% rename from imports/i18n/data/ru_UA.i18n.json rename to imports/i18n/data/ru-UA.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/ru_UA.i18n.json +++ b/imports/i18n/data/ru-UA.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ru.i18n.json b/imports/i18n/data/ru.i18n.json index 6d21f2eff..11f6f6575 100644 --- a/imports/i18n/data/ru.i18n.json +++ b/imports/i18n/data/ru.i18n.json @@ -383,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": "Вы должны обладать правами администратора этой доски, чтобы сделать это", diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index e22f21837..04ab0cfca 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -383,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": "Táto nástenka neexistuje", "error-board-notAdmin": "You need to be admin of this board to do that", diff --git a/imports/i18n/data/sl.i18n.json b/imports/i18n/data/sl.i18n.json index 4465caa36..fa8e4f348 100644 --- a/imports/i18n/data/sl.i18n.json +++ b/imports/i18n/data/sl.i18n.json @@ -383,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.", diff --git a/imports/i18n/data/sr.i18n.json b/imports/i18n/data/sr.i18n.json index 5f2e3082f..c7ddf0c0f 100644 --- a/imports/i18n/data/sr.i18n.json +++ b/imports/i18n/data/sr.i18n.json @@ -383,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": "Да би то урадили, треба да будете администратор/управник ове књиге пословања", diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index bf0afac5b..eeb1c7c66 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -383,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": "Enable vertical scrollbars", "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", diff --git a/imports/i18n/data/sw.i18n.json b/imports/i18n/data/sw.i18n.json index 379bebba9..ada1bff1e 100644 --- a/imports/i18n/data/sw.i18n.json +++ b/imports/i18n/data/sw.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ta.i18n.json b/imports/i18n/data/ta.i18n.json index f6860f8d9..6c383fcb3 100644 --- a/imports/i18n/data/ta.i18n.json +++ b/imports/i18n/data/ta.i18n.json @@ -383,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", diff --git a/imports/i18n/data/te-IN.i18n.json b/imports/i18n/data/te-IN.i18n.json new file mode 100644 index 000000000..2eb6c9401 --- /dev/null +++ b/imports/i18n/data/te-IN.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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 1535d7484..adeaebb9e 100644 --- a/imports/i18n/data/th.i18n.json +++ b/imports/i18n/data/th.i18n.json @@ -383,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": "คุณจะต้องเป็นผู้ดูแลระบบถึงจะทำสิ่งเหล่านี้ได้", diff --git a/imports/i18n/data/tk_TM.i18n.json b/imports/i18n/data/tk_TM.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/tk_TM.i18n.json +++ b/imports/i18n/data/tk_TM.i18n.json @@ -383,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", diff --git a/imports/i18n/data/tlh.i18n.json b/imports/i18n/data/tlh.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/tlh.i18n.json +++ b/imports/i18n/data/tlh.i18n.json @@ -383,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", diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index bf158c8d8..b1f3a65e5 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -383,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.", diff --git a/imports/i18n/data/ug.i18n.json b/imports/i18n/data/ug.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/ug.i18n.json +++ b/imports/i18n/data/ug.i18n.json @@ -383,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", diff --git a/imports/i18n/data/uk_UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json similarity index 99% rename from imports/i18n/data/uk_UA.i18n.json rename to imports/i18n/data/uk-UA.i18n.json index ab10ba554..d7fbe488b 100644 --- a/imports/i18n/data/uk_UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -383,6 +383,7 @@ "email-sent": "Email відправлений", "email-verifyEmail-subject": "Підтвердіть вашу email адресу на __siteName__", "email-verifyEmail-text": "Привіт __user__,\n\nЩоб підтвердити ваш акаунт email, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Увімкнути ліміт WIP", "error-board-doesNotExist": "Ця дошка не існує", "error-board-notAdmin": "Вам потрібно бути адміністратором цієї дошки, щоб зробити це", diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index d346f6a7f..4e8e15b68 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -383,6 +383,7 @@ "email-sent": "Email відправлений", "email-verifyEmail-subject": "Підтвердіть вашу email адресу на __siteName__", "email-verifyEmail-text": "Привіт __user__,\n\nЩоб підтвердити ваш акаунт email, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", "enable-wip-limit": "Увімкнути ліміт WIP", "error-board-doesNotExist": "Ця дошка не існує", "error-board-notAdmin": "Вам потрібно бути адміністратором цієї дошки, щоб зробити це", diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz-AR.i18n.json new file mode 100644 index 000000000..2eb6c9401 --- /dev/null +++ b/imports/i18n/data/uz-AR.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/uz-LA.i18n.json b/imports/i18n/data/uz-LA.i18n.json new file mode 100644 index 000000000..2eb6c9401 --- /dev/null +++ b/imports/i18n/data/uz-LA.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/uz-UZ.i18n.json b/imports/i18n/data/uz-UZ.i18n.json new file mode 100644 index 000000000..2eb6c9401 --- /dev/null +++ b/imports/i18n/data/uz-UZ.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/uz.i18n.json b/imports/i18n/data/uz.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/uz.i18n.json +++ b/imports/i18n/data/uz.i18n.json @@ -383,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", diff --git a/imports/i18n/data/uz_AR.i18n.json b/imports/i18n/data/uz_AR.i18n.json deleted file mode 100644 index 3f09fdb3e..000000000 --- a/imports/i18n/data/uz_AR.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/uz_LA.i18n.json b/imports/i18n/data/uz_LA.i18n.json deleted file mode 100644 index 3f09fdb3e..000000000 --- a/imports/i18n/data/uz_LA.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/uz_UZ.i18n.json b/imports/i18n/data/uz_UZ.i18n.json deleted file mode 100644 index 3f09fdb3e..000000000 --- a/imports/i18n/data/uz_UZ.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/ve-CC.i18n.json b/imports/i18n/data/ve-CC.i18n.json new file mode 100644 index 000000000..2eb6c9401 --- /dev/null +++ b/imports/i18n/data/ve-CC.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/ve-PP.i18n.json b/imports/i18n/data/ve-PP.i18n.json new file mode 100644 index 000000000..2eb6c9401 --- /dev/null +++ b/imports/i18n/data/ve-PP.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/ve.i18n.json b/imports/i18n/data/ve.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/ve.i18n.json +++ b/imports/i18n/data/ve.i18n.json @@ -383,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", diff --git a/imports/i18n/data/ve_CC.i18n.json b/imports/i18n/data/ve_CC.i18n.json deleted file mode 100644 index 3f09fdb3e..000000000 --- a/imports/i18n/data/ve_CC.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/ve_PP.i18n.json b/imports/i18n/data/ve_PP.i18n.json deleted file mode 100644 index 3f09fdb3e..000000000 --- a/imports/i18n/data/ve_PP.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/vi_VN.i18n.json b/imports/i18n/data/vi-VN.i18n.json similarity index 99% rename from imports/i18n/data/vi_VN.i18n.json rename to imports/i18n/data/vi-VN.i18n.json index c0330a58d..ff83b6a36 100644 --- a/imports/i18n/data/vi_VN.i18n.json +++ b/imports/i18n/data/vi-VN.i18n.json @@ -383,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", diff --git a/imports/i18n/data/vi.i18n.json b/imports/i18n/data/vi.i18n.json index 74eeeb6cd..98a96332e 100644 --- a/imports/i18n/data/vi.i18n.json +++ b/imports/i18n/data/vi.i18n.json @@ -383,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 đó", diff --git a/imports/i18n/data/vl-SS.i18n.json b/imports/i18n/data/vl-SS.i18n.json new file mode 100644 index 000000000..2eb6c9401 --- /dev/null +++ b/imports/i18n/data/vl-SS.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/vl_SS.i18n.json b/imports/i18n/data/vl_SS.i18n.json deleted file mode 100644 index 3f09fdb3e..000000000 --- a/imports/i18n/data/vl_SS.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/vo.i18n.json b/imports/i18n/data/vo.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/vo.i18n.json +++ b/imports/i18n/data/vo.i18n.json @@ -383,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", diff --git a/imports/i18n/data/wa-RR.i18n.json b/imports/i18n/data/wa-RR.i18n.json new file mode 100644 index 000000000..2eb6c9401 --- /dev/null +++ b/imports/i18n/data/wa-RR.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/wa.i18n.json b/imports/i18n/data/wa.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/wa.i18n.json +++ b/imports/i18n/data/wa.i18n.json @@ -383,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", diff --git a/imports/i18n/data/wa_RR.i18n.json b/imports/i18n/data/wa_RR.i18n.json deleted file mode 100644 index 3f09fdb3e..000000000 --- a/imports/i18n/data/wa_RR.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/wo.i18n.json b/imports/i18n/data/wo.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/wo.i18n.json +++ b/imports/i18n/data/wo.i18n.json @@ -383,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", diff --git a/imports/i18n/data/xh.i18n.json b/imports/i18n/data/xh.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/xh.i18n.json +++ b/imports/i18n/data/xh.i18n.json @@ -383,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", diff --git a/imports/i18n/data/yi.i18n.json b/imports/i18n/data/yi.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/yi.i18n.json +++ b/imports/i18n/data/yi.i18n.json @@ -383,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", diff --git a/imports/i18n/data/yo.i18n.json b/imports/i18n/data/yo.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/yo.i18n.json +++ b/imports/i18n/data/yo.i18n.json @@ -383,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", diff --git a/imports/i18n/data/yue_CN.i18n.json b/imports/i18n/data/yue_CN.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/yue_CN.i18n.json +++ b/imports/i18n/data/yue_CN.i18n.json @@ -383,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", diff --git a/imports/i18n/data/zgh.i18n.json b/imports/i18n/data/zgh.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/zgh.i18n.json +++ b/imports/i18n/data/zgh.i18n.json @@ -383,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", diff --git a/imports/i18n/data/zh_CN.i18n.json b/imports/i18n/data/zh-CN.i18n.json similarity index 99% rename from imports/i18n/data/zh_CN.i18n.json rename to imports/i18n/data/zh-CN.i18n.json index 0fe6fd93e..0585c4d48 100644 --- a/imports/i18n/data/zh_CN.i18n.json +++ b/imports/i18n/data/zh-CN.i18n.json @@ -383,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": "需要成为管理员才能执行此操作", diff --git a/imports/i18n/data/zh_GB.i18n.json b/imports/i18n/data/zh-GB.i18n.json similarity index 99% rename from imports/i18n/data/zh_GB.i18n.json rename to imports/i18n/data/zh-GB.i18n.json index b90d65537..e8368896b 100644 --- a/imports/i18n/data/zh_GB.i18n.json +++ b/imports/i18n/data/zh-GB.i18n.json @@ -383,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", diff --git a/imports/i18n/data/zh_HK.i18n.json b/imports/i18n/data/zh-HK.i18n.json similarity index 99% rename from imports/i18n/data/zh_HK.i18n.json rename to imports/i18n/data/zh-HK.i18n.json index 348d8ede5..d264e7cec 100644 --- a/imports/i18n/data/zh_HK.i18n.json +++ b/imports/i18n/data/zh-HK.i18n.json @@ -383,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", diff --git a/imports/i18n/data/zh_Hans.i18n.json b/imports/i18n/data/zh-Hans.i18n.json similarity index 99% rename from imports/i18n/data/zh_Hans.i18n.json rename to imports/i18n/data/zh-Hans.i18n.json index 09710cf43..576231bfd 100644 --- a/imports/i18n/data/zh_Hans.i18n.json +++ b/imports/i18n/data/zh-Hans.i18n.json @@ -383,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", diff --git a/imports/i18n/data/zh-Hant.i18n.json b/imports/i18n/data/zh-Hant.i18n.json new file mode 100644 index 000000000..2eb6c9401 --- /dev/null +++ b/imports/i18n/data/zh-Hant.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/zh_TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json similarity index 99% rename from imports/i18n/data/zh_TW.i18n.json rename to imports/i18n/data/zh-TW.i18n.json index 7e18fd2c4..b062b8b0d 100644 --- a/imports/i18n/data/zh_TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -383,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": "需要成為管理員才能執行此操作", diff --git a/imports/i18n/data/zh.i18n.json b/imports/i18n/data/zh.i18n.json index 84d92d844..22f7af1b9 100644 --- a/imports/i18n/data/zh.i18n.json +++ b/imports/i18n/data/zh.i18n.json @@ -383,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", diff --git a/imports/i18n/data/zh_Hant.i18n.json b/imports/i18n/data/zh_Hant.i18n.json deleted file mode 100644 index 3f09fdb3e..000000000 --- a/imports/i18n/data/zh_Hant.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/zu-ZA.i18n.json b/imports/i18n/data/zu-ZA.i18n.json new file mode 100644 index 000000000..2eb6c9401 --- /dev/null +++ b/imports/i18n/data/zu-ZA.i18n.json @@ -0,0 +1,1270 @@ +{ + "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-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", + "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/zu.i18n.json b/imports/i18n/data/zu.i18n.json index 3f09fdb3e..2eb6c9401 100644 --- a/imports/i18n/data/zu.i18n.json +++ b/imports/i18n/data/zu.i18n.json @@ -383,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", diff --git a/imports/i18n/data/zu_ZA.i18n.json b/imports/i18n/data/zu_ZA.i18n.json deleted file mode 100644 index 3f09fdb3e..000000000 --- a/imports/i18n/data/zu_ZA.i18n.json +++ /dev/null @@ -1,1269 +0,0 @@ -{ - "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-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-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", - "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/languages.js b/imports/i18n/languages.js index 731367c75..5bb4201c1 100644 --- a/imports/i18n/languages.js +++ b/imports/i18n/languages.js @@ -20,18 +20,18 @@ export default { load: () => import('./data/en_ZA.i18n.json'), rtl: "false", }, - "ar_DZ": { + "ar-DZ": { code: "ar", - tag: "ar_DZ", + tag: "ar-DZ", name: "دزيرية", - load: () => import('./data/ar_DZ.i18n.json'), + load: () => import('./data/ar-DZ.i18n.json'), rtl: "true", }, - "ar_EG": { + "ar-EG": { code: "ar", - tag: "ar_EG", + tag: "ar-EG", name: "مَصرى", - load: () => import('./data/ar_EG.i18n.json'), + load: () => import('./data/ar-EG.i18n.json'), rtl: "true", }, "ar": { @@ -48,17 +48,17 @@ export default { load: () => import('./data/ary.i18n.json'), rtl: "true", }, - "az_AZ": { + "az-AZ": { code: "az", - tag: "az_AZ", + tag: "az-AZ", name: "Azərbaycan (Azərbaycan)", - load: () => import('./data/az_AZ.i18n.json'), + load: () => import('./data/az-AZ.i18n.json'), }, - "az_LA": { + "az-LA": { code: "az", - tag: "az_LA", + tag: "az-LA", name: "Azərbaycan (Latin)", - load: () => import('./data/az_LA.i18n.json'), + load: () => import('./data/az-LA.i18n.json'), }, "az": { code: "az", @@ -84,9 +84,9 @@ export default { name: "català", load: () => import('./data/ca.i18n.json'), }, - "ca_ES": { + "ca-ES": { code: "ca", - tag: "ca_ES", + tag: "ca-ES", name: "català (Espanya)", load: () => import('./data/ca_ES.i18n.json'), }, @@ -102,17 +102,17 @@ export default { name: "čeština", load: () => import('./data/cs.i18n.json'), }, - "cs_CZ": { + "cs-CZ": { code: "cs", - tag: "cs_CZ", + tag: "cs-CZ", name: "čeština (Česká republika)", - load: () => import('./data/cs_CZ.i18n.json'), + load: () => import('./data/cs-CZ.i18n.json'), }, - "cy_GB": { + "cy-GB": { code: "cy", - tag: "cy_GB", + tag: "cy-GB", name: "Welsh (UK)", - load: () => import('./data/cy_GB.i18n.json'), + load: () => import('./data/cy-GB.i18n.json'), }, "cy": { code: "cy", @@ -126,21 +126,21 @@ export default { name: "Dansk", load: () => import('./data/da.i18n.json'), }, - "de_AT": { + "de-AT": { code: "de", - tag: "de_AT", + tag: "de-AT", name: "Deutsch (Österreich)", - load: () => import('./data/de_AT.i18n.json'), + load: () => import('./data/de-AT.i18n.json'), }, - "de_CH": { + "de-CH": { code: "de", - tag: "de_CH", + tag: "de-CH", name: "Deutsch (Schweiz)", - load: () => import('./data/de_CH.i18n.json'), + load: () => import('./data/de-CH.i18n.json'), }, - "de_DE": { + "de-DE": { code: "de", - tag: "de_DE", + tag: "de-DE", name: "Deutsch (Deutschland)", load: () => import('./data/de_DE.i18n.json'), }, @@ -150,11 +150,11 @@ export default { name: "Deutsch", load: () => import('./data/de.i18n.json'), }, - "el_GR": { + "el-GR": { code: "el", - tag: "el_GR", + tag: "el-GR", name: "Ελληνικά (Ελλάδα)", - load: () => import('./data/el_GR.i18n.json'), + load: () => import('./data/el-GR.i18n.json'), }, "el": { code: "el", @@ -162,41 +162,41 @@ export default { name: "Ελληνικά", load: () => import('./data/el.i18n.json'), }, - "en_BR": { + "en-BR": { code: "en", - tag: "en_BR", + tag: "en-BR", name: "English (Brazil)", - load: () => import('./data/en_BR.i18n.json'), + load: () => import('./data/en-BR.i18n.json'), }, - "en_DE": { + "en-DE": { code: "en", - tag: "en_DE", + tag: "en-DE", name: "English (Germany)", - load: () => import('./data/en_DE.i18n.json'), + load: () => import('./data/en-DE.i18n.json'), }, - "en_GB": { + "en-GB": { code: "en", - tag: "en_GB", + tag: "en-GB", name: "English (UK)", - load: () => import('./data/en_GB.i18n.json'), + load: () => import('./data/en-GB.i18n.json'), }, - "en_IT": { + "en-IT": { code: "en", - tag: "en_IT", + tag: "en-IT", name: "English (Italy)", - load: () => import('./data/en_IT.i18n.json'), + load: () => import('./data/en-IT.i18n.json'), }, - "en_MY": { + "en-MY": { code: "en", - tag: "en_MY", + tag: "en-MY", name: "English (Malaysia)", - load: () => import('./data/en_MY.i18n.json'), + load: () => import('./data/en-MY.i18n.json'), }, - "en_YS": { + "en-YS": { code: "en", - tag: "en_YS", + tag: "en-YS", name: "English (Yeshivish)", - load: () => import('./data/en_YS.i18n.json'), + load: () => import('./data/en-YS.i18n.json'), }, "en": { code: "en", @@ -210,53 +210,53 @@ export default { name: "Esperanto", load: () => import('./data/eo.i18n.json'), }, - "ast_ES": { + "ast-ES": { code: "es", - tag: "ast_ES", + tag: "ast-ES", name: "español de Asturias", - load: () => import('./data/ast_ES.i18n.json'), + load: () => import('./data/ast-ES.i18n.json'), }, - "es_AR": { + "es-AR": { code: "es", - tag: "es_AR", + tag: "es-AR", name: "español de Argentina", - load: () => import('./data/es_AR.i18n.json'), + load: () => import('./data/es-AR.i18n.json'), }, - "es_CL": { + "es-CL": { code: "es", - tag: "es_CL", + tag: "es-CL", name: "español de Chile", - load: () => import('./data/es_CL.i18n.json'), + load: () => import('./data/es-CL.i18n.json'), }, - "es_CO": { + "es-CO": { code: "es", - tag: "es_CO", + tag: "es-CO", name: "español en Colombia", - load: () => import('./data/es_CO.i18n.json'), + load: () => import('./data/es-CO.i18n.json'), }, - "es_LA": { + "es-LA": { code: "es", - tag: "es_LA", + tag: "es-LA", name: "español de América Latina", - load: () => import('./data/es_LA.i18n.json'), + load: () => import('./data/es-LA.i18n.json'), }, - "es_MX": { + "es-MX": { code: "es", - tag: "es_MX", + tag: "es-MX", name: "español de México", - load: () => import('./data/es_MX.i18n.json'), + load: () => import('./data/es-MX.i18n.json'), }, - "es_PE": { + "es-PE": { code: "es", - tag: "es_PE", + tag: "es-PE", name: "español de Perú", - load: () => import('./data/es_PE.i18n.json'), + load: () => import('./data/es-PE.i18n.json'), }, - "es_PY": { + "es-PY": { code: "es", - tag: "es_PY", + tag: "es-PY", name: "español de Paraguayo", - load: () => import('./data/es_PY.i18n.json'), + load: () => import('./data/es-PY.i18n.json'), }, "es": { code: "es", @@ -264,11 +264,11 @@ export default { name: "español", load: () => import('./data/es.i18n.json'), }, - "et_EE": { + "et-EE": { code: "et", - tag: "et_EE", + tag: "et-EE", name: "eesti keel (Eesti)", - load: () => import('./data/et_EE.i18n.json'), + load: () => import('./data/et-EE.i18n.json'), }, "eu": { code: "eu", @@ -276,11 +276,11 @@ export default { name: "Euskara", load: () => import('./data/eu.i18n.json'), }, - "fa_IR": { + "fa-IR": { code: "fa", - tag: "fa_IR", + tag: "fa-IR", name: "فارسی/پارسی (ایران\u200e)", - load: () => import('./data/fa_IR.i18n.json'), + load: () => import('./data/fa-IR.i18n.json'), rtl: "true", }, "fa": { @@ -296,23 +296,23 @@ export default { name: "Suomi", load: () => import('./data/fi.i18n.json'), }, - "fr_BE": { + "fr-BE": { code: "fr", - tag: "fr_BE", + tag: "fr-BE", name: "Français (Belgique)", - load: () => import('./data/fr_BE.i18n.json'), + load: () => import('./data/fr-BE.i18n.json'), }, - "fr_CA": { + "fr-CA": { code: "fr", - tag: "fr_CA", + tag: "fr-CA", name: "Français (Canada)", - load: () => import('./data/fr_CA.i18n.json'), + load: () => import('./data/fr-CA.i18n.json'), }, - "fr_CH": { + "fr-CH": { code: "fr", - tag: "fr_CH", + tag: "fr-CH", name: "Français (Schweiz)", - load: () => import('./data/fr_CH.i18n.json'), + load: () => import('./data/fr-CH.i18n.json'), }, "fr": { code: "fr", @@ -320,11 +320,11 @@ export default { name: "Français", load: () => import('./data/fr.i18n.json'), }, - "fy_NL": { + "fy-NL": { code: "fy", - tag: "fy_NL", + tag: "fy-NL", name: "Westerlauwersk Frysk (Nederlân)", - load: () => import('./data/fy_NL.i18n.json'), + load: () => import('./data/fy-NL.i18n.json'), }, "fy": { code: "fy", @@ -332,11 +332,11 @@ export default { name: "Westerlauwersk Frysk", load: () => import('./data/fy.i18n.json'), }, - "gl_ES": { + "gl-ES": { code: "gl", - tag: "gl_ES", + tag: "gl-ES", name: "Galego (España)", - load: () => import('./data/gl_ES.i18n.json'), + load: () => import('./data/gl-ES.i18n.json'), }, "gl": { code: "gl", @@ -344,17 +344,17 @@ export default { name: "Galego", load: () => import('./data/gl.i18n.json'), }, - "gu_IN": { + "gu-IN": { code: "gu", - tag: "gu_IN", + tag: "gu-IN", name: "ગુજરાતી", - load: () => import('./data/gu_IN.i18n.json'), + load: () => import('./data/gu-IN.i18n.json'), }, - "he_IL": { + "he-IL": { code: "he", - tag: "he_IL", + tag: "he-IL", name: "עברית (ישראל)", - load: () => import('./data/he_IL.i18n.json'), + load: () => import('./data/he-IL.i18n.json'), rtl: "true", }, "he": { @@ -364,11 +364,11 @@ export default { load: () => import('./data/he.i18n.json'), rtl: "true", }, - "hi_IN": { + "hi-IN": { code: "hi", - tag: "hi_IN", + tag: "hi-IN", name: "हिंदी (भारत)", - load: () => import('./data/hi_IN.i18n.json'), + load: () => import('./data/hi-IN.i18n.json'), }, "hi": { code: "hi", @@ -418,17 +418,17 @@ export default { name: "日本語", load: () => import('./data/ja.i18n.json'), }, - "ja_Hira": { + "ja-Hira": { code: "ja", - tag: "ja_Hira", + tag: "ja-Hira", name: "平仮名", - load: () => import('./data/ja_HI.i18n.json'), + load: () => import('./data/ja-HI.i18n.json'), }, - "ja_JP": { + "ja-JP": { code: "ja", - tag: "ja_JP", + tag: "ja-JP", name: "日本語(日本)", - load: () => import('./data/ja_JP.i18n.json'), + load: () => import('./data/ja-JP.i18n.json'), }, "ka": { code: "ka", @@ -442,11 +442,11 @@ export default { name: "ភាសាខ្មែរ", load: () => import('./data/km.i18n.json'), }, - "ko_KR": { + "ko-KR": { code: "ko", - tag: "ko_KR", + tag: "ko-KR", name: "한국어(한국)", - load: () => import('./data/ko_KR.i18n.json'), + load: () => import('./data/ko-KR.i18n.json'), }, "ko": { code: "ko", @@ -484,11 +484,11 @@ export default { name: "بهاس ملايو", load: () => import('./data/ms.i18n.json'), }, - "ms_MY": { + "ms-MY": { code: "ms", - tag: "ms_MY", + tag: "ms-MY", name: "بهاس ملايو (Malaysia)", - load: () => import('./data/ms_MY.i18n.json'), + load: () => import('./data/ms-MY.i18n.json'), }, "nb": { code: "nb", @@ -496,11 +496,11 @@ export default { name: "Norsk bokmål", load: () => import('./data/nb.i18n.json'), }, - "nl_NL": { + "nl-NL": { code: "nl", - tag: "nl_NL", + tag: "nl-NL", name: "Nederlands (Nederland)", - load: () => import('./data/nl_NL.i18n.json'), + load: () => import('./data/nl-NL.i18n.json'), }, "nl": { code: "nl", @@ -514,9 +514,9 @@ export default { name: "Occitan", load: () => import('./data/oc.i18n.json'), }, - "or_IN": { + "or-IN": { code: "or", - tag: "or_IN", + tag: "or-IN", name: "ଓଡିଆ (ଭାରତ)", load: () => import('./data/or_IN.i18n.json'), }, @@ -526,11 +526,11 @@ export default { name: "ਪੰਜਾਬੀ", load: () => import('./data/pa.i18n.json'), }, - "pl_PL": { + "pl-PL": { code: "pl", - tag: "pl_PL", + tag: "pl-PL", name: "Polski (Polska)", - load: () => import('./data/pl_PL.i18n.json'), + load: () => import('./data/pl-PL.i18n.json'), }, "pl": { code: "pl", @@ -538,11 +538,11 @@ export default { name: "Polski", load: () => import('./data/pl.i18n.json'), }, - "pt_BR": { + "pt-BR": { code: "pt", - tag: "pt_BR", + tag: "pt-BR", name: "Português do Brasil", - load: () => import('./data/pt_BR.i18n.json'), + load: () => import('./data/pt-BR.i18n.json'), }, "pt": { code: "pt", @@ -550,11 +550,11 @@ export default { name: "Português", load: () => import('./data/pt.i18n.json'), }, - "pt_PT": { + "pt-PT": { code: "pt", - tag: "pt_PT", + tag: "pt-PT", name: "Português de Portugal", - load: () => import('./data/pt_PT.i18n.json'), + load: () => import('./data/pt-PT.i18n.json'), }, "ro": { code: "ro", @@ -562,11 +562,11 @@ export default { name: "Română", load: () => import('./data/ro.i18n.json'), }, - "ro_RO": { + "ro-RO": { code: "ro", - tag: "ro_RO", + tag: "ro-RO", name: "Română (România)", - load: () => import('./data/ro_RO.i18n.json'), + load: () => import('./data/ro-RO.i18n.json'), }, "ru": { code: "ru", @@ -610,11 +610,11 @@ export default { name: "தமிழ்", load: () => import('./data/ta.i18n.json'), }, - "te_IN": { + "te-IN": { code: "te", tag: "te_IN", name: "తెలుగు (భారతదేశం)", - load: () => import('./data/te_IN.i18n.json'), + load: () => import('./data/te-IN.i18n.json'), }, "th": { code: "th", @@ -646,29 +646,29 @@ export default { name: "українська мова", load: () => import('./data/uk.i18n.json'), }, - "uk_UA": { + "uk-UA": { code: "uk", - tag: "uk_UA", + tag: "uk-UA", name: "Українська (Україна)", - load: () => import('./data/uk_UA.i18n.json'), + load: () => import('./data/uk-UA.i18n.json'), }, - "uz_AR": { + "uz-AR": { code: "uz", - tag: "uz_AR", + tag: "uz-AR", name: "o'zbek (arab)", - load: () => import('./data/uz_AR.i18n.json'), + load: () => import('./data/uz-AR.i18n.json'), }, - "uz_LA": { + "uz-LA": { code: "uz", - tag: "uz_LA", + tag: "uz-LA", name: "o'zbek (lotin)", - load: () => import('./data/uz_LA.i18n.json'), + load: () => import('./data/uz-LA.i18n.json'), }, - "uz_UZ": { + "uz-UZ": { code: "uz", - tag: "uz_UZ", + tag: "uz-UZ", name: "o'zbek (O'zbekiston)", - load: () => import('./data/uz_UZ.i18n.json'), + load: () => import('./data/uz-UZ.i18n.json'), }, "uz": { code: "uz", @@ -676,17 +676,17 @@ export default { name: "o'zbek", load: () => import('./data/uz.i18n.json'), }, - "ve_CC": { + "ve-CC": { code: "ve", - tag: "ve_CC", + tag: "ve-CC", name: "vèneto", - load: () => import('./data/ve_CC.i18n.json'), + load: () => import('./data/ve-CC.i18n.json'), }, - "ve_PP": { + "ve-PP": { code: "ve", - tag: "ve_PP", + tag: "ve-PP", name: "vepsän kelʹ", - load: () => import('./data/ve_PP.i18n.json'), + load: () => import('./data/ve-PP.i18n.json'), }, "ve": { code: "ve", @@ -694,11 +694,11 @@ export default { name: "Tshivenḓa", load: () => import('./data/ve.i18n.json'), }, - "vi_VN": { + "vi-VN": { code: "vi", - tag: "vi_VN", + tag: "vi-VN", name: "Tiếng Việt (Việt Nam)", - load: () => import('./data/vi_VN.i18n.json'), + load: () => import('./data/vi-VN.i18n.json'), }, "vi": { code: "vi", @@ -706,11 +706,11 @@ export default { name: "Tiếng Việt", load: () => import('./data/vi.i18n.json'), }, - "vl_SS": { + "vl-SS": { code: "vl", - tag: "vl_SS", + tag: "vl-SS", name: "Vlaams", - load: () => import('./data/vl_SS.i18n.json'), + load: () => import('./data/vl-SS.i18n.json'), }, "vo": { code: "vo", @@ -718,11 +718,11 @@ export default { name: "Volapük", load: () => import('./data/vo.i18n.json'), }, - "wa_RR": { + "wa-RR": { code: "wa", - tag: "wa_RR", - name: "Wáray_Wáray", - load: () => import('./data/wa_RR.i18n.json'), + tag: "wa-RR", + name: "Wáray-Wáray", + load: () => import('./data/wa-RR.i18n.json'), }, "wa": { code: "wa", @@ -766,47 +766,47 @@ export default { name: "廣東話", load: () => import('./data/yue_CN.i18n.json'), }, - "zh_CN": { + "zh-CN": { code: "zh", - tag: "zh_CN", + tag: "zh-CN", name: "简体中文", - load: () => import('./data/zh_CN.i18n.json'), + load: () => import('./data/zh-CN.i18n.json'), }, - "zh_GB": { + "zh-GB": { code: "zh", - tag: "zh_GB", + tag: "zh-GB", name: "简体中文 GB2312", - load: () => import('./data/zh_GB.i18n.json'), + load: () => import('./data/zh-GB.i18n.json'), }, - "zh_Hans": { + "zh-Hans": { code: "zh", - tag: "zh_Hans", + tag: "zh-Hans", name: "简化字", - load: () => import('./data/zh_Hans.i18n.json'), + load: () => import('./data/zh-Hans.i18n.json'), }, - "zh_Hant": { + "zh-Hant": { code: "zh", - tag: "zh_Hant", + tag: "zh-Hant", name: "正體字", - load: () => import('./data/zh_Hant.i18n.json'), + load: () => import('./data/zh-Hant.i18n.json'), }, - "zh_HK": { + "zh-HK": { code: "zh", - tag: "zh_HK", + tag: "zh-HK", name: "繁体中文(香港)", - load: () => import('./data/zh_HK.i18n.json'), + load: () => import('./data/zh-HK.i18n.json'), }, - "zh_TW": { + "zh-TW": { code: "zh", - tag: "zh_TW", + tag: "zh-TW", name: "繁體中文(台灣)", - load: () => import('./data/zh_TW.i18n.json'), + load: () => import('./data/zh-TW.i18n.json'), }, - "zu_ZA": { + "zu-ZA": { code: "zu", - tag: "zu_ZA", + tag: "zu-ZA", name: "isiZulu (Ningizimu Afrika)", - load: () => import('./data/zu_ZA.i18n.json'), + load: () => import('./data/zu-ZA.i18n.json'), }, "zu": { code: "zu", From a3ba0cf6d568968c29dc20ef3f5a7707630ebde1 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 31 Dec 2024 01:26:01 +0200 Subject: [PATCH 262/356] Updated translations. --- imports/i18n/data/fi.i18n.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imports/i18n/data/fi.i18n.json b/imports/i18n/data/fi.i18n.json index abb1d2b83..9d05373bd 100644 --- a/imports/i18n/data/fi.i18n.json +++ b/imports/i18n/data/fi.i18n.json @@ -383,7 +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": "Enable vertical scrollbars", + "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ä", From b29c19f5e076c97faa0e26a9aa10bb1f3cdd8f5b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 31 Dec 2024 01:26:43 +0200 Subject: [PATCH 263/356] Merge newest changes. --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab578cde5..9ffb36535 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,12 @@ Fixing other platforms In Progress. # v7.77 2024-12-30 WeKan ® release -This release fixes the following bugs: +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. From d370cac14cf6b798664ee2cf593a8c7f88c23888 Mon Sep 17 00:00:00 2001 From: Nadav Tasher <tashernadav@gmail.com> Date: Tue, 31 Dec 2024 19:17:06 +0200 Subject: [PATCH 264/356] Disable scrollbars on older versions of Chrome and Safari --- client/components/main/layouts.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/components/main/layouts.css b/client/components/main/layouts.css index a08b2f3ed..2b8c65c06 100644 --- a/client/components/main/layouts.css +++ b/client/components/main/layouts.css @@ -449,6 +449,9 @@ a:not(.disabled).is-active i.fa { .no-scrollbars { scrollbar-width: none; } +.no-scrollbars::-webkit-scrollbar { + display: none !important; +} @media screen and (max-width: 800px) { #content { margin: 1px 0px 0px 0px; From 58b456d5d5205b11ebf880694ec86cf148cdbfc6 Mon Sep 17 00:00:00 2001 From: Nadav Tasher <tashernadav@gmail.com> Date: Tue, 31 Dec 2024 19:30:22 +0200 Subject: [PATCH 265/356] Fix styling for vertical scrollbars toggle --- client/components/sidebar/sidebar.jade | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index d10149381..56c7dc331 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -28,12 +28,13 @@ template(name='homeSidebar') +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 + ul#cards.vertical-scrollbars-toggle a.flex.js-vertical-scrollbars-toggle(title="{{_ 'enable-vertical-scrollbars'}}") span {{_ 'enable-vertical-scrollbars'}} b   From 503298a33f3bb8ceca6ad6863f821960d7e79f90 Mon Sep 17 00:00:00 2001 From: Nadav Tasher <tashernadav@gmail.com> Date: Tue, 31 Dec 2024 19:38:46 +0200 Subject: [PATCH 266/356] Add additional archiving keyboard shortcut --- client/lib/keyboard.js | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index a7e0ada76..fd7706c3a 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -219,7 +219,7 @@ Mousetrap.bind('space', evt => { } }); -Mousetrap.bind('c', evt => { +const archiveCard = evt => { const cardId = getSelectedCardId(); if (!cardId) { return; @@ -237,29 +237,15 @@ Mousetrap.bind('c', evt => { // 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('÷', evt => { - const cardId = getSelectedCardId(); - if (!cardId) { - return; - } - - const currentUserId = Meteor.userId(); - if (currentUserId === null) { - return; - } - - if (Utils.canModifyBoard()) { - const card = ReactiveCache.getCard(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(); - } -}); +Mousetrap.bind('÷', archiveCard); Mousetrap.bind('n', evt => { const cardId = getSelectedCardId(); @@ -336,7 +322,7 @@ Template.keyboardShortcuts.helpers({ action: 'shortcut-assign-self', }, { - keys: ['c', '÷'], + keys: ['c', '÷', '-'], action: 'archive-card', }, { From 44aeb323d98646ecdd82d56fac27de7cb625aaff Mon Sep 17 00:00:00 2001 From: Nadav Tasher <tashernadav@gmail.com> Date: Tue, 31 Dec 2024 19:47:21 +0200 Subject: [PATCH 267/356] Change assign-self shortcut in shortcut help popup --- client/lib/keyboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index a7e0ada76..388647a55 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -332,7 +332,7 @@ Template.keyboardShortcuts.helpers({ action: 'shortcut-add-self', }, { - keys: ['n'], + keys: ['m'], action: 'shortcut-assign-self', }, { From 26e78a13817d72d3ec97095713dfb8385b8be487 Mon Sep 17 00:00:00 2001 From: Nadav Tasher <tashernadav@gmail.com> Date: Tue, 31 Dec 2024 21:18:17 +0200 Subject: [PATCH 268/356] Fix upper-case keyboard shortcuts & different language shortcuts getting triggered when shortcuts are disabled --- client/lib/keyboard.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index a7e0ada76..9bf53a3c2 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -11,13 +11,13 @@ window.addEventListener('keydown', (e) => { if (String.fromCharCode(e.which).toLowerCase() === e.key) return; // Trigger the corresponding action - Mousetrap.trigger(String.fromCharCode(e.which).toLowerCase()); + 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().isKeyboardShortcuts()) + if (ReactiveCache.getCurrentUser() && !ReactiveCache.getCurrentUser().isKeyboardShortcuts()) return true; // Always handle escape From f03744d99b162fd2bee1fd938a8ecbe3492db5d6 Mon Sep 17 00:00:00 2001 From: Nadav Tasher <tashernadav@gmail.com> Date: Tue, 31 Dec 2024 21:42:42 +0200 Subject: [PATCH 269/356] Fix list header too wide in cleanlight and cleandark themes --- client/components/boards/boardColors.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/client/components/boards/boardColors.css b/client/components/boards/boardColors.css index b9d6f0587..7f1bb29e4 100644 --- a/client/components/boards/boardColors.css +++ b/client/components/boards/boardColors.css @@ -3268,6 +3268,11 @@ THEME - Clean Light 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); } From b265701844dd1a22538a273e28af2379b4fc17a3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 31 Dec 2024 22:47:56 +0200 Subject: [PATCH 270/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ffb36535..2acae3857 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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. + +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: From 485c2f0a7d4e64cc1b53be951cf1cfc4ce59434f Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 31 Dec 2024 22:50:31 +0200 Subject: [PATCH 271/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2acae3857..c4b2250b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ 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. Thanks to above GitHub users for their contributions and translators for their translations. From f942631fd4a20cbb5fa10c2d2f4aa0bbfc64aa11 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 31 Dec 2024 22:52:01 +0200 Subject: [PATCH 272/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4b2250b5..66952ad56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ This release fixes the following bugs: 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. Thanks to above GitHub users for their contributions and translators for their translations. From 7c32188968b41aff89e95d4e9368ecc6ceac0a3a Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 31 Dec 2024 22:53:58 +0200 Subject: [PATCH 273/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66952ad56..bbe226814 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ This release fixes the following bugs: 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. Thanks to above GitHub users for their contributions and translators for their translations. From b031da6c6d366819e4ca5fef9b91d2abde6caf48 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 31 Dec 2024 22:55:53 +0200 Subject: [PATCH 274/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bbe226814..a7d693cd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,8 @@ This release fixes the following bugs: 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. Thanks to above GitHub users for their contributions and translators for their translations. From c7e3cc7e0a6679348d61026a4fab80779fe3d222 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 31 Dec 2024 22:57:49 +0200 Subject: [PATCH 275/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7d693cd7..c4c4f8101 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,8 @@ This release fixes the following bugs: 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. From 34325dde8ccc2ba6d194605fa56e4c5e2a132b87 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 31 Dec 2024 23:09:25 +0200 Subject: [PATCH 276/356] Updated translations. --- imports/i18n/data/he.i18n.json | 2 +- imports/i18n/data/pt-BR.i18n.json | 2 +- imports/i18n/data/zh-TW.i18n.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index 5f5961406..3626358e1 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -383,7 +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-vertical-scrollbars": "הפעלת פסי גלילה אנכיים", "enable-wip-limit": "הפעלת מגבלת „בעבודה”", "error-board-doesNotExist": "לוח זה אינו קיים", "error-board-notAdmin": "צריכות להיות לך הרשאות ניהול על לוח זה כדי לעשות זאת", diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index 753947048..dfa52becb 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -383,7 +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": "Enable vertical scrollbars", + "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", diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index b062b8b0d..8bcaa6206 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -383,7 +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-vertical-scrollbars": "啟用垂直捲軸", "enable-wip-limit": "啟用 WIP 限制", "error-board-doesNotExist": "該看板不存在", "error-board-notAdmin": "需要成為管理員才能執行此操作", From 7df278e805f0f38d5f7e142aa58cfabad2e7c7c5 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Tue, 31 Dec 2024 23:13:54 +0200 Subject: [PATCH 277/356] v7.78 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4c4f8101..f8fe64dbf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.78 2024-12-31 WeKan ® release This release fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 27646af70..487ef2580 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.77.0" +appVersion: "v7.78.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 1b1699c2a..825d7b91f 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.77-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.77/wekan-7.77-amd64-windows.zip) +1. [wekan-7.78-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.78/wekan-7.78-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.77-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.78-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 7dc602b3d..8bbee16d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.77.0", + "version": "v7.78.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 128cf05a1..5ada7e044 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.77.0", + "version": "v7.78.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index bb5f2c9de..a28747d66 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.77 + Wekan REST API v7.78 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                        • - Wekan REST API v7.77 + Wekan REST API v7.78
                                        • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                          -

                                          Wekan REST API v7.77

                                          +

                                          Wekan REST API v7.78

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

                                          diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 18a4ae332..c27f98d9a 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.77 + version: v7.78 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index ba5410087..098f2fab7 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 = 777, + appVersion = 778, # Increment this for every release. - appMarketingVersion = (defaultText = "7.77.0~2024-12-30"), + appMarketingVersion = (defaultText = "7.78.0~2024-12-31"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 300bd3c5a..426b20f59 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.77' +version: '7.78' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.77/wekan-7.77-amd64.zip - unzip wekan-7.77-amd64.zip - rm wekan-7.77-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.78/wekan-7.78-amd64.zip + unzip wekan-7.78-amd64.zip + rm wekan-7.78-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 99e579f47da9d5b288bc2bc7676d1cdcc1ec8d8b Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 21:12:04 +0200 Subject: [PATCH 278/356] Add week of year toggle state in user model --- models/users.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/models/users.js b/models/users.js index d50a826da..8643fca2b 100644 --- a/models/users.js +++ b/models/users.js @@ -458,6 +458,13 @@ Users.attachSchema( 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 @@ -978,6 +985,11 @@ Users.helpers({ return verticalScrollbars; }, + isShowWeekOfYear() { + const { showWeekOfYear = true } = this.profile || {}; + return showWeekOfYear; + }, + remove() { User.remove({ _id: this._id, @@ -1058,6 +1070,14 @@ Users.mutations({ }, }; }, + toggleShowWeekOfYear() { + const { showWeekOfYear = true } = this.profile || {}; + return { + $set: { + 'profile.showWeekOfYear': !showWeekOfYear, + }, + }; + }, addInvite(boardId) { return { From 25ad901fb3017ded51d356c186672749ec39e9ce Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 21:12:38 +0200 Subject: [PATCH 279/356] Add show week of year toggle to sidebar --- client/components/sidebar/sidebar.jade | 5 +++++ client/components/sidebar/sidebar.js | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 56c7dc331..3bfb44011 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -39,6 +39,11 @@ template(name='homeSidebar') 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.activity-title diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js index 36cc3f050..28b7408fc 100644 --- a/client/components/sidebar/sidebar.js +++ b/client/components/sidebar/sidebar.js @@ -142,6 +142,9 @@ BlazeComponent.extendComponent({ 'click .js-vertical-scrollbars-toggle'() { ReactiveCache.getCurrentUser().toggleVerticalScrollbars(); }, + 'click .js-show-week-of-year-toggle'() { + ReactiveCache.getCurrentUser().toggleShowWeekOfYear(); + }, 'click .js-close-sidebar'() { Sidebar.toggle() }, @@ -167,6 +170,10 @@ BlazeComponent.extendComponent({ 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; From de0eece27ccc3fbe24e60012dd2fbd61681cdc1d Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 21:13:03 +0200 Subject: [PATCH 280/356] Add show week of year translation --- imports/i18n/data/en.i18n.json | 1 + 1 file changed, 1 insertion(+) diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 2eb6c9401..172b3b3ae 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -1256,6 +1256,7 @@ "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", From 4607bfe454b7652a470d74090d97d39b92f0a1c6 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 21:13:30 +0200 Subject: [PATCH 281/356] Support week of year toggle in cardDate --- client/components/cards/cardDate.jade | 21 ++++++++++++--------- client/components/cards/cardDate.js | 8 ++++++++ 2 files changed, 20 insertions(+), 9 deletions(-) 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..6e093d441 100644 --- a/client/components/cards/cardDate.js +++ b/client/components/cards/cardDate.js @@ -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 From 08cde06ce5410d6222a54976c87a1db30f160c3a Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 21:13:55 +0200 Subject: [PATCH 282/356] Support show week of year toggle in cardCustomFields --- client/components/cards/cardCustomFields.jade | 12 +++++++----- client/components/cards/cardCustomFields.js | 4 ++++ 2 files changed, 11 insertions(+), 5 deletions(-) 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 From 169eaa180b816b245e66ee641ab41b7d233efc01 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 22:22:57 +0200 Subject: [PATCH 283/356] Added support for assigning members to cards using Ctrl+Alt+Num --- client/lib/keyboard.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 4499a5a49..c80d3df32 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -179,6 +179,35 @@ 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 pressedNumber = parseInt(key.split("+").pop()) - 1; + const currentBoard = Utils.getCurrentBoard(); + const boardMembers = currentBoard.memberUsers(); + + if (pressedNumber > boardMembers.length) + return; + + if (MultiSelection.isActive()) { + for (const cardId of MultiSelection.getSelectedCardIds()) + ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[pressedNumber]._id); + } else { + const cardId = getSelectedCardId(); + + if (!cardId) + return; + + ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[pressedNumber]._id); + } +}); + Mousetrap.bind('m', evt => { const cardId = getSelectedCardId(); if (!cardId) { @@ -333,5 +362,9 @@ Template.keyboardShortcuts.helpers({ keys: ['shift + number keys 1-9'], action: 'remove-labels-multiselect' }, + { + keys: ['ctrl + shift + number keys 1-9'], + action: 'toggle-asignees' + }, ], }); From e7d02c12eb223240cf780fda7877679f4be27381 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 22:23:21 +0200 Subject: [PATCH 284/356] Added translation for new assigning keyboard shortcut --- imports/i18n/data/en.i18n.json | 1 + 1 file changed, 1 insertion(+) diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -610,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", From deb3a8389a670daf3256bec1f0a663e49b479136 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 22:26:59 +0200 Subject: [PATCH 285/356] Fix member index bug in keyboard shortcut --- client/lib/keyboard.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index c80d3df32..caaf7b221 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -188,23 +188,23 @@ Mousetrap.bind(_.range(1, 10).map(x => `ctrl+alt+${x}`), (evt, key) => { if (!ReactiveCache.getCurrentUser().isBoardMember()) return; - const pressedNumber = parseInt(key.split("+").pop()) - 1; + const memberIndex = parseInt(key.split("+").pop()) - 1; const currentBoard = Utils.getCurrentBoard(); const boardMembers = currentBoard.memberUsers(); - if (pressedNumber > boardMembers.length) + if (memberIndex >= boardMembers.length) return; if (MultiSelection.isActive()) { for (const cardId of MultiSelection.getSelectedCardIds()) - ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[pressedNumber]._id); + ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id); } else { const cardId = getSelectedCardId(); if (!cardId) return; - ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[pressedNumber]._id); + ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id); } }); From f803190dd21fad8c2faca2a40c692a595bbe2a16 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 22:54:51 +0200 Subject: [PATCH 286/356] Change shortcut help message --- client/lib/keyboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index caaf7b221..111d2e7a4 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -363,7 +363,7 @@ Template.keyboardShortcuts.helpers({ action: 'remove-labels-multiselect' }, { - keys: ['ctrl + shift + number keys 1-9'], + keys: ['ctrl + alt + number keys 1-9'], action: 'toggle-asignees' }, ], From bd9d0c2d1b4cf91ca15e4c1674275aa6c108cc06 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 2 Jan 2025 06:11:10 +0200 Subject: [PATCH 287/356] Updated translations. --- imports/i18n/data/af.i18n.json | 1 + imports/i18n/data/af_ZA.i18n.json | 1 + imports/i18n/data/ar-DZ.i18n.json | 1 + imports/i18n/data/ar-EG.i18n.json | 1 + imports/i18n/data/ar.i18n.json | 1 + imports/i18n/data/ary.i18n.json | 1 + imports/i18n/data/ast-ES.i18n.json | 1 + imports/i18n/data/az-AZ.i18n.json | 1 + imports/i18n/data/az-LA.i18n.json | 1 + imports/i18n/data/az.i18n.json | 1 + imports/i18n/data/bg.i18n.json | 1 + imports/i18n/data/br.i18n.json | 1 + imports/i18n/data/ca.i18n.json | 1 + imports/i18n/data/ca_ES.i18n.json | 1 + imports/i18n/data/cmn.i18n.json | 1 + imports/i18n/data/cs-CZ.i18n.json | 1 + imports/i18n/data/cs.i18n.json | 1 + imports/i18n/data/cy-GB.i18n.json | 1 + imports/i18n/data/cy.i18n.json | 1 + imports/i18n/data/da.i18n.json | 1 + imports/i18n/data/de-AT.i18n.json | 1 + imports/i18n/data/de-CH.i18n.json | 1 + imports/i18n/data/de.i18n.json | 1 + imports/i18n/data/de_DE.i18n.json | 1 + imports/i18n/data/el-GR.i18n.json | 1 + imports/i18n/data/el.i18n.json | 1 + imports/i18n/data/en-BR.i18n.json | 1 + imports/i18n/data/en-DE.i18n.json | 1 + imports/i18n/data/en-GB.i18n.json | 1 + imports/i18n/data/en-IT.i18n.json | 1 + imports/i18n/data/en-MY.i18n.json | 1 + imports/i18n/data/en-YS.i18n.json | 1 + imports/i18n/data/en_TR.i18n.json | 1 + imports/i18n/data/en_ZA.i18n.json | 1 + imports/i18n/data/eo.i18n.json | 1 + imports/i18n/data/es-AR.i18n.json | 1 + imports/i18n/data/es-CL.i18n.json | 1 + imports/i18n/data/es-LA.i18n.json | 1 + imports/i18n/data/es-MX.i18n.json | 1 + imports/i18n/data/es-PE.i18n.json | 1 + imports/i18n/data/es-PY.i18n.json | 1 + imports/i18n/data/es.i18n.json | 1 + imports/i18n/data/es_CO.i18n.json | 1 + imports/i18n/data/et-EE.i18n.json | 1 + imports/i18n/data/eu.i18n.json | 1 + imports/i18n/data/fa-IR.i18n.json | 1 + imports/i18n/data/fa.i18n.json | 1 + imports/i18n/data/fi.i18n.json | 1 + imports/i18n/data/fr-CH.i18n.json | 1 + imports/i18n/data/fr-FR.i18n.json | 1 + imports/i18n/data/fr.i18n.json | 1 + imports/i18n/data/fy-NL.i18n.json | 1 + imports/i18n/data/fy.i18n.json | 1 + imports/i18n/data/gl-ES.i18n.json | 1 + imports/i18n/data/gl.i18n.json | 1 + imports/i18n/data/gu-IN.i18n.json | 1 + imports/i18n/data/he-IL.i18n.json | 1 + imports/i18n/data/he.i18n.json | 1 + imports/i18n/data/hi-IN.i18n.json | 1 + imports/i18n/data/hi.i18n.json | 1 + imports/i18n/data/hr.i18n.json | 1 + imports/i18n/data/hu.i18n.json | 1 + imports/i18n/data/hy.i18n.json | 1 + imports/i18n/data/id.i18n.json | 1 + imports/i18n/data/ig.i18n.json | 1 + imports/i18n/data/it.i18n.json | 1 + imports/i18n/data/ja-HI.i18n.json | 3 ++- imports/i18n/data/ja.i18n.json | 3 ++- imports/i18n/data/ka.i18n.json | 1 + imports/i18n/data/km.i18n.json | 1 + imports/i18n/data/ko-KR.i18n.json | 1 + imports/i18n/data/ko.i18n.json | 1 + imports/i18n/data/lt.i18n.json | 1 + imports/i18n/data/lv.i18n.json | 1 + imports/i18n/data/mk.i18n.json | 1 + imports/i18n/data/mn.i18n.json | 1 + imports/i18n/data/ms-MY.i18n.json | 1 + imports/i18n/data/ms.i18n.json | 1 + imports/i18n/data/nb.i18n.json | 1 + imports/i18n/data/nl-NL.i18n.json | 1 + imports/i18n/data/nl.i18n.json | 1 + imports/i18n/data/oc.i18n.json | 1 + imports/i18n/data/or_IN.i18n.json | 1 + imports/i18n/data/pa.i18n.json | 1 + imports/i18n/data/pl-PL.i18n.json | 1 + imports/i18n/data/pl.i18n.json | 1 + imports/i18n/data/pt-BR.i18n.json | 1 + imports/i18n/data/pt.i18n.json | 1 + imports/i18n/data/pt_PT.i18n.json | 1 + imports/i18n/data/ro-RO.i18n.json | 1 + imports/i18n/data/ro.i18n.json | 1 + imports/i18n/data/ru-UA.i18n.json | 1 + imports/i18n/data/ru.i18n.json | 1 + imports/i18n/data/sk.i18n.json | 1 + imports/i18n/data/sl.i18n.json | 1 + imports/i18n/data/sr.i18n.json | 1 + imports/i18n/data/sv.i18n.json | 3 ++- imports/i18n/data/sw.i18n.json | 1 + imports/i18n/data/ta.i18n.json | 1 + imports/i18n/data/te-IN.i18n.json | 1 + imports/i18n/data/th.i18n.json | 1 + imports/i18n/data/tk_TM.i18n.json | 1 + imports/i18n/data/tlh.i18n.json | 1 + imports/i18n/data/tr.i18n.json | 1 + imports/i18n/data/ug.i18n.json | 1 + imports/i18n/data/uk-UA.i18n.json | 1 + imports/i18n/data/uk.i18n.json | 1 + imports/i18n/data/uz-AR.i18n.json | 1 + imports/i18n/data/uz-LA.i18n.json | 1 + imports/i18n/data/uz-UZ.i18n.json | 1 + imports/i18n/data/uz.i18n.json | 1 + imports/i18n/data/ve-CC.i18n.json | 1 + imports/i18n/data/ve-PP.i18n.json | 1 + imports/i18n/data/ve.i18n.json | 1 + imports/i18n/data/vi-VN.i18n.json | 1 + imports/i18n/data/vi.i18n.json | 1 + imports/i18n/data/vl-SS.i18n.json | 1 + imports/i18n/data/vo.i18n.json | 1 + imports/i18n/data/wa-RR.i18n.json | 1 + imports/i18n/data/wa.i18n.json | 1 + imports/i18n/data/wo.i18n.json | 1 + imports/i18n/data/xh.i18n.json | 1 + imports/i18n/data/yi.i18n.json | 1 + imports/i18n/data/yo.i18n.json | 1 + imports/i18n/data/yue_CN.i18n.json | 1 + imports/i18n/data/zgh.i18n.json | 1 + imports/i18n/data/zh-CN.i18n.json | 1 + imports/i18n/data/zh-GB.i18n.json | 1 + imports/i18n/data/zh-HK.i18n.json | 1 + imports/i18n/data/zh-Hans.i18n.json | 1 + imports/i18n/data/zh-Hant.i18n.json | 1 + imports/i18n/data/zh-TW.i18n.json | 1 + imports/i18n/data/zh.i18n.json | 1 + imports/i18n/data/zu-ZA.i18n.json | 1 + imports/i18n/data/zu.i18n.json | 1 + 135 files changed, 138 insertions(+), 3 deletions(-) diff --git a/imports/i18n/data/af.i18n.json b/imports/i18n/data/af.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/af.i18n.json +++ b/imports/i18n/data/af.i18n.json @@ -610,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", diff --git a/imports/i18n/data/af_ZA.i18n.json b/imports/i18n/data/af_ZA.i18n.json index eabb5d012..8fccf0436 100644 --- a/imports/i18n/data/af_ZA.i18n.json +++ b/imports/i18n/data/af_ZA.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ar-DZ.i18n.json b/imports/i18n/data/ar-DZ.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/ar-DZ.i18n.json +++ b/imports/i18n/data/ar-DZ.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ar-EG.i18n.json b/imports/i18n/data/ar-EG.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/ar-EG.i18n.json +++ b/imports/i18n/data/ar-EG.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index d14228ad3..d856e16d3 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -610,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": "تتبع", diff --git a/imports/i18n/data/ary.i18n.json b/imports/i18n/data/ary.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/ary.i18n.json +++ b/imports/i18n/data/ary.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ast-ES.i18n.json b/imports/i18n/data/ast-ES.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/ast-ES.i18n.json +++ b/imports/i18n/data/ast-ES.i18n.json @@ -610,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", diff --git a/imports/i18n/data/az-AZ.i18n.json b/imports/i18n/data/az-AZ.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/az-AZ.i18n.json +++ b/imports/i18n/data/az-AZ.i18n.json @@ -610,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", diff --git a/imports/i18n/data/az-LA.i18n.json b/imports/i18n/data/az-LA.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/az-LA.i18n.json +++ b/imports/i18n/data/az-LA.i18n.json @@ -610,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", diff --git a/imports/i18n/data/az.i18n.json b/imports/i18n/data/az.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/az.i18n.json +++ b/imports/i18n/data/az.i18n.json @@ -610,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", diff --git a/imports/i18n/data/bg.i18n.json b/imports/i18n/data/bg.i18n.json index d1b13653f..d2d57c541 100644 --- a/imports/i18n/data/bg.i18n.json +++ b/imports/i18n/data/bg.i18n.json @@ -610,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": "Следене", diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index fd0bcf72d..4b41578ca 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ca.i18n.json b/imports/i18n/data/ca.i18n.json index 7b5477da4..2df3fdecd 100644 --- a/imports/i18n/data/ca.i18n.json +++ b/imports/i18n/data/ca.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ca_ES.i18n.json b/imports/i18n/data/ca_ES.i18n.json index df194004d..e1b030643 100644 --- a/imports/i18n/data/ca_ES.i18n.json +++ b/imports/i18n/data/ca_ES.i18n.json @@ -610,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", diff --git a/imports/i18n/data/cmn.i18n.json b/imports/i18n/data/cmn.i18n.json index 5c99ba0c6..d70852992 100644 --- a/imports/i18n/data/cmn.i18n.json +++ b/imports/i18n/data/cmn.i18n.json @@ -610,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", diff --git a/imports/i18n/data/cs-CZ.i18n.json b/imports/i18n/data/cs-CZ.i18n.json index 6519e8738..f3e20d7e1 100644 --- a/imports/i18n/data/cs-CZ.i18n.json +++ b/imports/i18n/data/cs-CZ.i18n.json @@ -610,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í", diff --git a/imports/i18n/data/cs.i18n.json b/imports/i18n/data/cs.i18n.json index cb8eb9998..c7c9fe283 100644 --- a/imports/i18n/data/cs.i18n.json +++ b/imports/i18n/data/cs.i18n.json @@ -610,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í", diff --git a/imports/i18n/data/cy-GB.i18n.json b/imports/i18n/data/cy-GB.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/cy-GB.i18n.json +++ b/imports/i18n/data/cy-GB.i18n.json @@ -610,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", diff --git a/imports/i18n/data/cy.i18n.json b/imports/i18n/data/cy.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/cy.i18n.json +++ b/imports/i18n/data/cy.i18n.json @@ -610,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", diff --git a/imports/i18n/data/da.i18n.json b/imports/i18n/data/da.i18n.json index 112a4af95..8b0746665 100644 --- a/imports/i18n/data/da.i18n.json +++ b/imports/i18n/data/da.i18n.json @@ -610,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", diff --git a/imports/i18n/data/de-AT.i18n.json b/imports/i18n/data/de-AT.i18n.json index 18a7c9d4c..79c5d3c79 100644 --- a/imports/i18n/data/de-AT.i18n.json +++ b/imports/i18n/data/de-AT.i18n.json @@ -610,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", diff --git a/imports/i18n/data/de-CH.i18n.json b/imports/i18n/data/de-CH.i18n.json index 207657e00..ee73d0818 100644 --- a/imports/i18n/data/de-CH.i18n.json +++ b/imports/i18n/data/de-CH.i18n.json @@ -610,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", diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index 2b6fb6ed1..c7e9c174d 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -610,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", diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index c4111ab7f..e9958d6df 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -610,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", diff --git a/imports/i18n/data/el-GR.i18n.json b/imports/i18n/data/el-GR.i18n.json index d16dc726b..6b15974c7 100644 --- a/imports/i18n/data/el-GR.i18n.json +++ b/imports/i18n/data/el-GR.i18n.json @@ -610,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": "Καταγραφή", diff --git a/imports/i18n/data/el.i18n.json b/imports/i18n/data/el.i18n.json index 4ef6140dd..519acc83d 100644 --- a/imports/i18n/data/el.i18n.json +++ b/imports/i18n/data/el.i18n.json @@ -610,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": "Καταγραφή", diff --git a/imports/i18n/data/en-BR.i18n.json b/imports/i18n/data/en-BR.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/en-BR.i18n.json +++ b/imports/i18n/data/en-BR.i18n.json @@ -610,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", diff --git a/imports/i18n/data/en-DE.i18n.json b/imports/i18n/data/en-DE.i18n.json index 45512bd51..d4d49d3fc 100644 --- a/imports/i18n/data/en-DE.i18n.json +++ b/imports/i18n/data/en-DE.i18n.json @@ -610,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", diff --git a/imports/i18n/data/en-GB.i18n.json b/imports/i18n/data/en-GB.i18n.json index db3517bae..a94fb6735 100644 --- a/imports/i18n/data/en-GB.i18n.json +++ b/imports/i18n/data/en-GB.i18n.json @@ -610,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", diff --git a/imports/i18n/data/en-IT.i18n.json b/imports/i18n/data/en-IT.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/en-IT.i18n.json +++ b/imports/i18n/data/en-IT.i18n.json @@ -610,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", diff --git a/imports/i18n/data/en-MY.i18n.json b/imports/i18n/data/en-MY.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/en-MY.i18n.json +++ b/imports/i18n/data/en-MY.i18n.json @@ -610,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", diff --git a/imports/i18n/data/en-YS.i18n.json b/imports/i18n/data/en-YS.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/en-YS.i18n.json +++ b/imports/i18n/data/en-YS.i18n.json @@ -610,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", diff --git a/imports/i18n/data/en_TR.i18n.json b/imports/i18n/data/en_TR.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/en_TR.i18n.json +++ b/imports/i18n/data/en_TR.i18n.json @@ -610,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", diff --git a/imports/i18n/data/en_ZA.i18n.json b/imports/i18n/data/en_ZA.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/en_ZA.i18n.json +++ b/imports/i18n/data/en_ZA.i18n.json @@ -610,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", diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index af02f56a8..25813426e 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -610,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", diff --git a/imports/i18n/data/es-AR.i18n.json b/imports/i18n/data/es-AR.i18n.json index 25019b45d..6cf75dff1 100644 --- a/imports/i18n/data/es-AR.i18n.json +++ b/imports/i18n/data/es-AR.i18n.json @@ -610,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", diff --git a/imports/i18n/data/es-CL.i18n.json b/imports/i18n/data/es-CL.i18n.json index 20cb1b507..f75864c47 100644 --- a/imports/i18n/data/es-CL.i18n.json +++ b/imports/i18n/data/es-CL.i18n.json @@ -610,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", diff --git a/imports/i18n/data/es-LA.i18n.json b/imports/i18n/data/es-LA.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/es-LA.i18n.json +++ b/imports/i18n/data/es-LA.i18n.json @@ -610,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", diff --git a/imports/i18n/data/es-MX.i18n.json b/imports/i18n/data/es-MX.i18n.json index 439dea796..231dcd697 100644 --- a/imports/i18n/data/es-MX.i18n.json +++ b/imports/i18n/data/es-MX.i18n.json @@ -610,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", diff --git a/imports/i18n/data/es-PE.i18n.json b/imports/i18n/data/es-PE.i18n.json index 3e015ad9f..2fd40ea35 100644 --- a/imports/i18n/data/es-PE.i18n.json +++ b/imports/i18n/data/es-PE.i18n.json @@ -610,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", diff --git a/imports/i18n/data/es-PY.i18n.json b/imports/i18n/data/es-PY.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/es-PY.i18n.json +++ b/imports/i18n/data/es-PY.i18n.json @@ -610,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", diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index a48bc7fdc..8afa1c4da 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -610,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": "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", diff --git a/imports/i18n/data/es_CO.i18n.json b/imports/i18n/data/es_CO.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/es_CO.i18n.json +++ b/imports/i18n/data/es_CO.i18n.json @@ -610,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", diff --git a/imports/i18n/data/et-EE.i18n.json b/imports/i18n/data/et-EE.i18n.json index 5782a5a3a..637b26f3d 100644 --- a/imports/i18n/data/et-EE.i18n.json +++ b/imports/i18n/data/et-EE.i18n.json @@ -610,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", diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 72c68ad4c..9a0fc5765 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -610,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", diff --git a/imports/i18n/data/fa-IR.i18n.json b/imports/i18n/data/fa-IR.i18n.json index 7689d6c46..a87aa16e2 100644 --- a/imports/i18n/data/fa-IR.i18n.json +++ b/imports/i18n/data/fa-IR.i18n.json @@ -610,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": "پیگردی", diff --git a/imports/i18n/data/fa.i18n.json b/imports/i18n/data/fa.i18n.json index fbb5ff195..3de3d5958 100644 --- a/imports/i18n/data/fa.i18n.json +++ b/imports/i18n/data/fa.i18n.json @@ -610,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": "پیگردی", diff --git a/imports/i18n/data/fi.i18n.json b/imports/i18n/data/fi.i18n.json index 9d05373bd..c49b3b027 100644 --- a/imports/i18n/data/fi.i18n.json +++ b/imports/i18n/data/fi.i18n.json @@ -610,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", diff --git a/imports/i18n/data/fr-CH.i18n.json b/imports/i18n/data/fr-CH.i18n.json index f7309a9c5..ef012b863 100644 --- a/imports/i18n/data/fr-CH.i18n.json +++ b/imports/i18n/data/fr-CH.i18n.json @@ -610,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", diff --git a/imports/i18n/data/fr-FR.i18n.json b/imports/i18n/data/fr-FR.i18n.json index 49dce9563..9a699f4f1 100644 --- a/imports/i18n/data/fr-FR.i18n.json +++ b/imports/i18n/data/fr-FR.i18n.json @@ -610,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", diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index 0ad6a972d..f0a409f34 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -610,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", diff --git a/imports/i18n/data/fy-NL.i18n.json b/imports/i18n/data/fy-NL.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/fy-NL.i18n.json +++ b/imports/i18n/data/fy-NL.i18n.json @@ -610,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", diff --git a/imports/i18n/data/fy.i18n.json b/imports/i18n/data/fy.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/fy.i18n.json +++ b/imports/i18n/data/fy.i18n.json @@ -610,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", diff --git a/imports/i18n/data/gl-ES.i18n.json b/imports/i18n/data/gl-ES.i18n.json index 5e464d475..debd1d7a6 100644 --- a/imports/i18n/data/gl-ES.i18n.json +++ b/imports/i18n/data/gl-ES.i18n.json @@ -610,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", diff --git a/imports/i18n/data/gl.i18n.json b/imports/i18n/data/gl.i18n.json index ef86721bb..e6c9a4f7b 100644 --- a/imports/i18n/data/gl.i18n.json +++ b/imports/i18n/data/gl.i18n.json @@ -610,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", diff --git a/imports/i18n/data/gu-IN.i18n.json b/imports/i18n/data/gu-IN.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/gu-IN.i18n.json +++ b/imports/i18n/data/gu-IN.i18n.json @@ -610,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", diff --git a/imports/i18n/data/he-IL.i18n.json b/imports/i18n/data/he-IL.i18n.json index 722a0ff53..990c782ce 100644 --- a/imports/i18n/data/he-IL.i18n.json +++ b/imports/i18n/data/he-IL.i18n.json @@ -610,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", diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index 3626358e1..e9c7e28b6 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -610,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": "מעקב", diff --git a/imports/i18n/data/hi-IN.i18n.json b/imports/i18n/data/hi-IN.i18n.json index 002ff6a8e..3cf97f1d2 100644 --- a/imports/i18n/data/hi-IN.i18n.json +++ b/imports/i18n/data/hi-IN.i18n.json @@ -610,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", diff --git a/imports/i18n/data/hi.i18n.json b/imports/i18n/data/hi.i18n.json index 24a7ece0c..42ebe2e17 100644 --- a/imports/i18n/data/hi.i18n.json +++ b/imports/i18n/data/hi.i18n.json @@ -610,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", diff --git a/imports/i18n/data/hr.i18n.json b/imports/i18n/data/hr.i18n.json index 0734dba51..2d4fa09a9 100644 --- a/imports/i18n/data/hr.i18n.json +++ b/imports/i18n/data/hr.i18n.json @@ -610,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", diff --git a/imports/i18n/data/hu.i18n.json b/imports/i18n/data/hu.i18n.json index 5ee3c5b92..f9fd484dd 100644 --- a/imports/i18n/data/hu.i18n.json +++ b/imports/i18n/data/hu.i18n.json @@ -610,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", diff --git a/imports/i18n/data/hy.i18n.json b/imports/i18n/data/hy.i18n.json index 5e3b256c3..30dd32623 100644 --- a/imports/i18n/data/hy.i18n.json +++ b/imports/i18n/data/hy.i18n.json @@ -610,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", diff --git a/imports/i18n/data/id.i18n.json b/imports/i18n/data/id.i18n.json index 252b7becf..8622fbd5c 100644 --- a/imports/i18n/data/id.i18n.json +++ b/imports/i18n/data/id.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ig.i18n.json b/imports/i18n/data/ig.i18n.json index 0c514b047..e3e72228b 100644 --- a/imports/i18n/data/ig.i18n.json +++ b/imports/i18n/data/ig.i18n.json @@ -610,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", diff --git a/imports/i18n/data/it.i18n.json b/imports/i18n/data/it.i18n.json index 86d2c57ca..02823679d 100644 --- a/imports/i18n/data/it.i18n.json +++ b/imports/i18n/data/it.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index 4907488ee..4e9635c07 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -383,7 +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-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", @@ -610,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", diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index df5fe38a6..7fa06bb0e 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -383,7 +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-vertical-scrollbars": "縦スクロールバーを有効にする", "enable-wip-limit": "仕掛中制限を有効化", "error-board-doesNotExist": "ボードがありません", "error-board-notAdmin": "操作にはボードの管理者権限が必要です", @@ -610,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": "複数選択でラベル1-9を削除します", "tracking": "トラッキング", diff --git a/imports/i18n/data/ka.i18n.json b/imports/i18n/data/ka.i18n.json index f135a9c6e..5f6aefc07 100644 --- a/imports/i18n/data/ka.i18n.json +++ b/imports/i18n/data/ka.i18n.json @@ -610,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": "მონიტორინგი", diff --git a/imports/i18n/data/km.i18n.json b/imports/i18n/data/km.i18n.json index 098450ce6..13ae6435d 100644 --- a/imports/i18n/data/km.i18n.json +++ b/imports/i18n/data/km.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ko-KR.i18n.json b/imports/i18n/data/ko-KR.i18n.json index 234e3f6ef..49c2b1b2b 100644 --- a/imports/i18n/data/ko-KR.i18n.json +++ b/imports/i18n/data/ko-KR.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ko.i18n.json b/imports/i18n/data/ko.i18n.json index 89b4c46c4..21e365887 100644 --- a/imports/i18n/data/ko.i18n.json +++ b/imports/i18n/data/ko.i18n.json @@ -610,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": "추적", diff --git a/imports/i18n/data/lt.i18n.json b/imports/i18n/data/lt.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/lt.i18n.json +++ b/imports/i18n/data/lt.i18n.json @@ -610,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", diff --git a/imports/i18n/data/lv.i18n.json b/imports/i18n/data/lv.i18n.json index 4714a8938..37cfccbf2 100644 --- a/imports/i18n/data/lv.i18n.json +++ b/imports/i18n/data/lv.i18n.json @@ -610,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", diff --git a/imports/i18n/data/mk.i18n.json b/imports/i18n/data/mk.i18n.json index ac89b62d0..95c850db8 100644 --- a/imports/i18n/data/mk.i18n.json +++ b/imports/i18n/data/mk.i18n.json @@ -610,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": "Следене", diff --git a/imports/i18n/data/mn.i18n.json b/imports/i18n/data/mn.i18n.json index a250f0e98..b56845d4c 100644 --- a/imports/i18n/data/mn.i18n.json +++ b/imports/i18n/data/mn.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/ms-MY.i18n.json +++ b/imports/i18n/data/ms-MY.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ms.i18n.json b/imports/i18n/data/ms.i18n.json index 5f8f4da0d..70fa1d372 100644 --- a/imports/i18n/data/ms.i18n.json +++ b/imports/i18n/data/ms.i18n.json @@ -610,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", diff --git a/imports/i18n/data/nb.i18n.json b/imports/i18n/data/nb.i18n.json index 6704684c5..023d1c7d1 100644 --- a/imports/i18n/data/nb.i18n.json +++ b/imports/i18n/data/nb.i18n.json @@ -610,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", diff --git a/imports/i18n/data/nl-NL.i18n.json b/imports/i18n/data/nl-NL.i18n.json index 03ce0f8b6..b635c253b 100644 --- a/imports/i18n/data/nl-NL.i18n.json +++ b/imports/i18n/data/nl-NL.i18n.json @@ -610,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", diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 959aeb264..a3404cf66 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -610,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", diff --git a/imports/i18n/data/oc.i18n.json b/imports/i18n/data/oc.i18n.json index 46220404c..afe071cbb 100644 --- a/imports/i18n/data/oc.i18n.json +++ b/imports/i18n/data/oc.i18n.json @@ -610,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", diff --git a/imports/i18n/data/or_IN.i18n.json b/imports/i18n/data/or_IN.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/or_IN.i18n.json +++ b/imports/i18n/data/or_IN.i18n.json @@ -610,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", diff --git a/imports/i18n/data/pa.i18n.json b/imports/i18n/data/pa.i18n.json index f3a04d4b8..cb56272af 100644 --- a/imports/i18n/data/pa.i18n.json +++ b/imports/i18n/data/pa.i18n.json @@ -610,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", diff --git a/imports/i18n/data/pl-PL.i18n.json b/imports/i18n/data/pl-PL.i18n.json index 3c6d0dd37..336179581 100644 --- a/imports/i18n/data/pl-PL.i18n.json +++ b/imports/i18n/data/pl-PL.i18n.json @@ -610,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ź", diff --git a/imports/i18n/data/pl.i18n.json b/imports/i18n/data/pl.i18n.json index 832c4373f..31c1dba8c 100644 --- a/imports/i18n/data/pl.i18n.json +++ b/imports/i18n/data/pl.i18n.json @@ -610,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ź", diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index dfa52becb..08d10df49 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -610,6 +610,7 @@ "has-spenttime-cards": "Gastou cartões de tempo", "time": "Tempo", "title": "Título", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "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", diff --git a/imports/i18n/data/pt.i18n.json b/imports/i18n/data/pt.i18n.json index 41694686f..9ee424771 100644 --- a/imports/i18n/data/pt.i18n.json +++ b/imports/i18n/data/pt.i18n.json @@ -610,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", diff --git a/imports/i18n/data/pt_PT.i18n.json b/imports/i18n/data/pt_PT.i18n.json index b9c8b3e75..5b246c5cd 100644 --- a/imports/i18n/data/pt_PT.i18n.json +++ b/imports/i18n/data/pt_PT.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ro-RO.i18n.json b/imports/i18n/data/ro-RO.i18n.json index 23e12f6cf..fc431a080 100644 --- a/imports/i18n/data/ro-RO.i18n.json +++ b/imports/i18n/data/ro-RO.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ro.i18n.json b/imports/i18n/data/ro.i18n.json index 36c8beb56..f69a6da71 100644 --- a/imports/i18n/data/ro.i18n.json +++ b/imports/i18n/data/ro.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ru-UA.i18n.json b/imports/i18n/data/ru-UA.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/ru-UA.i18n.json +++ b/imports/i18n/data/ru-UA.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ru.i18n.json b/imports/i18n/data/ru.i18n.json index 11f6f6575..f0b03f5a1 100644 --- a/imports/i18n/data/ru.i18n.json +++ b/imports/i18n/data/ru.i18n.json @@ -610,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": "Отслеживание", diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index 04ab0cfca..7a017afef 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -610,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Čas", "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", diff --git a/imports/i18n/data/sl.i18n.json b/imports/i18n/data/sl.i18n.json index fa8e4f348..a1970740e 100644 --- a/imports/i18n/data/sl.i18n.json +++ b/imports/i18n/data/sl.i18n.json @@ -610,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", diff --git a/imports/i18n/data/sr.i18n.json b/imports/i18n/data/sr.i18n.json index c7ddf0c0f..c35c0c42b 100644 --- a/imports/i18n/data/sr.i18n.json +++ b/imports/i18n/data/sr.i18n.json @@ -610,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": "Праћење", diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index eeb1c7c66..28c669d2e 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -383,7 +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": "Enable vertical scrollbars", + "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", @@ -610,6 +610,7 @@ "has-spenttime-cards": "Har spenderat tidkort", "time": "Tid", "title": "Titel", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "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", diff --git a/imports/i18n/data/sw.i18n.json b/imports/i18n/data/sw.i18n.json index ada1bff1e..b3213f2fc 100644 --- a/imports/i18n/data/sw.i18n.json +++ b/imports/i18n/data/sw.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ta.i18n.json b/imports/i18n/data/ta.i18n.json index 6c383fcb3..34814bf31 100644 --- a/imports/i18n/data/ta.i18n.json +++ b/imports/i18n/data/ta.i18n.json @@ -610,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", diff --git a/imports/i18n/data/te-IN.i18n.json b/imports/i18n/data/te-IN.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/te-IN.i18n.json +++ b/imports/i18n/data/te-IN.i18n.json @@ -610,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", diff --git a/imports/i18n/data/th.i18n.json b/imports/i18n/data/th.i18n.json index adeaebb9e..f34672746 100644 --- a/imports/i18n/data/th.i18n.json +++ b/imports/i18n/data/th.i18n.json @@ -610,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": "ติดตาม", diff --git a/imports/i18n/data/tk_TM.i18n.json b/imports/i18n/data/tk_TM.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/tk_TM.i18n.json +++ b/imports/i18n/data/tk_TM.i18n.json @@ -610,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", diff --git a/imports/i18n/data/tlh.i18n.json b/imports/i18n/data/tlh.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/tlh.i18n.json +++ b/imports/i18n/data/tlh.i18n.json @@ -610,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", diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index b1f3a65e5..f7b709205 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ug.i18n.json b/imports/i18n/data/ug.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/ug.i18n.json +++ b/imports/i18n/data/ug.i18n.json @@ -610,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", diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index d7fbe488b..bd0cec7b8 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -610,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": "Відстеження", diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index 4e8e15b68..7917ebe3a 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -610,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": "Відстеження", diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz-AR.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/uz-AR.i18n.json +++ b/imports/i18n/data/uz-AR.i18n.json @@ -610,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", diff --git a/imports/i18n/data/uz-LA.i18n.json b/imports/i18n/data/uz-LA.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/uz-LA.i18n.json +++ b/imports/i18n/data/uz-LA.i18n.json @@ -610,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", diff --git a/imports/i18n/data/uz-UZ.i18n.json b/imports/i18n/data/uz-UZ.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/uz-UZ.i18n.json +++ b/imports/i18n/data/uz-UZ.i18n.json @@ -610,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", diff --git a/imports/i18n/data/uz.i18n.json b/imports/i18n/data/uz.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/uz.i18n.json +++ b/imports/i18n/data/uz.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ve-CC.i18n.json b/imports/i18n/data/ve-CC.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/ve-CC.i18n.json +++ b/imports/i18n/data/ve-CC.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ve-PP.i18n.json b/imports/i18n/data/ve-PP.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/ve-PP.i18n.json +++ b/imports/i18n/data/ve-PP.i18n.json @@ -610,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", diff --git a/imports/i18n/data/ve.i18n.json b/imports/i18n/data/ve.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/ve.i18n.json +++ b/imports/i18n/data/ve.i18n.json @@ -610,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", diff --git a/imports/i18n/data/vi-VN.i18n.json b/imports/i18n/data/vi-VN.i18n.json index ff83b6a36..04786406b 100644 --- a/imports/i18n/data/vi-VN.i18n.json +++ b/imports/i18n/data/vi-VN.i18n.json @@ -610,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", diff --git a/imports/i18n/data/vi.i18n.json b/imports/i18n/data/vi.i18n.json index 98a96332e..3422fe92f 100644 --- a/imports/i18n/data/vi.i18n.json +++ b/imports/i18n/data/vi.i18n.json @@ -610,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", diff --git a/imports/i18n/data/vl-SS.i18n.json b/imports/i18n/data/vl-SS.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/vl-SS.i18n.json +++ b/imports/i18n/data/vl-SS.i18n.json @@ -610,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", diff --git a/imports/i18n/data/vo.i18n.json b/imports/i18n/data/vo.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/vo.i18n.json +++ b/imports/i18n/data/vo.i18n.json @@ -610,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", diff --git a/imports/i18n/data/wa-RR.i18n.json b/imports/i18n/data/wa-RR.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/wa-RR.i18n.json +++ b/imports/i18n/data/wa-RR.i18n.json @@ -610,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", diff --git a/imports/i18n/data/wa.i18n.json b/imports/i18n/data/wa.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/wa.i18n.json +++ b/imports/i18n/data/wa.i18n.json @@ -610,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", diff --git a/imports/i18n/data/wo.i18n.json b/imports/i18n/data/wo.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/wo.i18n.json +++ b/imports/i18n/data/wo.i18n.json @@ -610,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", diff --git a/imports/i18n/data/xh.i18n.json b/imports/i18n/data/xh.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/xh.i18n.json +++ b/imports/i18n/data/xh.i18n.json @@ -610,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", diff --git a/imports/i18n/data/yi.i18n.json b/imports/i18n/data/yi.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/yi.i18n.json +++ b/imports/i18n/data/yi.i18n.json @@ -610,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", diff --git a/imports/i18n/data/yo.i18n.json b/imports/i18n/data/yo.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/yo.i18n.json +++ b/imports/i18n/data/yo.i18n.json @@ -610,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", diff --git a/imports/i18n/data/yue_CN.i18n.json b/imports/i18n/data/yue_CN.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/yue_CN.i18n.json +++ b/imports/i18n/data/yue_CN.i18n.json @@ -610,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", diff --git a/imports/i18n/data/zgh.i18n.json b/imports/i18n/data/zgh.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/zgh.i18n.json +++ b/imports/i18n/data/zgh.i18n.json @@ -610,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", diff --git a/imports/i18n/data/zh-CN.i18n.json b/imports/i18n/data/zh-CN.i18n.json index 0585c4d48..5c6088560 100644 --- a/imports/i18n/data/zh-CN.i18n.json +++ b/imports/i18n/data/zh-CN.i18n.json @@ -610,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": "跟踪", diff --git a/imports/i18n/data/zh-GB.i18n.json b/imports/i18n/data/zh-GB.i18n.json index e8368896b..0951bf07f 100644 --- a/imports/i18n/data/zh-GB.i18n.json +++ b/imports/i18n/data/zh-GB.i18n.json @@ -610,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", diff --git a/imports/i18n/data/zh-HK.i18n.json b/imports/i18n/data/zh-HK.i18n.json index d264e7cec..6e002b4cc 100644 --- a/imports/i18n/data/zh-HK.i18n.json +++ b/imports/i18n/data/zh-HK.i18n.json @@ -610,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", diff --git a/imports/i18n/data/zh-Hans.i18n.json b/imports/i18n/data/zh-Hans.i18n.json index 576231bfd..a56f4d3b4 100644 --- a/imports/i18n/data/zh-Hans.i18n.json +++ b/imports/i18n/data/zh-Hans.i18n.json @@ -610,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", diff --git a/imports/i18n/data/zh-Hant.i18n.json b/imports/i18n/data/zh-Hant.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/zh-Hant.i18n.json +++ b/imports/i18n/data/zh-Hant.i18n.json @@ -610,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", diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index 8bcaa6206..67234db97 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -610,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": "訂閱相關通知", diff --git a/imports/i18n/data/zh.i18n.json b/imports/i18n/data/zh.i18n.json index 22f7af1b9..9900af1bc 100644 --- a/imports/i18n/data/zh.i18n.json +++ b/imports/i18n/data/zh.i18n.json @@ -610,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", diff --git a/imports/i18n/data/zu-ZA.i18n.json b/imports/i18n/data/zu-ZA.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/zu-ZA.i18n.json +++ b/imports/i18n/data/zu-ZA.i18n.json @@ -610,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", diff --git a/imports/i18n/data/zu.i18n.json b/imports/i18n/data/zu.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/zu.i18n.json +++ b/imports/i18n/data/zu.i18n.json @@ -610,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", From 58ad80218ab27e01af35f96e65dd4251794eca43 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 2 Jan 2025 12:40:14 +0200 Subject: [PATCH 288/356] Updated translations. --- imports/i18n/data/af.i18n.json | 1 + imports/i18n/data/af_ZA.i18n.json | 1 + imports/i18n/data/ar-DZ.i18n.json | 1 + imports/i18n/data/ar-EG.i18n.json | 1 + imports/i18n/data/ar.i18n.json | 1 + imports/i18n/data/ary.i18n.json | 1 + imports/i18n/data/ast-ES.i18n.json | 1 + imports/i18n/data/az-AZ.i18n.json | 1 + imports/i18n/data/az-LA.i18n.json | 1 + imports/i18n/data/az.i18n.json | 1 + imports/i18n/data/bg.i18n.json | 1 + imports/i18n/data/br.i18n.json | 1 + imports/i18n/data/ca.i18n.json | 1 + imports/i18n/data/ca_ES.i18n.json | 1 + imports/i18n/data/cmn.i18n.json | 1 + imports/i18n/data/cs-CZ.i18n.json | 1 + imports/i18n/data/cs.i18n.json | 1 + imports/i18n/data/cy-GB.i18n.json | 1 + imports/i18n/data/cy.i18n.json | 1 + imports/i18n/data/da.i18n.json | 1 + imports/i18n/data/de-AT.i18n.json | 1 + imports/i18n/data/de-CH.i18n.json | 1 + imports/i18n/data/de.i18n.json | 33 +++++++++++++++-------------- imports/i18n/data/de_DE.i18n.json | 1 + imports/i18n/data/el-GR.i18n.json | 1 + imports/i18n/data/el.i18n.json | 1 + imports/i18n/data/en-BR.i18n.json | 1 + imports/i18n/data/en-DE.i18n.json | 1 + imports/i18n/data/en-GB.i18n.json | 1 + imports/i18n/data/en-IT.i18n.json | 1 + imports/i18n/data/en-MY.i18n.json | 1 + imports/i18n/data/en-YS.i18n.json | 1 + imports/i18n/data/en_TR.i18n.json | 1 + imports/i18n/data/en_ZA.i18n.json | 1 + imports/i18n/data/eo.i18n.json | 1 + imports/i18n/data/es-AR.i18n.json | 1 + imports/i18n/data/es-CL.i18n.json | 1 + imports/i18n/data/es-LA.i18n.json | 1 + imports/i18n/data/es-MX.i18n.json | 1 + imports/i18n/data/es-PE.i18n.json | 1 + imports/i18n/data/es-PY.i18n.json | 1 + imports/i18n/data/es.i18n.json | 1 + imports/i18n/data/es_CO.i18n.json | 1 + imports/i18n/data/et-EE.i18n.json | 1 + imports/i18n/data/eu.i18n.json | 1 + imports/i18n/data/fa-IR.i18n.json | 1 + imports/i18n/data/fa.i18n.json | 1 + imports/i18n/data/fi.i18n.json | 1 + imports/i18n/data/fr-CH.i18n.json | 1 + imports/i18n/data/fr-FR.i18n.json | 1 + imports/i18n/data/fr.i18n.json | 1 + imports/i18n/data/fy-NL.i18n.json | 1 + imports/i18n/data/fy.i18n.json | 1 + imports/i18n/data/gl-ES.i18n.json | 1 + imports/i18n/data/gl.i18n.json | 1 + imports/i18n/data/gu-IN.i18n.json | 1 + imports/i18n/data/he-IL.i18n.json | 1 + imports/i18n/data/he.i18n.json | 1 + imports/i18n/data/hi-IN.i18n.json | 1 + imports/i18n/data/hi.i18n.json | 1 + imports/i18n/data/hr.i18n.json | 1 + imports/i18n/data/hu.i18n.json | 1 + imports/i18n/data/hy.i18n.json | 1 + imports/i18n/data/id.i18n.json | 1 + imports/i18n/data/ig.i18n.json | 1 + imports/i18n/data/it.i18n.json | 1 + imports/i18n/data/ja-HI.i18n.json | 3 ++- imports/i18n/data/ja.i18n.json | 3 ++- imports/i18n/data/ka.i18n.json | 1 + imports/i18n/data/km.i18n.json | 1 + imports/i18n/data/ko-KR.i18n.json | 1 + imports/i18n/data/ko.i18n.json | 1 + imports/i18n/data/lt.i18n.json | 1 + imports/i18n/data/lv.i18n.json | 1 + imports/i18n/data/mk.i18n.json | 1 + imports/i18n/data/mn.i18n.json | 1 + imports/i18n/data/ms-MY.i18n.json | 1 + imports/i18n/data/ms.i18n.json | 1 + imports/i18n/data/nb.i18n.json | 1 + imports/i18n/data/nl-NL.i18n.json | 1 + imports/i18n/data/nl.i18n.json | 5 +++-- imports/i18n/data/oc.i18n.json | 1 + imports/i18n/data/or_IN.i18n.json | 1 + imports/i18n/data/pa.i18n.json | 1 + imports/i18n/data/pl-PL.i18n.json | 1 + imports/i18n/data/pl.i18n.json | 1 + imports/i18n/data/pt-BR.i18n.json | 1 + imports/i18n/data/pt.i18n.json | 1 + imports/i18n/data/pt_PT.i18n.json | 1 + imports/i18n/data/ro-RO.i18n.json | 1 + imports/i18n/data/ro.i18n.json | 1 + imports/i18n/data/ru-UA.i18n.json | 1 + imports/i18n/data/ru.i18n.json | 1 + imports/i18n/data/sk.i18n.json | 1 + imports/i18n/data/sl.i18n.json | 1 + imports/i18n/data/sr.i18n.json | 1 + imports/i18n/data/sv.i18n.json | 1 + imports/i18n/data/sw.i18n.json | 1 + imports/i18n/data/ta.i18n.json | 1 + imports/i18n/data/te-IN.i18n.json | 1 + imports/i18n/data/th.i18n.json | 1 + imports/i18n/data/tk_TM.i18n.json | 1 + imports/i18n/data/tlh.i18n.json | 1 + imports/i18n/data/tr.i18n.json | 1 + imports/i18n/data/ug.i18n.json | 1 + imports/i18n/data/uk-UA.i18n.json | 1 + imports/i18n/data/uk.i18n.json | 1 + imports/i18n/data/uz-AR.i18n.json | 1 + imports/i18n/data/uz-LA.i18n.json | 1 + imports/i18n/data/uz-UZ.i18n.json | 1 + imports/i18n/data/uz.i18n.json | 1 + imports/i18n/data/ve-CC.i18n.json | 1 + imports/i18n/data/ve-PP.i18n.json | 1 + imports/i18n/data/ve.i18n.json | 1 + imports/i18n/data/vi-VN.i18n.json | 1 + imports/i18n/data/vi.i18n.json | 1 + imports/i18n/data/vl-SS.i18n.json | 1 + imports/i18n/data/vo.i18n.json | 1 + imports/i18n/data/wa-RR.i18n.json | 1 + imports/i18n/data/wa.i18n.json | 1 + imports/i18n/data/wo.i18n.json | 1 + imports/i18n/data/xh.i18n.json | 1 + imports/i18n/data/yi.i18n.json | 1 + imports/i18n/data/yo.i18n.json | 1 + imports/i18n/data/yue_CN.i18n.json | 1 + imports/i18n/data/zgh.i18n.json | 1 + imports/i18n/data/zh-CN.i18n.json | 1 + imports/i18n/data/zh-GB.i18n.json | 1 + imports/i18n/data/zh-HK.i18n.json | 1 + imports/i18n/data/zh-Hans.i18n.json | 1 + imports/i18n/data/zh-Hant.i18n.json | 1 + imports/i18n/data/zh-TW.i18n.json | 1 + imports/i18n/data/zh.i18n.json | 1 + imports/i18n/data/zu-ZA.i18n.json | 1 + imports/i18n/data/zu.i18n.json | 1 + 135 files changed, 155 insertions(+), 20 deletions(-) diff --git a/imports/i18n/data/af.i18n.json b/imports/i18n/data/af.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/af.i18n.json +++ b/imports/i18n/data/af.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/af_ZA.i18n.json b/imports/i18n/data/af_ZA.i18n.json index 8fccf0436..e756e6377 100644 --- a/imports/i18n/data/af_ZA.i18n.json +++ b/imports/i18n/data/af_ZA.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ar-DZ.i18n.json b/imports/i18n/data/ar-DZ.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/ar-DZ.i18n.json +++ b/imports/i18n/data/ar-DZ.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ar-EG.i18n.json b/imports/i18n/data/ar-EG.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/ar-EG.i18n.json +++ b/imports/i18n/data/ar-EG.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index d856e16d3..aab82bc46 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -1257,6 +1257,7 @@ "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": "انهيار", diff --git a/imports/i18n/data/ary.i18n.json b/imports/i18n/data/ary.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/ary.i18n.json +++ b/imports/i18n/data/ary.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ast-ES.i18n.json b/imports/i18n/data/ast-ES.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/ast-ES.i18n.json +++ b/imports/i18n/data/ast-ES.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/az-AZ.i18n.json b/imports/i18n/data/az-AZ.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/az-AZ.i18n.json +++ b/imports/i18n/data/az-AZ.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/az-LA.i18n.json b/imports/i18n/data/az-LA.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/az-LA.i18n.json +++ b/imports/i18n/data/az-LA.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/az.i18n.json b/imports/i18n/data/az.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/az.i18n.json +++ b/imports/i18n/data/az.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/bg.i18n.json b/imports/i18n/data/bg.i18n.json index d2d57c541..36ffe06f4 100644 --- a/imports/i18n/data/bg.i18n.json +++ b/imports/i18n/data/bg.i18n.json @@ -1257,6 +1257,7 @@ "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": "Събери", diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index 4b41578ca..9ee08f252 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ca.i18n.json b/imports/i18n/data/ca.i18n.json index 2df3fdecd..7ff6f51f8 100644 --- a/imports/i18n/data/ca.i18n.json +++ b/imports/i18n/data/ca.i18n.json @@ -1257,6 +1257,7 @@ "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": "Contraure", diff --git a/imports/i18n/data/ca_ES.i18n.json b/imports/i18n/data/ca_ES.i18n.json index e1b030643..e87e7f1c3 100644 --- a/imports/i18n/data/ca_ES.i18n.json +++ b/imports/i18n/data/ca_ES.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/cmn.i18n.json b/imports/i18n/data/cmn.i18n.json index d70852992..72d99aaa3 100644 --- a/imports/i18n/data/cmn.i18n.json +++ b/imports/i18n/data/cmn.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/cs-CZ.i18n.json b/imports/i18n/data/cs-CZ.i18n.json index f3e20d7e1..51e07ec5d 100644 --- a/imports/i18n/data/cs-CZ.i18n.json +++ b/imports/i18n/data/cs-CZ.i18n.json @@ -1257,6 +1257,7 @@ "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": "Sbalit", diff --git a/imports/i18n/data/cs.i18n.json b/imports/i18n/data/cs.i18n.json index c7c9fe283..e529b4195 100644 --- a/imports/i18n/data/cs.i18n.json +++ b/imports/i18n/data/cs.i18n.json @@ -1257,6 +1257,7 @@ "text": "Text", "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", "collapse": "Sbalit", diff --git a/imports/i18n/data/cy-GB.i18n.json b/imports/i18n/data/cy-GB.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/cy-GB.i18n.json +++ b/imports/i18n/data/cy-GB.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/cy.i18n.json b/imports/i18n/data/cy.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/cy.i18n.json +++ b/imports/i18n/data/cy.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/da.i18n.json b/imports/i18n/data/da.i18n.json index 8b0746665..26cf86c80 100644 --- a/imports/i18n/data/da.i18n.json +++ b/imports/i18n/data/da.i18n.json @@ -1257,6 +1257,7 @@ "text": "Tekst", "translation-text": "Oversættelsestekst", "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", "collapse": "Sammenfold", diff --git a/imports/i18n/data/de-AT.i18n.json b/imports/i18n/data/de-AT.i18n.json index 79c5d3c79..0281a474d 100644 --- a/imports/i18n/data/de-AT.i18n.json +++ b/imports/i18n/data/de-AT.i18n.json @@ -1257,6 +1257,7 @@ "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": "Einklappen", diff --git a/imports/i18n/data/de-CH.i18n.json b/imports/i18n/data/de-CH.i18n.json index ee73d0818..e52b93ad6 100644 --- a/imports/i18n/data/de-CH.i18n.json +++ b/imports/i18n/data/de-CH.i18n.json @@ -1257,6 +1257,7 @@ "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": "Einklappen", diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index c7e9c174d..dc221f249 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -86,12 +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 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.", + "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)", @@ -266,9 +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", + "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", @@ -383,7 +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-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", @@ -610,7 +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-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", @@ -1257,15 +1257,16 @@ "text": "Text", "translation-text": "Übersetzungstext", "show-subtasks-field": "Teilaufgaben Feld anzeigen", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Als Markdown konvertieren", "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": "Accessibility page enabled", - "accessibility-title": "Accessibility topic", - "accessibility-content": "Accessibility content" + "support": "Unterstützung", + "supportPopup-title": "Unterstützung", + "accessibility-page-enabled": "Barrierefreie Seite freigeschaltet", + "accessibility-title": "Barrierefreies Thema", + "accessibility-content": "Barrierefreie Inhalte" } diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index e9958d6df..709633d64 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -1257,6 +1257,7 @@ "text": "Text", "translation-text": "Übersetzungstext", "show-subtasks-field": "Teilaufgaben Feld anzeigen", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Als Markdown konvertieren", "import-board-zip": "Erstelle .zip Datei mit JSON Board Dateien und die Unterverzeichnisse des Boardnamen mit Anhängen", "collapse": "Einklappen", diff --git a/imports/i18n/data/el-GR.i18n.json b/imports/i18n/data/el-GR.i18n.json index 6b15974c7..4eacf20f7 100644 --- a/imports/i18n/data/el-GR.i18n.json +++ b/imports/i18n/data/el-GR.i18n.json @@ -1257,6 +1257,7 @@ "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": "Σύμπτυξη", diff --git a/imports/i18n/data/el.i18n.json b/imports/i18n/data/el.i18n.json index 519acc83d..3f4666a1b 100644 --- a/imports/i18n/data/el.i18n.json +++ b/imports/i18n/data/el.i18n.json @@ -1257,6 +1257,7 @@ "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": "Σύμπτυξη", diff --git a/imports/i18n/data/en-BR.i18n.json b/imports/i18n/data/en-BR.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/en-BR.i18n.json +++ b/imports/i18n/data/en-BR.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/en-DE.i18n.json b/imports/i18n/data/en-DE.i18n.json index d4d49d3fc..9e93c3326 100644 --- a/imports/i18n/data/en-DE.i18n.json +++ b/imports/i18n/data/en-DE.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/en-GB.i18n.json b/imports/i18n/data/en-GB.i18n.json index a94fb6735..3424f8de4 100644 --- a/imports/i18n/data/en-GB.i18n.json +++ b/imports/i18n/data/en-GB.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/en-IT.i18n.json b/imports/i18n/data/en-IT.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/en-IT.i18n.json +++ b/imports/i18n/data/en-IT.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/en-MY.i18n.json b/imports/i18n/data/en-MY.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/en-MY.i18n.json +++ b/imports/i18n/data/en-MY.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/en-YS.i18n.json b/imports/i18n/data/en-YS.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/en-YS.i18n.json +++ b/imports/i18n/data/en-YS.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/en_TR.i18n.json b/imports/i18n/data/en_TR.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/en_TR.i18n.json +++ b/imports/i18n/data/en_TR.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/en_ZA.i18n.json b/imports/i18n/data/en_ZA.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/en_ZA.i18n.json +++ b/imports/i18n/data/en_ZA.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index 25813426e..4d11696da 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -1257,6 +1257,7 @@ "text": "Teksto", "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", diff --git a/imports/i18n/data/es-AR.i18n.json b/imports/i18n/data/es-AR.i18n.json index 6cf75dff1..e4011c011 100644 --- a/imports/i18n/data/es-AR.i18n.json +++ b/imports/i18n/data/es-AR.i18n.json @@ -1257,6 +1257,7 @@ "text": "Texto", "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", diff --git a/imports/i18n/data/es-CL.i18n.json b/imports/i18n/data/es-CL.i18n.json index f75864c47..a4bee6545 100644 --- a/imports/i18n/data/es-CL.i18n.json +++ b/imports/i18n/data/es-CL.i18n.json @@ -1257,6 +1257,7 @@ "text": "Texto", "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": "Contraer", diff --git a/imports/i18n/data/es-LA.i18n.json b/imports/i18n/data/es-LA.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/es-LA.i18n.json +++ b/imports/i18n/data/es-LA.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/es-MX.i18n.json b/imports/i18n/data/es-MX.i18n.json index 231dcd697..123ddb258 100644 --- a/imports/i18n/data/es-MX.i18n.json +++ b/imports/i18n/data/es-MX.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/es-PE.i18n.json b/imports/i18n/data/es-PE.i18n.json index 2fd40ea35..59843c62f 100644 --- a/imports/i18n/data/es-PE.i18n.json +++ b/imports/i18n/data/es-PE.i18n.json @@ -1257,6 +1257,7 @@ "text": "Texto", "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": "Contraer", diff --git a/imports/i18n/data/es-PY.i18n.json b/imports/i18n/data/es-PY.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/es-PY.i18n.json +++ b/imports/i18n/data/es-PY.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 8afa1c4da..88b6a4029 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -1257,6 +1257,7 @@ "text": "Texto", "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": "Contraer", diff --git a/imports/i18n/data/es_CO.i18n.json b/imports/i18n/data/es_CO.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/es_CO.i18n.json +++ b/imports/i18n/data/es_CO.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/et-EE.i18n.json b/imports/i18n/data/et-EE.i18n.json index 637b26f3d..9c5651b0f 100644 --- a/imports/i18n/data/et-EE.i18n.json +++ b/imports/i18n/data/et-EE.i18n.json @@ -1257,6 +1257,7 @@ "text": "Tekst", "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": "Kokkupõrge", diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 9a0fc5765..1ef44f7d3 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -1257,6 +1257,7 @@ "text": "Testua", "translation-text": "itzulpenaren testua", "show-subtasks-field": "azpi-zereginen eremua bezala", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Bihurtu markdown-era", "import-board-zip": "Gehitu taula JSON fitxategiak dituen .zip fitxategia eta eranskinak dituzten taularen izenen azpidirektorioak", "collapse": "Tolestu", diff --git a/imports/i18n/data/fa-IR.i18n.json b/imports/i18n/data/fa-IR.i18n.json index a87aa16e2..792856efd 100644 --- a/imports/i18n/data/fa-IR.i18n.json +++ b/imports/i18n/data/fa-IR.i18n.json @@ -1257,6 +1257,7 @@ "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": "جمع کردن", diff --git a/imports/i18n/data/fa.i18n.json b/imports/i18n/data/fa.i18n.json index 3de3d5958..e7b0ce5bc 100644 --- a/imports/i18n/data/fa.i18n.json +++ b/imports/i18n/data/fa.i18n.json @@ -1257,6 +1257,7 @@ "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": "جمع کردن", diff --git a/imports/i18n/data/fi.i18n.json b/imports/i18n/data/fi.i18n.json index c49b3b027..4e11a001f 100644 --- a/imports/i18n/data/fi.i18n.json +++ b/imports/i18n/data/fi.i18n.json @@ -1257,6 +1257,7 @@ "text": "Teksti", "translation-text": "Käännetty teksti", "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", "collapse": "Pienennä", diff --git a/imports/i18n/data/fr-CH.i18n.json b/imports/i18n/data/fr-CH.i18n.json index ef012b863..d7595cf07 100644 --- a/imports/i18n/data/fr-CH.i18n.json +++ b/imports/i18n/data/fr-CH.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/fr-FR.i18n.json b/imports/i18n/data/fr-FR.i18n.json index 9a699f4f1..3737dfa6a 100644 --- a/imports/i18n/data/fr-FR.i18n.json +++ b/imports/i18n/data/fr-FR.i18n.json @@ -1257,6 +1257,7 @@ "text": "Texte", "translation-text": "Texte traduit", "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": "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", diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index f0a409f34..950cbcc41 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -1257,6 +1257,7 @@ "text": "Texte", "translation-text": "Texte traduit", "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": "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", diff --git a/imports/i18n/data/fy-NL.i18n.json b/imports/i18n/data/fy-NL.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/fy-NL.i18n.json +++ b/imports/i18n/data/fy-NL.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/fy.i18n.json b/imports/i18n/data/fy.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/fy.i18n.json +++ b/imports/i18n/data/fy.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/gl-ES.i18n.json b/imports/i18n/data/gl-ES.i18n.json index debd1d7a6..f2cd7a910 100644 --- a/imports/i18n/data/gl-ES.i18n.json +++ b/imports/i18n/data/gl-ES.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/gl.i18n.json b/imports/i18n/data/gl.i18n.json index e6c9a4f7b..9dfe8894e 100644 --- a/imports/i18n/data/gl.i18n.json +++ b/imports/i18n/data/gl.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/gu-IN.i18n.json b/imports/i18n/data/gu-IN.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/gu-IN.i18n.json +++ b/imports/i18n/data/gu-IN.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/he-IL.i18n.json b/imports/i18n/data/he-IL.i18n.json index 990c782ce..126686818 100644 --- a/imports/i18n/data/he-IL.i18n.json +++ b/imports/i18n/data/he-IL.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index e9c7e28b6..bdd75d70a 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -1257,6 +1257,7 @@ "text": "טקסט", "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": "צמצום", diff --git a/imports/i18n/data/hi-IN.i18n.json b/imports/i18n/data/hi-IN.i18n.json index 3cf97f1d2..4e08ed540 100644 --- a/imports/i18n/data/hi-IN.i18n.json +++ b/imports/i18n/data/hi-IN.i18n.json @@ -1257,6 +1257,7 @@ "text": "Text", "translation-text": "अनुवाद पाठ", "show-subtasks-field": "उप-कार्य फ़ील्ड दिखाएँ", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "मार्कडाउन में कनवर्ट करें", "import-board-zip": ".zip फ़ाइल जोड़ें जिसमें बोर्ड JSON फ़ाइलें हैं, और अनुलग्नकों के साथ बोर्ड नाम उपनिर्देशिकाएँ हैं", "collapse": "संक्षिप्त करें", diff --git a/imports/i18n/data/hi.i18n.json b/imports/i18n/data/hi.i18n.json index 42ebe2e17..f6e2a64a3 100644 --- a/imports/i18n/data/hi.i18n.json +++ b/imports/i18n/data/hi.i18n.json @@ -1257,6 +1257,7 @@ "text": "Text", "translation-text": "अनुवाद पाठ", "show-subtasks-field": "उप-कार्य फ़ील्ड दिखाएँ", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "मार्कडाउन में कन्वर्ट करें", "import-board-zip": ".zip फ़ाइल जोड़ें जिसमें बोर्ड JSON फ़ाइलें और अनुलग्नकों वाले उपनिर्देशिका हों", "collapse": "संक्षिप्त करें", diff --git a/imports/i18n/data/hr.i18n.json b/imports/i18n/data/hr.i18n.json index 2d4fa09a9..06cfc183e 100644 --- a/imports/i18n/data/hr.i18n.json +++ b/imports/i18n/data/hr.i18n.json @@ -1257,6 +1257,7 @@ "text": "Tekst", "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", diff --git a/imports/i18n/data/hu.i18n.json b/imports/i18n/data/hu.i18n.json index f9fd484dd..f128893be 100644 --- a/imports/i18n/data/hu.i18n.json +++ b/imports/i18n/data/hu.i18n.json @@ -1257,6 +1257,7 @@ "text": "Szöveg", "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": "Összecsukás", diff --git a/imports/i18n/data/hy.i18n.json b/imports/i18n/data/hy.i18n.json index 30dd32623..801a30eaa 100644 --- a/imports/i18n/data/hy.i18n.json +++ b/imports/i18n/data/hy.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/id.i18n.json b/imports/i18n/data/id.i18n.json index 8622fbd5c..7be0542bf 100644 --- a/imports/i18n/data/id.i18n.json +++ b/imports/i18n/data/id.i18n.json @@ -1257,6 +1257,7 @@ "text": "Text", "translation-text": "Terjemahan teks", "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", "collapse": "Ciutkan", diff --git a/imports/i18n/data/ig.i18n.json b/imports/i18n/data/ig.i18n.json index e3e72228b..22476d20d 100644 --- a/imports/i18n/data/ig.i18n.json +++ b/imports/i18n/data/ig.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/it.i18n.json b/imports/i18n/data/it.i18n.json index 02823679d..b2e922d94 100644 --- a/imports/i18n/data/it.i18n.json +++ b/imports/i18n/data/it.i18n.json @@ -1257,6 +1257,7 @@ "text": "Testo", "translation-text": "Testo della traduzione", "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", "collapse": "Comprimi", diff --git a/imports/i18n/data/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index 4e9635c07..84a7ae0e5 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -610,7 +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-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", @@ -1257,6 +1257,7 @@ "text": "テキスト", "translation-text": "翻訳テキスト", "show-subtasks-field": "サブタスクフィールドを表示", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "マークダウンに変換", "import-board-zip": "ボードJSONファイルを含む zip ファイルと、添付ファイルを含むボード名サブディレクトリを追加する", "collapse": "Collapse", diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index 7fa06bb0e..461dd6bfb 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -610,7 +610,7 @@ "has-spenttime-cards": "作業時間ありのカード", "time": "時間", "title": "タイトル", - "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-assignees": "カードの割り当て先1-9を切り替える(ボードへの追加順)", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "複数選択でラベル1-9を削除します", "tracking": "トラッキング", @@ -1257,6 +1257,7 @@ "text": "テキスト", "translation-text": "翻訳テキスト", "show-subtasks-field": "サブタスクフィールドを表示", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "マークダウンに変換", "import-board-zip": "ボードJSONファイルを含む zip ファイルと、添付ファイルを含むボード名サブディレクトリを追加する", "collapse": "折りたたむ", diff --git a/imports/i18n/data/ka.i18n.json b/imports/i18n/data/ka.i18n.json index 5f6aefc07..a77558487 100644 --- a/imports/i18n/data/ka.i18n.json +++ b/imports/i18n/data/ka.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/km.i18n.json b/imports/i18n/data/km.i18n.json index 13ae6435d..85b7fe364 100644 --- a/imports/i18n/data/km.i18n.json +++ b/imports/i18n/data/km.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ko-KR.i18n.json b/imports/i18n/data/ko-KR.i18n.json index 49c2b1b2b..f8aae6451 100644 --- a/imports/i18n/data/ko-KR.i18n.json +++ b/imports/i18n/data/ko-KR.i18n.json @@ -1257,6 +1257,7 @@ "text": "Text", "translation-text": "번역 문구", "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", diff --git a/imports/i18n/data/ko.i18n.json b/imports/i18n/data/ko.i18n.json index 21e365887..b87872f87 100644 --- a/imports/i18n/data/ko.i18n.json +++ b/imports/i18n/data/ko.i18n.json @@ -1257,6 +1257,7 @@ "text": "텍스트", "translation-text": "번역 문구", "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": "접기", diff --git a/imports/i18n/data/lt.i18n.json b/imports/i18n/data/lt.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/lt.i18n.json +++ b/imports/i18n/data/lt.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/lv.i18n.json b/imports/i18n/data/lv.i18n.json index 37cfccbf2..650821321 100644 --- a/imports/i18n/data/lv.i18n.json +++ b/imports/i18n/data/lv.i18n.json @@ -1257,6 +1257,7 @@ "text": "Teksts", "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": "Sakļaut", diff --git a/imports/i18n/data/mk.i18n.json b/imports/i18n/data/mk.i18n.json index 95c850db8..1dc8bd784 100644 --- a/imports/i18n/data/mk.i18n.json +++ b/imports/i18n/data/mk.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/mn.i18n.json b/imports/i18n/data/mn.i18n.json index b56845d4c..ce9e320da 100644 --- a/imports/i18n/data/mn.i18n.json +++ b/imports/i18n/data/mn.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/ms-MY.i18n.json +++ b/imports/i18n/data/ms-MY.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ms.i18n.json b/imports/i18n/data/ms.i18n.json index 70fa1d372..26ff502f0 100644 --- a/imports/i18n/data/ms.i18n.json +++ b/imports/i18n/data/ms.i18n.json @@ -1257,6 +1257,7 @@ "text": "Teks", "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": "Buka", diff --git a/imports/i18n/data/nb.i18n.json b/imports/i18n/data/nb.i18n.json index 023d1c7d1..e65a1a5df 100644 --- a/imports/i18n/data/nb.i18n.json +++ b/imports/i18n/data/nb.i18n.json @@ -1257,6 +1257,7 @@ "text": "Tekst", "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": "Slå sammen", diff --git a/imports/i18n/data/nl-NL.i18n.json b/imports/i18n/data/nl-NL.i18n.json index b635c253b..8d31397ed 100644 --- a/imports/i18n/data/nl-NL.i18n.json +++ b/imports/i18n/data/nl-NL.i18n.json @@ -1257,6 +1257,7 @@ "text": "Tekst", "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": "Klap in", diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index a3404cf66..4e2685cd7 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -383,7 +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-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.", @@ -610,7 +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-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", @@ -1257,6 +1257,7 @@ "text": "Tekst", "translation-text": "Te vertalen tekst", "show-subtasks-field": "Toon subtakenveld", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Converteer naar markdown", "import-board-zip": "Voeg .zip bestand toe met bord JSON bestanden, en bordnaam subdirectories met bijlagen.", "collapse": "Inklappen", diff --git a/imports/i18n/data/oc.i18n.json b/imports/i18n/data/oc.i18n.json index afe071cbb..cedf7a7d2 100644 --- a/imports/i18n/data/oc.i18n.json +++ b/imports/i18n/data/oc.i18n.json @@ -1257,6 +1257,7 @@ "text": "Tèxte", "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", diff --git a/imports/i18n/data/or_IN.i18n.json b/imports/i18n/data/or_IN.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/or_IN.i18n.json +++ b/imports/i18n/data/or_IN.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/pa.i18n.json b/imports/i18n/data/pa.i18n.json index cb56272af..821c0ba00 100644 --- a/imports/i18n/data/pa.i18n.json +++ b/imports/i18n/data/pa.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/pl-PL.i18n.json b/imports/i18n/data/pl-PL.i18n.json index 336179581..68bae41a4 100644 --- a/imports/i18n/data/pl-PL.i18n.json +++ b/imports/i18n/data/pl-PL.i18n.json @@ -1257,6 +1257,7 @@ "text": "Tekst", "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": "Zwiń", diff --git a/imports/i18n/data/pl.i18n.json b/imports/i18n/data/pl.i18n.json index 31c1dba8c..d14c356fd 100644 --- a/imports/i18n/data/pl.i18n.json +++ b/imports/i18n/data/pl.i18n.json @@ -1257,6 +1257,7 @@ "text": "Tekst", "translation-text": "Tekst tłumaczenia", "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", "collapse": "Zwiń", diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index 08d10df49..08f170ac9 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -1257,6 +1257,7 @@ "text": "Texto", "translation-text": "Texto de tradução", "show-subtasks-field": "Mostrar campo subtarefas", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Converter para markdown", "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", diff --git a/imports/i18n/data/pt.i18n.json b/imports/i18n/data/pt.i18n.json index 9ee424771..5676223d3 100644 --- a/imports/i18n/data/pt.i18n.json +++ b/imports/i18n/data/pt.i18n.json @@ -1257,6 +1257,7 @@ "text": "Texto", "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": "Colapsar", diff --git a/imports/i18n/data/pt_PT.i18n.json b/imports/i18n/data/pt_PT.i18n.json index 5b246c5cd..9f6833efb 100644 --- a/imports/i18n/data/pt_PT.i18n.json +++ b/imports/i18n/data/pt_PT.i18n.json @@ -1257,6 +1257,7 @@ "text": "Texto", "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": "Colapsar", diff --git a/imports/i18n/data/ro-RO.i18n.json b/imports/i18n/data/ro-RO.i18n.json index fc431a080..53e48ec08 100644 --- a/imports/i18n/data/ro-RO.i18n.json +++ b/imports/i18n/data/ro-RO.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ro.i18n.json b/imports/i18n/data/ro.i18n.json index f69a6da71..a0e0666e1 100644 --- a/imports/i18n/data/ro.i18n.json +++ b/imports/i18n/data/ro.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ru-UA.i18n.json b/imports/i18n/data/ru-UA.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/ru-UA.i18n.json +++ b/imports/i18n/data/ru-UA.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ru.i18n.json b/imports/i18n/data/ru.i18n.json index f0b03f5a1..252ddb13d 100644 --- a/imports/i18n/data/ru.i18n.json +++ b/imports/i18n/data/ru.i18n.json @@ -1257,6 +1257,7 @@ "text": "Текст", "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": "Свернуть", diff --git a/imports/i18n/data/sk.i18n.json b/imports/i18n/data/sk.i18n.json index 7a017afef..16ca630a6 100644 --- a/imports/i18n/data/sk.i18n.json +++ b/imports/i18n/data/sk.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/sl.i18n.json b/imports/i18n/data/sl.i18n.json index a1970740e..cc39b709f 100644 --- a/imports/i18n/data/sl.i18n.json +++ b/imports/i18n/data/sl.i18n.json @@ -1257,6 +1257,7 @@ "text": "Besedilo", "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": "Skrči", diff --git a/imports/i18n/data/sr.i18n.json b/imports/i18n/data/sr.i18n.json index c35c0c42b..031c021e7 100644 --- a/imports/i18n/data/sr.i18n.json +++ b/imports/i18n/data/sr.i18n.json @@ -1257,6 +1257,7 @@ "text": "Текст", "translation-text": "Превод текста", "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", "collapse": "Сажми", diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index 28c669d2e..ed5e52624 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -1257,6 +1257,7 @@ "text": "Text", "translation-text": "Översatt text", "show-subtasks-field": "Visa underuppgiftsfält", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Konvertera till markdown", "import-board-zip": "Lägga till .zip-filen till tavlans JSON filer, och tavla", "collapse": "Fäll ihop", diff --git a/imports/i18n/data/sw.i18n.json b/imports/i18n/data/sw.i18n.json index b3213f2fc..ea7cbdf34 100644 --- a/imports/i18n/data/sw.i18n.json +++ b/imports/i18n/data/sw.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ta.i18n.json b/imports/i18n/data/ta.i18n.json index 34814bf31..fc2eda7ca 100644 --- a/imports/i18n/data/ta.i18n.json +++ b/imports/i18n/data/ta.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/te-IN.i18n.json b/imports/i18n/data/te-IN.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/te-IN.i18n.json +++ b/imports/i18n/data/te-IN.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/th.i18n.json b/imports/i18n/data/th.i18n.json index f34672746..5495c1efe 100644 --- a/imports/i18n/data/th.i18n.json +++ b/imports/i18n/data/th.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/tk_TM.i18n.json b/imports/i18n/data/tk_TM.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/tk_TM.i18n.json +++ b/imports/i18n/data/tk_TM.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/tlh.i18n.json b/imports/i18n/data/tlh.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/tlh.i18n.json +++ b/imports/i18n/data/tlh.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index f7b709205..18ef7cbe6 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -1257,6 +1257,7 @@ "text": "Metin", "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": "Katla", diff --git a/imports/i18n/data/ug.i18n.json b/imports/i18n/data/ug.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/ug.i18n.json +++ b/imports/i18n/data/ug.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index bd0cec7b8..6b1e8460c 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -1257,6 +1257,7 @@ "text": "Текст", "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": "Згорнути", diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index 7917ebe3a..a3cfa1730 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -1257,6 +1257,7 @@ "text": "Текст", "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": "Згорнути", diff --git a/imports/i18n/data/uz-AR.i18n.json b/imports/i18n/data/uz-AR.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/uz-AR.i18n.json +++ b/imports/i18n/data/uz-AR.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/uz-LA.i18n.json b/imports/i18n/data/uz-LA.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/uz-LA.i18n.json +++ b/imports/i18n/data/uz-LA.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/uz-UZ.i18n.json b/imports/i18n/data/uz-UZ.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/uz-UZ.i18n.json +++ b/imports/i18n/data/uz-UZ.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/uz.i18n.json b/imports/i18n/data/uz.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/uz.i18n.json +++ b/imports/i18n/data/uz.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ve-CC.i18n.json b/imports/i18n/data/ve-CC.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/ve-CC.i18n.json +++ b/imports/i18n/data/ve-CC.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ve-PP.i18n.json b/imports/i18n/data/ve-PP.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/ve-PP.i18n.json +++ b/imports/i18n/data/ve-PP.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/ve.i18n.json b/imports/i18n/data/ve.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/ve.i18n.json +++ b/imports/i18n/data/ve.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/vi-VN.i18n.json b/imports/i18n/data/vi-VN.i18n.json index 04786406b..f9b4c798e 100644 --- a/imports/i18n/data/vi-VN.i18n.json +++ b/imports/i18n/data/vi-VN.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/vi.i18n.json b/imports/i18n/data/vi.i18n.json index 3422fe92f..b13110496 100644 --- a/imports/i18n/data/vi.i18n.json +++ b/imports/i18n/data/vi.i18n.json @@ -1257,6 +1257,7 @@ "text": "Văn bản", "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": "Thu gọn", diff --git a/imports/i18n/data/vl-SS.i18n.json b/imports/i18n/data/vl-SS.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/vl-SS.i18n.json +++ b/imports/i18n/data/vl-SS.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/vo.i18n.json b/imports/i18n/data/vo.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/vo.i18n.json +++ b/imports/i18n/data/vo.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/wa-RR.i18n.json b/imports/i18n/data/wa-RR.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/wa-RR.i18n.json +++ b/imports/i18n/data/wa-RR.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/wa.i18n.json b/imports/i18n/data/wa.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/wa.i18n.json +++ b/imports/i18n/data/wa.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/wo.i18n.json b/imports/i18n/data/wo.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/wo.i18n.json +++ b/imports/i18n/data/wo.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/xh.i18n.json b/imports/i18n/data/xh.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/xh.i18n.json +++ b/imports/i18n/data/xh.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/yi.i18n.json b/imports/i18n/data/yi.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/yi.i18n.json +++ b/imports/i18n/data/yi.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/yo.i18n.json b/imports/i18n/data/yo.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/yo.i18n.json +++ b/imports/i18n/data/yo.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/yue_CN.i18n.json b/imports/i18n/data/yue_CN.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/yue_CN.i18n.json +++ b/imports/i18n/data/yue_CN.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/zgh.i18n.json b/imports/i18n/data/zgh.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/zgh.i18n.json +++ b/imports/i18n/data/zgh.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/zh-CN.i18n.json b/imports/i18n/data/zh-CN.i18n.json index 5c6088560..238e15892 100644 --- a/imports/i18n/data/zh-CN.i18n.json +++ b/imports/i18n/data/zh-CN.i18n.json @@ -1257,6 +1257,7 @@ "text": "文本", "translation-text": "翻译文本", "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", "collapse": "崩溃", diff --git a/imports/i18n/data/zh-GB.i18n.json b/imports/i18n/data/zh-GB.i18n.json index 0951bf07f..8c1e2a4a8 100644 --- a/imports/i18n/data/zh-GB.i18n.json +++ b/imports/i18n/data/zh-GB.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/zh-HK.i18n.json b/imports/i18n/data/zh-HK.i18n.json index 6e002b4cc..22a0cb1e5 100644 --- a/imports/i18n/data/zh-HK.i18n.json +++ b/imports/i18n/data/zh-HK.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/zh-Hans.i18n.json b/imports/i18n/data/zh-Hans.i18n.json index a56f4d3b4..ccc880855 100644 --- a/imports/i18n/data/zh-Hans.i18n.json +++ b/imports/i18n/data/zh-Hans.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/zh-Hant.i18n.json b/imports/i18n/data/zh-Hant.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/zh-Hant.i18n.json +++ b/imports/i18n/data/zh-Hant.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index 67234db97..63dd61148 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -1257,6 +1257,7 @@ "text": "文字", "translation-text": "翻譯文字", "show-subtasks-field": "顯示子工作項目欄位", + "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "轉換為 Markdown", "import-board-zip": "新增包含看板 JSON 檔案與帶有附件的看板名稱子目錄的 .zip 檔案", "collapse": "損毀", diff --git a/imports/i18n/data/zh.i18n.json b/imports/i18n/data/zh.i18n.json index 9900af1bc..44b4a7048 100644 --- a/imports/i18n/data/zh.i18n.json +++ b/imports/i18n/data/zh.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/zu-ZA.i18n.json b/imports/i18n/data/zu-ZA.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/zu-ZA.i18n.json +++ b/imports/i18n/data/zu-ZA.i18n.json @@ -1257,6 +1257,7 @@ "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", diff --git a/imports/i18n/data/zu.i18n.json b/imports/i18n/data/zu.i18n.json index 6763e62d2..78b62d375 100644 --- a/imports/i18n/data/zu.i18n.json +++ b/imports/i18n/data/zu.i18n.json @@ -1257,6 +1257,7 @@ "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", From e4e1fdb1872cbb034233b9fdc705da57d4000274 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 2 Jan 2025 12:59:37 +0200 Subject: [PATCH 289/356] Updated ChangeLog. --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f8fe64dbf..7555773a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,17 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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: From 6b1a92001aebb93e7d59dcb23e5cdf4e59fccf01 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 2 Jan 2025 13:08:53 +0200 Subject: [PATCH 290/356] v7.79 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7555773a1..f16590852 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.79 2025-01-02 WeKan ® release This release adds the following new features: diff --git a/Stackerfile.yml b/Stackerfile.yml index 487ef2580..9105cdd18 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.78.0" +appVersion: "v7.79.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 825d7b91f..b61600063 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.78-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.78/wekan-7.78-amd64-windows.zip) +1. [wekan-7.79-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.79/wekan-7.79-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.78-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.79-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 8bbee16d8..e9317cd16 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.78.0", + "version": "v7.79.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 5ada7e044..bc49fe0aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.78.0", + "version": "v7.79.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index a28747d66..9162b95fb 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.78 + Wekan REST API v7.79 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                          • - Wekan REST API v7.78 + Wekan REST API v7.79
                                          • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                            -

                                            Wekan REST API v7.78

                                            +

                                            Wekan REST API v7.79

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

                                            diff --git a/public/api/wekan.yml b/public/api/wekan.yml index c27f98d9a..33268f77b 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.78 + version: v7.79 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 098f2fab7..148bd3781 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 = 778, + appVersion = 779, # Increment this for every release. - appMarketingVersion = (defaultText = "7.78.0~2024-12-31"), + appMarketingVersion = (defaultText = "7.79.0~2025-01-02"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 426b20f59..caa1d449e 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.78' +version: '7.79' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.78/wekan-7.78-amd64.zip - unzip wekan-7.78-amd64.zip - rm wekan-7.78-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.79/wekan-7.79-amd64.zip + unzip wekan-7.79-amd64.zip + rm wekan-7.79-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 9516b75d655901e384883065fa295742dd4eb6be Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 2 Jan 2025 19:39:08 +0200 Subject: [PATCH 291/356] Updated translations. --- imports/i18n/data/de.i18n.json | 14 +++++++------- imports/i18n/data/ja-HI.i18n.json | 2 +- imports/i18n/data/ja.i18n.json | 2 +- imports/i18n/data/nl.i18n.json | 2 +- imports/i18n/data/pt-BR.i18n.json | 4 ++-- imports/i18n/data/sv.i18n.json | 4 ++-- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/imports/i18n/data/de.i18n.json b/imports/i18n/data/de.i18n.json index dc221f249..fbe3b6ecf 100644 --- a/imports/i18n/data/de.i18n.json +++ b/imports/i18n/data/de.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "hat %s ins Archiv verschoben", "activity-attached": "hat %s an %s angehängt", "activity-created": "hat %s erstellt", - "activity-changedListTitle": "Die Liste wurde umbenannt zu", + "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", @@ -1257,16 +1257,16 @@ "text": "Text", "translation-text": "Übersetzungstext", "show-subtasks-field": "Teilaufgaben Feld anzeigen", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "Kalenderwoche anzeigen (ISO 8601)", "convert-to-markdown": "Als Markdown konvertieren", "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": "Unterstützung", - "supportPopup-title": "Unterstützung", - "accessibility-page-enabled": "Barrierefreie Seite freigeschaltet", - "accessibility-title": "Barrierefreies Thema", - "accessibility-content": "Barrierefreie Inhalte" + "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/ja-HI.i18n.json b/imports/i18n/data/ja-HI.i18n.json index 84a7ae0e5..60edd6d3f 100644 --- a/imports/i18n/data/ja-HI.i18n.json +++ b/imports/i18n/data/ja-HI.i18n.json @@ -1257,7 +1257,7 @@ "text": "テキスト", "translation-text": "翻訳テキスト", "show-subtasks-field": "サブタスクフィールドを表示", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "年内の暦週番号(ISO 8601準拠)", "convert-to-markdown": "マークダウンに変換", "import-board-zip": "ボードJSONファイルを含む zip ファイルと、添付ファイルを含むボード名サブディレクトリを追加する", "collapse": "Collapse", diff --git a/imports/i18n/data/ja.i18n.json b/imports/i18n/data/ja.i18n.json index 461dd6bfb..bf2161a68 100644 --- a/imports/i18n/data/ja.i18n.json +++ b/imports/i18n/data/ja.i18n.json @@ -1257,7 +1257,7 @@ "text": "テキスト", "translation-text": "翻訳テキスト", "show-subtasks-field": "サブタスクフィールドを表示", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "年内の暦週番号(ISO 8601準拠)", "convert-to-markdown": "マークダウンに変換", "import-board-zip": "ボードJSONファイルを含む zip ファイルと、添付ファイルを含むボード名サブディレクトリを追加する", "collapse": "折りたたむ", diff --git a/imports/i18n/data/nl.i18n.json b/imports/i18n/data/nl.i18n.json index 4e2685cd7..b3a46543a 100644 --- a/imports/i18n/data/nl.i18n.json +++ b/imports/i18n/data/nl.i18n.json @@ -1257,7 +1257,7 @@ "text": "Tekst", "translation-text": "Te vertalen tekst", "show-subtasks-field": "Toon subtakenveld", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "Toon weeknummers (ISO 8601)", "convert-to-markdown": "Converteer naar markdown", "import-board-zip": "Voeg .zip bestand toe met bord JSON bestanden, en bordnaam subdirectories met bijlagen.", "collapse": "Inklappen", diff --git a/imports/i18n/data/pt-BR.i18n.json b/imports/i18n/data/pt-BR.i18n.json index 08f170ac9..a6b55afc6 100644 --- a/imports/i18n/data/pt-BR.i18n.json +++ b/imports/i18n/data/pt-BR.i18n.json @@ -610,7 +610,7 @@ "has-spenttime-cards": "Gastou cartões de tempo", "time": "Tempo", "title": "Título", - "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "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", @@ -1257,7 +1257,7 @@ "text": "Texto", "translation-text": "Texto de tradução", "show-subtasks-field": "Mostrar campo subtarefas", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "Mostrar semana do ano (ISO8601)", "convert-to-markdown": "Converter para markdown", "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", diff --git a/imports/i18n/data/sv.i18n.json b/imports/i18n/data/sv.i18n.json index ed5e52624..c43ed08f8 100644 --- a/imports/i18n/data/sv.i18n.json +++ b/imports/i18n/data/sv.i18n.json @@ -610,7 +610,7 @@ "has-spenttime-cards": "Har spenderat tidkort", "time": "Tid", "title": "Titel", - "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "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", @@ -1257,7 +1257,7 @@ "text": "Text", "translation-text": "Översatt text", "show-subtasks-field": "Visa underuppgiftsfält", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "Visa veckonummer (ISO 8601)", "convert-to-markdown": "Konvertera till markdown", "import-board-zip": "Lägga till .zip-filen till tavlans JSON filer, och tavla", "collapse": "Fäll ihop", From e5e4b8ebfb77eba2db193c0bf7aa2990b5d4e848 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Fri, 3 Jan 2025 12:08:08 +0200 Subject: [PATCH 292/356] Fix card issues with ReactiveCache when using keyboard shortcuts When using ReactiveCache.getCard, a buggy instance of Card is returned. The bug experienced is that .assignees and .members are not always up-to-date. This can be reproduced by trying to hover over cards and triggering a keyboard shortcut that interacts with a card. --- client/lib/keyboard.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 111d2e7a4..4513e03de 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -133,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"]); @@ -157,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"]); @@ -171,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"]); @@ -197,14 +197,14 @@ Mousetrap.bind(_.range(1, 10).map(x => `ctrl+alt+${x}`), (evt, key) => { if (MultiSelection.isActive()) { for (const cardId of MultiSelection.getSelectedCardIds()) - ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id); + Cards.findOne(cardId).toggleAssignee(boardMembers[memberIndex]._id); } else { const cardId = getSelectedCardId(); if (!cardId) return; - ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id); + Cards.findOne(cardId).toggleAssignee(boardMembers[memberIndex]._id); } }); @@ -220,7 +220,7 @@ Mousetrap.bind('m', evt => { } if (ReactiveCache.getCurrentUser().isBoardMember()) { - const card = ReactiveCache.getCard(cardId); + 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 @@ -240,7 +240,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 @@ -260,7 +260,7 @@ const archiveCard = 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 @@ -289,7 +289,7 @@ Mousetrap.bind('n', evt => { if (Utils.canModifyBoard()) { // Find the current hovered card - const card = ReactiveCache.getCard(cardId); + const card = Cards.findOne(cardId); // Find the button and click it $(`#js-list-${card.listId} .list-body .minicards .open-minicard-composer`).click(); From 7b23c85117e97e9c83fb0e9a76b0f4d4fba24456 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Fri, 3 Jan 2025 17:15:40 +0200 Subject: [PATCH 293/356] Fix assignee toggling keyboard shortcut to only toggle current board members --- client/lib/keyboard.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 4513e03de..9faa163f7 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -190,21 +190,23 @@ Mousetrap.bind(_.range(1, 10).map(x => `ctrl+alt+${x}`), (evt, key) => { const memberIndex = parseInt(key.split("+").pop()) - 1; const currentBoard = Utils.getCurrentBoard(); - const boardMembers = currentBoard.memberUsers(); + const validBoardMembers = currentBoard.memberUsers().filter(member => member.isBoardMember()); - if (memberIndex >= boardMembers.length) + if (memberIndex >= validBoardMembers.length) return; + const memberId = validBoardMembers[memberIndex]._id; + if (MultiSelection.isActive()) { for (const cardId of MultiSelection.getSelectedCardIds()) - Cards.findOne(cardId).toggleAssignee(boardMembers[memberIndex]._id); + Cards.findOne(cardId).toggleAssignee(memberId); } else { const cardId = getSelectedCardId(); if (!cardId) return; - Cards.findOne(cardId).toggleAssignee(boardMembers[memberIndex]._id); + Cards.findOne(cardId).toggleAssignee(memberId); } }); From 41f76ee97445c36bb9d780985d0a87590c3db9d5 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 11 Jan 2025 20:53:31 +0200 Subject: [PATCH 294/356] Updated translations. --- imports/i18n/data/de_DE.i18n.json | 16 +- imports/i18n/data/en_ID.i18n.json | 1272 +++++++++++++++++++++++++++++ imports/i18n/data/fr.i18n.json | 46 +- imports/i18n/data/he.i18n.json | 4 +- imports/i18n/data/zh-TW.i18n.json | 8 +- 5 files changed, 1309 insertions(+), 37 deletions(-) create mode 100644 imports/i18n/data/en_ID.i18n.json diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json index 709633d64..fc3ed5809 100644 --- a/imports/i18n/data/de_DE.i18n.json +++ b/imports/i18n/data/de_DE.i18n.json @@ -90,8 +90,8 @@ "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": "Keyboard shortcuts enabled. Click to disable.", - "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "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)", @@ -266,9 +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", + "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", @@ -383,7 +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-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", @@ -610,7 +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-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", @@ -1257,7 +1257,7 @@ "text": "Text", "translation-text": "Übersetzungstext", "show-subtasks-field": "Teilaufgaben Feld anzeigen", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "Kalenderwoche anzeigen (ISO 8601)", "convert-to-markdown": "Als Markdown konvertieren", "import-board-zip": "Erstelle .zip Datei mit JSON Board Dateien und die Unterverzeichnisse des Boardnamen mit Anhängen", "collapse": "Einklappen", 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/fr.i18n.json b/imports/i18n/data/fr.i18n.json index 950cbcc41..9012324e6 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -86,12 +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": "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.", + "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)", @@ -266,9 +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": "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", + "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", @@ -383,7 +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-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", @@ -437,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 personne en charge", + "filter-no-assignee": "Pas de personne en charge", "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", @@ -610,8 +610,8 @@ "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", + "toggle-assignees": "Changer les personnes en charge 1-9 sur les cartes (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.", @@ -928,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": "Personne en charge", + "cardAssigneesPopup-title": "Personne en charge", "addmore-detail": "Ajouter une description plus détaillée", "show-on-card": "Afficher sur la carte", "show-on-minicard": "Afficher sur la mini-carte", @@ -1023,7 +1023,7 @@ "operator-user-abbrev": "@", "operator-member": "participant", "operator-member-abbrev": "m", - "operator-assignee": "personne assignée", + "operator-assignee": "personne en charge", "operator-assignee-abbrev": "a", "operator-creator": "créateur", "operator-status": "statut", @@ -1054,7 +1054,7 @@ "predicate-checklist": "check-list", "predicate-start": "début", "predicate-end": "fin", - "predicate-assignee": "personne assignée", + "predicate-assignee": "personne en charge", "predicate-member": "participant", "predicate-public": "public", "predicate-private": "privé", @@ -1079,7 +1079,7 @@ "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 est *en charge*.", "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>*", @@ -1257,7 +1257,7 @@ "text": "Texte", "translation-text": "Texte traduit", "show-subtasks-field": "Afficher le champ des sous-tâches", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "Afficher la semaine de l'année (ISO 8601)", "convert-to-markdown": "Convertir en markdown", "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", @@ -1266,7 +1266,7 @@ "hideAllChecklistItems": "Cacher tous les éléments de la check-list", "support": "Support", "supportPopup-title": "Support", - "accessibility-page-enabled": "Accessibility page enabled", - "accessibility-title": "Accessibility topic", - "accessibility-content": "Accessibility content" + "accessibility-page-enabled": "Page d'accessibilité activée", + "accessibility-title": "Sujet d'accessibilité", + "accessibility-content": "Contenu d'accessibilité" } diff --git a/imports/i18n/data/he.i18n.json b/imports/i18n/data/he.i18n.json index bdd75d70a..3273295d4 100644 --- a/imports/i18n/data/he.i18n.json +++ b/imports/i18n/data/he.i18n.json @@ -610,7 +610,7 @@ "has-spenttime-cards": "יש כרטיסי זמן שהושקע", "time": "זמן", "title": "כותרת", - "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-assignees": "הצגת/הסרת מוקצים 1-‏9 בכרטיסים (לפי סדר ההוספה ללוח).", "toggle-labels": "החלפת מצב תוויות 1-‎9 לכרטיס. בחירה מרוכזת מוסיפה תוויות 1‏-9", "remove-labels-multiselect": "בחירה מרוכזת מסירה תוויות 1-‏9", "tracking": "מעקב", @@ -1257,7 +1257,7 @@ "text": "טקסט", "translation-text": "טקסט תרגום", "show-subtasks-field": "הצגת שדה תת־משימות", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "הצגת שבוע בשנה (ISO 8601)", "convert-to-markdown": "המרה ל־Markdown", "import-board-zip": "הוספת קובץ ‎.zip עם קובצי JSON של לוח, ותת־תיקיות בשם הלוח עם קבצים מצורפים", "collapse": "צמצום", diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json index 63dd61148..79ac8f358 100644 --- a/imports/i18n/data/zh-TW.i18n.json +++ b/imports/i18n/data/zh-TW.i18n.json @@ -610,7 +610,7 @@ "has-spenttime-cards": "耗時卡", "time": "時間", "title": "標題", - "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-assignees": "切換卡片的代理人 1-9(按加入看板的順序)。", "toggle-labels": "切換卡片的標籤 1-9。多重選擇新增標籤 1-9", "remove-labels-multiselect": "多重選擇移除標籤 1-9", "tracking": "訂閱相關通知", @@ -1079,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>* 看板的卡片", @@ -1257,7 +1257,7 @@ "text": "文字", "translation-text": "翻譯文字", "show-subtasks-field": "顯示子工作項目欄位", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "顯示年度週數 (ISO 8601)", "convert-to-markdown": "轉換為 Markdown", "import-board-zip": "新增包含看板 JSON 檔案與帶有附件的看板名稱子目錄的 .zip 檔案", "collapse": "損毀", From 980d345305f5657892aab7588ba8dae968107fa3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Sun, 12 Jan 2025 23:19:51 +0200 Subject: [PATCH 295/356] Updated ChangeLog. --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f16590852..b02912e0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,17 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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: From 9a23dcc9911c0de391a673d731b7e8d2c58b46b0 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Sun, 12 Jan 2025 23:48:05 +0200 Subject: [PATCH 296/356] v7.80 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b02912e0d..c0ea150d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.80 2025-01-12 WeKan ® release This release fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 9105cdd18..4ede19620 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.79.0" +appVersion: "v7.80.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index b61600063..446a2930c 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.79-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.79/wekan-7.79-amd64-windows.zip) +1. [wekan-7.80-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.80/wekan-7.80-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.79-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.80-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index e9317cd16..2dc1f4bca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.79.0", + "version": "v7.80.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index bc49fe0aa..23fada81b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.79.0", + "version": "v7.80.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 9162b95fb..4761b490d 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.79 + Wekan REST API v7.80 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                            • - Wekan REST API v7.79 + Wekan REST API v7.80
                                            • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                              -

                                              Wekan REST API v7.79

                                              +

                                              Wekan REST API v7.80

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

                                              diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 33268f77b..c4353dc80 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.79 + version: v7.80 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 148bd3781..ecf9ae4aa 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 = 779, + appVersion = 780, # Increment this for every release. - appMarketingVersion = (defaultText = "7.79.0~2025-01-02"), + appMarketingVersion = (defaultText = "7.80.0~2025-01-12"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index caa1d449e..2fb9c44f7 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.79' +version: '7.80' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.79/wekan-7.79-amd64.zip - unzip wekan-7.79-amd64.zip - rm wekan-7.79-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.80/wekan-7.80-amd64.zip + unzip wekan-7.80-amd64.zip + rm wekan-7.80-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 9f0b82c0d5d75fbb958231b9738a056e880564aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jan 2025 20:55:32 +0000 Subject: [PATCH 297/356] Bump docker/build-push-action from 6.10.0 to 6.11.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.10.0 to 6.11.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/48aba3b46d1b1fec4febb7c5d0c644b249a11355...b32b51a8eda65d6793cd0494a773d4f6bcef32dc) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 93ed800bf..99e4b6fbe 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # 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@48aba3b46d1b1fec4febb7c5d0c644b249a11355 + uses: docker/build-push-action@b32b51a8eda65d6793cd0494a773d4f6bcef32dc with: context: . push: ${{ github.event_name != 'pull_request' }} From 8d0a07e1a8a401740906c345bf43f8d66b22557d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 19 Jan 2025 23:06:23 +0200 Subject: [PATCH 298/356] Updated translations. --- imports/i18n/data/fr.i18n.json | 42 +++++++++++++++++----------------- imports/i18n/data/tr.i18n.json | 12 +++++----- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index 9012324e6..9cf32fbbf 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -107,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", @@ -139,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.", @@ -199,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", @@ -310,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 ?", @@ -437,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 en charge", - "filter-no-assignee": "Pas de personne en charge", + "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", @@ -471,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", @@ -581,13 +581,13 @@ "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": "S'ajouter à la carte courante", - "shortcut-assign-self": "Affecter cette carte à vous-même", + "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", @@ -610,7 +610,7 @@ "has-spenttime-cards": "A des cartes avec du temps passé", "time": "Temps", "title": "Titre", - "toggle-assignees": "Changer les personnes en charge 1-9 sur les cartes (par ordre d'ajout au tableau)", + "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", @@ -729,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.", @@ -928,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 en charge", - "cardAssigneesPopup-title": "Personne en charge", + "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", @@ -1023,7 +1023,7 @@ "operator-user-abbrev": "@", "operator-member": "participant", "operator-member-abbrev": "m", - "operator-assignee": "personne en charge", + "operator-assignee": "intervenant", "operator-assignee-abbrev": "a", "operator-creator": "créateur", "operator-status": "statut", @@ -1054,7 +1054,7 @@ "predicate-checklist": "check-list", "predicate-start": "début", "predicate-end": "fin", - "predicate-assignee": "personne en charge", + "predicate-assignee": "intervenant", "predicate-member": "participant", "predicate-public": "public", "predicate-private": "privé", @@ -1079,13 +1079,13 @@ "globalSearch-instructions-operator-comment": "`__operator_comment__:` - cartes dont le commentaire contient **.", "globalSearch-instructions-operator-label": "`__operator_label__:` `__operator_label__:` - cartes qui ont une étiquette correspondant à ** ou à **.", "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__` - raccourci pour `__operator_label__:` ou `__operator_label__:`", - "globalSearch-instructions-operator-user": "`__operator_user__:` - cartes où l'utilisateur est *participant* ou est *en charge*.", + "globalSearch-instructions-operator-user": "`__operator_user__:` - cartes où l'utilisateur est *participant* ou *intervenant*.", "globalSearch-instructions-operator-at": "`__operator_user_abbrev__nom` - raccourci pour `__operator_user__:`", "globalSearch-instructions-operator-member": "`__operator_member__:` - cartes pour lesquelles l'utilisateur ** est *participant*", - "globalSearch-instructions-operator-assignee": "`__operator_assignee__:` - cartes *assignées* à l'utilisateur **", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:` - cartes *attribuées* à l'utilisateur **", "globalSearch-instructions-operator-creator": "`__operator_creator__:` - cartes dont le créateur est **", - "globalSearch-instructions-operator-org": "`__operator_org__:` - cartes appartenant à un tableau assigné à l'organisation **", - "globalSearch-instructions-operator-team": "`__operator_team__:` - cartes appartenant à un tableau assigné à l'équipe **", + "globalSearch-instructions-operator-org": "`__operator_org__:` - cartes appartenant à un tableau attribué à l'organisation **", + "globalSearch-instructions-operator-team": "`__operator_team__:` - cartes appartenant à un tableau attribué à l'équipe **", "globalSearch-instructions-operator-due": "`__operator_due__:` - cartes qui arrive à échéance dans moins de ** 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__:` - cartes qui ont été créées il y a ** jours ou moins", "globalSearch-instructions-operator-modified": "`__operator_modified__:` - cartes qui ont été modifiées il y a ** jours ou moins", diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index 18ef7cbe6..97e148dee 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s Arşive taşındı", "activity-attached": "%s içine %s ekledi", "activity-created": "%s öğesini oluşturdu", - "activity-changedListTitle": "renamed list to %s", + "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ı", @@ -86,10 +86,10 @@ "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 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", + "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", @@ -300,7 +300,7 @@ "color-white": "beyaz", "color-yellow": "sarı", "unset-color": "Seçilmemiş", - "comments": "Comments", + "comments": "Yorumlar", "comment": "Yorum", "comment-placeholder": "Yorum Yaz", "comment-only": "Sadece yorum", From a6d9bde658bc97991a9ecff66eca573b1d263184 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 20:02:13 +0000 Subject: [PATCH 299/356] Bump docker/build-push-action from 6.11.0 to 6.12.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.11.0 to 6.12.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/b32b51a8eda65d6793cd0494a773d4f6bcef32dc...67a2d409c0a876cbe6b11854e3e25193efe4e62d) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 99e4b6fbe..fc886ede4 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # 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@b32b51a8eda65d6793cd0494a773d4f6bcef32dc + uses: docker/build-push-action@67a2d409c0a876cbe6b11854e3e25193efe4e62d with: context: . push: ${{ github.event_name != 'pull_request' }} From 261e0aee0f4688b91187021d3019d4512347a000 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 20:02:15 +0000 Subject: [PATCH 300/356] Bump helm/chart-releaser-action from 1.6.0 to 1.7.0 Bumps [helm/chart-releaser-action](https://github.com/helm/chart-releaser-action) from 1.6.0 to 1.7.0. - [Release notes](https://github.com/helm/chart-releaser-action/releases) - [Commits](https://github.com/helm/chart-releaser-action/compare/v1.6.0...v1.7.0) --- updated-dependencies: - dependency-name: helm/chart-releaser-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 }}" From de84aa7674dbfd379c391c094f0cfe88e0812f52 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2025 20:17:17 +0000 Subject: [PATCH 301/356] Bump docker/build-push-action from 6.12.0 to 6.13.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.12.0 to 6.13.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/67a2d409c0a876cbe6b11854e3e25193efe4e62d...ca877d9245402d1537745e0e356eab47c3520991) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index fc886ede4..b01711dd8 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # 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@67a2d409c0a876cbe6b11854e3e25193efe4e62d + uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 with: context: . push: ${{ github.event_name != 'pull_request' }} From 16c8a65a1c40d9831b450ba778ca59883f6c87b4 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 10:22:08 +0200 Subject: [PATCH 302/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0ea150d0..0983da510 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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. + +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: From 151aafd114ccf8a0324fd219d9a5012d5507abd8 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 10:23:12 +0200 Subject: [PATCH 303/356] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0983da510..6da1c083d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,11 @@ 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. + Thanks to above GitHub users for their contributions and translators for their translations. # v7.80 2025-01-12 WeKan ® release From 0b1e0bd39569175668c195b63dde91bf0e6f1b24 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 13:38:40 +0200 Subject: [PATCH 304/356] Fixed env variable METRICS_ACCEPTED_IP_ADDRESS to be same as at docs. Thanks to salleman33 ! Fixes #5671 --- models/server/metrics.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/server/metrics.js b/models/server/metrics.js index f60e678d0..832f607ed 100644 --- a/models/server/metrics.js +++ b/models/server/metrics.js @@ -2,7 +2,7 @@ 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) @@ -48,7 +48,7 @@ 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) + // List of trusted ip adress will be found in environment variable "METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas) if (acceptedIpAddress(ipAddress)) { let metricsRes = ''; let resCount = 0; From 51bc23dbd92f352607794703eb2d3d76fe268098 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 13:40:34 +0200 Subject: [PATCH 305/356] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6da1c083d..b8c2285c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,11 @@ and adds the following updates: - [Updated Docker Actions](https://github.com/wekan/wekan/pull/5670). Thanks to dependabot. +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. + Thanks to above GitHub users for their contributions and translators for their translations. # v7.80 2025-01-12 WeKan ® release From 36a307785369337a788499065f64175971878930 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 14:09:31 +0200 Subject: [PATCH 306/356] Fix misspelling of hours at env variable setting LDAP_BACKGROUND_SYNC_INTERVAL. Thanks to hubermam ! Fixes #5665 --- docker-compose.yml | 8 +++- docker-compose.yml-arm64 | 8 +++- docs/Login/LDAP.md | 42 +++++++++++++++---- .../FOSS/torodb-postgresql/docker-compose.yml | 9 ++++ start-wekan.bat | 3 ++ start-wekan.sh | 3 ++ 6 files changed, 62 insertions(+), 11 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 752b2ad8d..f2e47e168 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -577,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 # 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/Login/LDAP.md b/docs/Login/LDAP.md index ba9d299e0..33f885ea6 100644 --- a/docs/Login/LDAP.md +++ b/docs/Login/LDAP.md @@ -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/Platforms/FOSS/torodb-postgresql/docker-compose.yml b/docs/Platforms/FOSS/torodb-postgresql/docker-compose.yml index fed2910d9..c47b831d1 100644 --- a/docs/Platforms/FOSS/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/start-wekan.bat b/start-wekan.bat index 2cf6fa92f..81624601b 100644 --- a/start-wekan.bat +++ b/start-wekan.bat @@ -459,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 diff --git a/start-wekan.sh b/start-wekan.sh index c67a16bfa..3bf00af06 100755 --- a/start-wekan.sh +++ b/start-wekan.sh @@ -385,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 From 0c7e12c5e7f322bdbaaa61100e66153dd0b92e4d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 14:13:21 +0200 Subject: [PATCH 307/356] Added Meteor 3.1 learning course to docs. Thanks to producer of learning course ! --- docs/DeveloperDocs/Meteor.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/DeveloperDocs/Meteor.md b/docs/DeveloperDocs/Meteor.md index 8bda65362..7a77196c2 100644 --- a/docs/DeveloperDocs/Meteor.md +++ b/docs/DeveloperDocs/Meteor.md @@ -1,3 +1,7 @@ +## 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 From d15faa189063725cd2e20e07ecd7609af1f4023c Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 14:15:31 +0200 Subject: [PATCH 308/356] Updated ChangeLog. --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8c2285c3..7fce1a7d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,11 +26,15 @@ 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. 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. Thanks to above GitHub users for their contributions and translators for their translations. From fd69c7ceb8328e362554856c89d880e9e4690a71 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 5 Feb 2025 04:41:42 +0200 Subject: [PATCH 309/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fce1a7d2..e88c3bdb0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,8 @@ and fixes the following bugs: 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. From b571f1c9530b899db75bf28a03c18277a9b77cb8 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 7 Feb 2025 16:11:48 +0200 Subject: [PATCH 310/356] Upgraded to MongoDB 6.0.20 at Snap Candidate. Thanks to MongoDB developers! --- snapcraft.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/snapcraft.yaml b/snapcraft.yaml index 2fb9c44f7..430660c9a 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.80' +version: '7.81' 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.19.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.80/wekan-7.80-amd64.zip - unzip wekan-7.80-amd64.zip - rm wekan-7.80-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.81/wekan-7.81-amd64.zip + unzip wekan-7.81-amd64.zip + rm wekan-7.81-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 3e18f820ea870473dc6718e635df0e8f5bde9863 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 7 Feb 2025 16:13:52 +0200 Subject: [PATCH 311/356] v7.81 --- CHANGELOG.md | 4 +++- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 8 ++++---- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 2 +- 8 files changed, 15 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e88c3bdb0..f07aa198b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.81 2025-02-07 WeKan ® release This release adds the following new features: @@ -28,6 +28,8 @@ and adds the following updates: 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: diff --git a/Stackerfile.yml b/Stackerfile.yml index 4ede19620..382f1587f 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.80.0" +appVersion: "v7.81.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 446a2930c..0c91e928c 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,19 +10,19 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.80-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.80/wekan-7.80-amd64-windows.zip) +1. [wekan-7.81-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.81/wekan-7.81-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) -3. [mongodb-windows-x86_64-6.0.19-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.19-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.19-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.80-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.81-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 2dc1f4bca..0cd3d5754 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.80.0", + "version": "v7.81.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 23fada81b..ea5d83fc1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.80.0", + "version": "v7.81.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 4761b490d..842a39efd 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.80 + Wekan REST API v7.81 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                              • - Wekan REST API v7.80 + Wekan REST API v7.81
                                              • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                                -

                                                Wekan REST API v7.80

                                                +

                                                Wekan REST API v7.81

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

                                                diff --git a/public/api/wekan.yml b/public/api/wekan.yml index c4353dc80..54a425d25 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.80 + version: v7.81 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index ecf9ae4aa..fcde8a378 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,7 +22,7 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 780, + appVersion = 781, # Increment this for every release. appMarketingVersion = (defaultText = "7.80.0~2025-01-12"), From 874abf2c419afffac8acd16c28f1dc649c849d12 Mon Sep 17 00:00:00 2001 From: salleman <37148072+salleman33@users.noreply.github.com> Date: Tue, 11 Feb 2025 12:06:23 +0100 Subject: [PATCH 312/356] Update metrics.js Add possibility to use a token in place of ipaddress to access metrics route --- models/server/metrics.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/models/server/metrics.js b/models/server/metrics.js index 832f607ed..67f08d499 100644 --- a/models/server/metrics.js +++ b/models/server/metrics.js @@ -9,6 +9,31 @@ function acceptedIpAddress(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() @@ -49,7 +74,7 @@ Meteor.startup(() => { // } // List of trusted ip adress will be found in environment variable "METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas) - if (acceptedIpAddress(ipAddress)) { + if (acceptedIpAddress(ipAddress) || (accessToken(req)) { let metricsRes = ''; let resCount = 0; //connected users From 563a508e269be87eb713e2888409525e1ba82001 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 11 Feb 2025 22:12:57 +0200 Subject: [PATCH 313/356] Added missing ) character. Thanks to xet7 ! --- models/server/metrics.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/models/server/metrics.js b/models/server/metrics.js index 67f08d499..669bbbf92 100644 --- a/models/server/metrics.js +++ b/models/server/metrics.js @@ -28,7 +28,7 @@ function accessToken(req) { token = req.query.access_token; } return ( - token !== undefined && + token !== undefined && valid_token !== undefined && token == valid_token ); @@ -74,7 +74,7 @@ Meteor.startup(() => { // } // List of trusted ip adress will be found in environment variable "METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas) - if (acceptedIpAddress(ipAddress) || (accessToken(req)) { + if (acceptedIpAddress(ipAddress) || (accessToken(req))) { let metricsRes = ''; let resCount = 0; //connected users @@ -195,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, ); @@ -210,7 +210,7 @@ Meteor.startup(() => { `wekan_top10BoardsWithMostActivities{n="${title}"} ${ index + 1 }` + '\n'; - }); + }); res.writeHead(200); // HTTP status res.end(metricsRes); From c83e83b8b1cedbb5602a5c8a72abbd0c0e131f87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Feb 2025 08:58:49 +0000 Subject: [PATCH 314/356] Bump dompurify from 2.5.6 to 3.2.4 Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.5.6 to 3.2.4. - [Release notes](https://github.com/cure53/DOMPurify/releases) - [Commits](https://github.com/cure53/DOMPurify/compare/2.5.6...3.2.4) --- updated-dependencies: - dependency-name: dompurify dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- package-lock.json | 4378 ++++++++++++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 2742 insertions(+), 1638 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0cd3d5754..4450b2d64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,72 @@ { "name": "wekan", "version": "v7.81.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/runtime": { + "packages": { + "": { + "version": "v7.81.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.0", + "@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": "^3.2.4", + "es6-promise": "^4.2.4", + "escape-string-regexp": "^5.0.0", + "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.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.12", + "minio": "^7.1.3", + "moment": "^2.29.4", + "os": "^0.1.2", + "papaparse": "^5.3.1", + "pretty-ms": "^7.0.1", + "qs": "^6.13.0", + "simpl-schema": "^3.4.6", + "source-map-support": "^0.5.20", + "uuid": "^8.3.2" + }, + "devDependencies": { + "flatted": "^3.3.1", + "sinon": "^13.0.2" + } + }, + "node_modules/@babel/runtime": { "version": "7.25.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", - "requires": { + "dependencies": { "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@fast-csv/format": { + "node_modules/@fast-csv/format": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", - "requires": { + "dependencies": { "@types/node": "^14.0.1", "lodash.escaperegexp": "^4.1.2", "lodash.isboolean": "^3.0.3", @@ -25,11 +75,11 @@ "lodash.isnil": "^4.0.0" } }, - "@fast-csv/parse": { + "node_modules/@fast-csv/parse": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", - "requires": { + "dependencies": { "@types/node": "^14.0.1", "lodash.escaperegexp": "^4.1.2", "lodash.groupby": "^4.6.0", @@ -39,11 +89,11 @@ "lodash.uniq": "^4.5.0" } }, - "@mapbox/node-pre-gyp": { + "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", - "requires": { + "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", "make-dir": "^3.1.0", @@ -53,69 +103,85 @@ "rimraf": "^3.0.2", "semver": "^7.3.5", "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" } }, - "@rwap/jquery-ui-touch-punch": { + "node_modules/@rwap/jquery-ui-touch-punch": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@rwap/jquery-ui-touch-punch/-/jquery-ui-touch-punch-1.0.11.tgz", "integrity": "sha512-GFRfHxnl9uH4v4F7E+rtXYbcsDYSas5fqfmKWVy/dfs+BDfLUqClIOL5MZlroDFoL3T9bCbsFMFXULHSL34ZdA==", - "requires": { + "dependencies": { "jquery-ui": ">=1.8" } }, - "@sinonjs/commons": { + "node_modules/@sinonjs/commons": { "version": "1.8.6", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, - "requires": { + "dependencies": { "type-detect": "4.0.8" } }, - "@sinonjs/fake-timers": { + "node_modules/@sinonjs/fake-timers": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, - "requires": { + "dependencies": { "@sinonjs/commons": "^1.7.0" } }, - "@sinonjs/samsam": { + "node_modules/@sinonjs/samsam": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", "dev": true, - "requires": { + "dependencies": { "@sinonjs/commons": "^1.6.0", "lodash.get": "^4.4.2", "type-detect": "^4.0.8" } }, - "@sinonjs/text-encoding": { + "node_modules/@sinonjs/text-encoding": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, - "@tokenizer/token": { + "node_modules/@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, - "@types/node": { + "node_modules/@types/node": { "version": "14.18.63", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" }, - "@wekanteam/dragscroll": { - "version": "git+https://github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2", - "from": "git+https://github.com/wekan/dragscroll.git" + "node_modules/@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==", + "license": "MIT", + "optional": true }, - "@wekanteam/exceljs": { - "version": "git+https://github.com/wekan/exceljs.git#e0229907e7a81bc3fe6daf4e42b1fdfbecdcb7cb", - "from": "git+https://github.com/wekan/exceljs.git", - "requires": { + "node_modules/@wekanteam/dragscroll": { + "version": "0.0.8", + "resolved": "git+ssh://git@github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2", + "integrity": "sha512-fpxmJ0A++PiEEUBi6uqnNChKCRwRaQqOMcwnF4W9EtGzCczd8S7iRjCoLtQWAxpWF3n6Ag4IIqifgUYkBVNBYA==", + "engines": { + "node": "*" + } + }, + "node_modules/@wekanteam/exceljs": { + "version": "4.5.0", + "resolved": "git+ssh://git@github.com/wekan/exceljs.git#e0229907e7a81bc3fe6daf4e42b1fdfbecdcb7cb", + "integrity": "sha512-OpbewmMvAU8582TO0wK0nQ/YmkmgeVKOdknnNM9aKr7pKK54pvSRMyC0qydRSVNFsby5BAKfmveABDjuktqkQg==", + "license": "MIT", + "dependencies": { "archiver": "^5.0.0", "dayjs": "^1.8.34", "fast-csv": "^4.3.1", @@ -125,84 +191,100 @@ "tmp": "^0.2.0", "unzipper": "^0.10.11", "uuid": "^8.3.0" + }, + "engines": { + "node": ">=8.3.0" } }, - "@wekanteam/html-to-markdown": { + "node_modules/@wekanteam/html-to-markdown": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@wekanteam/html-to-markdown/-/html-to-markdown-1.0.2.tgz", "integrity": "sha512-PxeGIu/HMjmL84N2Dj5qp4lFlBP4jV/y6WU/JhDiFPx6gfGEWXgDcc9sShTPNvECtToGAA0SCD6T/k50CMHi8Q==" }, - "@wekanteam/meteor-globals": { + "node_modules/@wekanteam/meteor-globals": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@wekanteam/meteor-globals/-/meteor-globals-1.1.4.tgz", "integrity": "sha512-zaq+/F+5/aI46JXXcp3LhcYrM+ZQ0aH99BKuFyP0Ie1ACnYPqHqhUwCwScGiauxmMc9abHduC6DJTbxnJGc2QQ==", - "requires": { + "dependencies": { "semver": "^7.5.4" } }, - "@wekanteam/meteor-reactive-cache": { + "node_modules/@wekanteam/meteor-reactive-cache": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@wekanteam/meteor-reactive-cache/-/meteor-reactive-cache-1.0.6.tgz", "integrity": "sha512-xewS5N2ON5oN1+HWaAZhnSF7oNR/yfcXfSunVxjrCSExu3OzD1JMGK5FTxGYYzN3ShJgWGLSmjw7zL6+gvQxgg==", - "requires": { + "dependencies": { "@wekanteam/meteor-globals": "^1.1.4" } }, - "@zxing/text-encoding": { + "node_modules/@zxing/text-encoding": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", "optional": true }, - "abbrev": { + "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, - "abstract-logging": { + "node_modules/abstract-logging": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" }, - "agent-base": { + "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { + "dependencies": { "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" } }, - "ajv": { + "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { + "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ansi-colors": { + "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } }, - "aproba": { + "node_modules/aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, - "archiver": { + "node_modules/archiver": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "requires": { + "dependencies": { "archiver-utils": "^2.1.0", "async": "^3.2.4", "buffer-crc32": "^0.2.1", @@ -210,13 +292,16 @@ "readdir-glob": "^1.1.2", "tar-stream": "^2.2.0", "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" } }, - "archiver-utils": { + "node_modules/archiver-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "requires": { + "dependencies": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", @@ -228,212 +313,281 @@ "normalize-path": "^3.0.0", "readable-stream": "^2.0.0" }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "engines": { + "node": ">= 6" } }, - "are-we-there-yet": { + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "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" + } + }, + "node_modules/archiver-utils/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/are-we-there-yet": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "requires": { + "deprecated": "This package is no longer supported.", + "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" } }, - "argparse": { + "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "asn1": { + "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { + "dependencies": { "safer-buffer": "~2.1.0" } }, - "assert-plus": { + "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } }, - "async": { + "node_modules/async": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" }, - "available-typed-arrays": { + "node_modules/available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "backoff": { + "node_modules/backoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", - "requires": { + "dependencies": { "precond": "0.2" + }, + "engines": { + "node": ">= 0.6" } }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "base64-js": { + "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "bcryptjs": { + "node_modules/bcryptjs": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" }, - "big-integer": { + "node_modules/big-integer": { "version": "1.6.52", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==" + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "engines": { + "node": ">=0.6" + } }, - "binary": { + "node_modules/binary": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "requires": { + "dependencies": { "buffers": "~0.1.1", "chainsaw": "~0.1.0" + }, + "engines": { + "node": "*" } }, - "bl": { + "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "requires": { + "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, - "block-stream2": { + "node_modules/block-stream2": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz", "integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==", - "requires": { + "dependencies": { "readable-stream": "^3.4.0" } }, - "bluebird": { + "node_modules/bluebird": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" }, - "boolbase": { + "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "browser-or-node": { + "node_modules/browser-or-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.1.1.tgz", "integrity": "sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==" }, - "bson": { + "node_modules/bson": { "version": "4.7.2", "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", - "requires": { + "dependencies": { "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "buffer": { + "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, - "buffer-crc32": { + "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } }, - "buffer-from": { + "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "buffer-indexof-polyfill": { + "node_modules/buffer-indexof-polyfill": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==" + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", + "engines": { + "node": ">=0.10" + } }, - "buffers": { + "node_modules/buffers": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==" + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "engines": { + "node": ">=0.2.0" + } }, - "call-bind": { + "node_modules/call-bind": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "requires": { + "dependencies": { "function-bind": "^1.1.2", "get-intrinsic": "^1.2.1", "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "chainsaw": { + "node_modules/chainsaw": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "requires": { + "dependencies": { "traverse": ">=0.3.0 <0.4" + }, + "engines": { + "node": "*" } }, - "cheerio": { + "node_modules/cheerio": { "version": "1.0.0-rc.10", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", - "requires": { + "dependencies": { "cheerio-select": "^1.5.0", "dom-serializer": "^1.3.2", "domhandler": "^4.2.0", @@ -441,429 +595,595 @@ "parse5": "^6.0.1", "parse5-htmlparser2-tree-adapter": "^6.0.1", "tslib": "^2.2.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "cheerio-select": { + "node_modules/cheerio-select": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz", "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", - "requires": { + "dependencies": { "css-select": "^4.3.0", "css-what": "^6.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.3.1", "domutils": "^2.8.0" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "chownr": { + "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } }, - "clone": { + "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } }, - "color-support": { + "node_modules/color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } }, - "commander": { + "node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "engines": { + "node": ">= 6" + } }, - "compress-commons": { + "node_modules/compress-commons": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "requires": { + "dependencies": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.2", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" } }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, - "console-control-strings": { + "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, - "core-util-is": { + "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "crc-32": { + "node_modules/crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } }, - "crc32-stream": { + "node_modules/crc32-stream": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "requires": { + "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" } }, - "css-select": { + "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "requires": { + "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "css-what": { + "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } }, - "dayjs": { + "node_modules/dayjs": { "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" }, - "debug": { + "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { + "dependencies": { "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "decode-uri-component": { + "node_modules/decode-uri-component": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } }, - "define-data-property": { + "node_modules/define-data-property": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "requires": { + "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "delegates": { + "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, - "detect-libc": { + "node_modules/detect-libc": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "engines": { + "node": ">=8" + } }, - "diff": { + "node_modules/diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.3.1" + } }, - "dom-serializer": { + "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "requires": { + "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "domelementtype": { + "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] }, - "domhandler": { + "node_modules/domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "requires": { + "dependencies": { "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "dompurify": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.6.tgz", - "integrity": "sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ==" + "node_modules/dompurify": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", + "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } }, - "domutils": { + "node_modules/domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { + "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "duplexer2": { + "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "requires": { - "readable-stream": "^2.0.2" - }, "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "readable-stream": "^2.0.2" } }, - "emoji-regex": { + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "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" + } + }, + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "end-of-stream": { + "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { + "dependencies": { "once": "^1.4.0" } }, - "entities": { + "node_modules/entities": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, - "es-define-property": { + "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "requires": { + "dependencies": { "get-intrinsic": "^1.2.4" }, - "dependencies": { - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - } + "engines": { + "node": ">= 0.4" } }, - "es-errors": { + "node_modules/es-define-property/node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } }, - "es6-promise": { + "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" }, - "escape-goat": { + "node_modules/escape-goat": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz", - "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==" + "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esm": { + "node_modules/esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "engines": { + "node": ">=6" + } }, - "extsprintf": { + "node_modules/extsprintf": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==" + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "engines": [ + "node >=0.6.0" + ] }, - "fast-csv": { + "node_modules/fast-csv": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", - "requires": { + "dependencies": { "@fast-csv/format": "4.3.5", "@fast-csv/parse": "4.3.6" + }, + "engines": { + "node": ">=10.0.0" } }, - "fast-deep-equal": { + "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "fast-json-stable-stringify": { + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "fast-xml-parser": { + "node_modules/fast-xml-parser": { "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": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "dependencies": { "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" } }, - "fibers": { + "node_modules/fibers": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.3.tgz", "integrity": "sha512-/qYTSoZydQkM21qZpGLDLuCq8c+B8KhuCQ1kLPvnRNhxhVbvrpmH9l2+Lblf5neDuEsY4bfT7LeO553TXQDvJw==", - "requires": { + "hasInstallScript": true, + "dependencies": { "detect-libc": "^1.0.3" }, - "dependencies": { - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==" - } + "engines": { + "node": ">=10.0.0" } }, - "file-type": { + "node_modules/fibers/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/file-type": { "version": "16.5.4", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", - "requires": { + "dependencies": { "readable-web-to-node-stream": "^3.0.0", "strtok3": "^6.2.4", "token-types": "^4.1.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, - "filesize": { + "node_modules/filesize": { "version": "8.0.7", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } }, - "filter-obj": { + "node_modules/filter-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==" + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "engines": { + "node": ">=0.10.0" + } }, - "flatted": { + "node_modules/flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "for-each": { + "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { + "dependencies": { "is-callable": "^1.1.3" } }, - "fs-constants": { + "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, - "fs-minipass": { + "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { + "dependencies": { "minipass": "^3.0.0" }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } + "engines": { + "node": ">= 8" } }, - "fs.realpath": { + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "fstream": { + "node_modules/fstream": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "requires": { + "deprecated": "This package is no longer supported.", + "dependencies": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", "mkdirp": ">=0.5 0", "rimraf": "2" }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } + "engines": { + "node": ">=0.6" } }, - "function-bind": { + "node_modules/fstream/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/fstream/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "gauge": { + "node_modules/gauge": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "requires": { + "deprecated": "This package is no longer supported.", + "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", "console-control-strings": "^1.0.0", @@ -873,323 +1193,444 @@ "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" } }, - "get-intrinsic": { + "node_modules/get-intrinsic": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "requires": { + "dependencies": { "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "glob": { + "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "gopd": { + "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { + "dependencies": { "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "graceful-fs": { + "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "has-flag": { + "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "has-property-descriptors": { + "node_modules/has-property-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "requires": { + "dependencies": { "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-proto": { + "node_modules/has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-symbols": { + "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-tostringtag": { + "node_modules/has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { + "dependencies": { "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-unicode": { + "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, - "hasown": { + "node_modules/hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "requires": { + "dependencies": { "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "htmlparser2": { + "node_modules/htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", "domutils": "^2.5.2", "entities": "^2.0.0" } }, - "https-proxy-agent": { + "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { + "dependencies": { "agent-base": "6", "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "i18next": { + "node_modules/i18next": { "version": "21.10.0", "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz", "integrity": "sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==", - "requires": { + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { "@babel/runtime": "^7.17.2" } }, - "i18next-sprintf-postprocessor": { + "node_modules/i18next-sprintf-postprocessor": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/i18next-sprintf-postprocessor/-/i18next-sprintf-postprocessor-0.2.2.tgz", "integrity": "sha512-c/IT9xuMyTfJ/3Ds+DPtb0vYVuykbMyGChZ5OGZTzFDV7Kgst1nrNOwdbZ+PkcA5kLXEE3U0RKkNbabj07261w==" }, - "ieee754": { + "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "immediate": { + "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ipaddr.js": { + "node_modules/ipaddr.js": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==" + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "engines": { + "node": ">= 10" + } }, - "is-arguments": { + "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-callable": { + "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-fullwidth-code-point": { + "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } }, - "is-generator-function": { + "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-typed-array": { + "node_modules/is-typed-array": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "requires": { + "dependencies": { "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "isarray": { + "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "jquery": { + "node_modules/jquery": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, - "jquery-ui": { + "node_modules/jquery-ui": { "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": { + "dependencies": { "jquery": ">=1.8.0 <4.0.0" } }, - "json-schema-traverse": { + "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "json-stream": { + "node_modules/json-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz", "integrity": "sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==" }, - "jszip": { + "node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "requires": { + "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "setimmediate": "^1.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, - "juice": { + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "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" + } + }, + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/juice": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/juice/-/juice-8.1.0.tgz", "integrity": "sha512-FLzurJrx5Iv1e7CfBSZH68dC04EEvXvvVvPYB7Vx1WAuhCp1ZPIMtqxc+WTWxVkpTIC2Ach/GAv0rQbtGf6YMA==", - "requires": { + "dependencies": { "cheerio": "1.0.0-rc.10", "commander": "^6.1.0", "mensch": "^0.3.4", "slick": "^1.12.2", "web-resource-inliner": "^6.0.1" + }, + "bin": { + "juice": "bin/juice" + }, + "engines": { + "node": ">=10.0.0" } }, - "just-extend": { + "node_modules/just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, - "lazystream": { + "node_modules/lazystream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "requires": { + "dependencies": { "readable-stream": "^2.0.5" }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "engines": { + "node": ">= 0.6.3" } }, - "ldap-filter": { + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "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" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ldap-filter": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.3.3.tgz", "integrity": "sha512-/tFkx5WIn4HuO+6w9lsfxq4FN3O+fDZeO9Mek8dCD8rTUpqzRa766BOBO7BcGkn3X86m5+cBm1/2S/Shzz7gMg==", - "requires": { + "dependencies": { "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.8" } }, - "ldapjs": { + "node_modules/ldapjs": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-2.3.3.tgz", "integrity": "sha512-75QiiLJV/PQqtpH+HGls44dXweviFwQ6SiIK27EqzKQ5jU/7UFrl2E5nLdQ3IYRBzJ/AVFJI66u0MZ0uofKYwg==", - "requires": { + "deprecated": "This package has been decomissioned. See https://github.com/ldapjs/node-ldapjs/blob/8ffd0bc9c149088a10ec4c1ec6a18450f76ad05d/README.md", + "dependencies": { "abstract-logging": "^2.0.0", "asn1": "^0.2.4", "assert-plus": "^1.0.0", @@ -1198,185 +1639,228 @@ "once": "^1.4.0", "vasync": "^2.2.0", "verror": "^1.8.1" + }, + "engines": { + "node": ">=10.13.0" } }, - "lie": { + "node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "requires": { + "dependencies": { "immediate": "~3.0.5" } }, - "linkify-it": { + "node_modules/linkify-it": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "requires": { + "dependencies": { "uc.micro": "^1.0.1" } }, - "listenercount": { + "node_modules/listenercount": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" }, - "lodash": { + "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.defaults": { + "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" }, - "lodash.difference": { + "node_modules/lodash.difference": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" }, - "lodash.escaperegexp": { + "node_modules/lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" }, - "lodash.flatten": { + "node_modules/lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" }, - "lodash.get": { + "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", "dev": true }, - "lodash.groupby": { + "node_modules/lodash.groupby": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" }, - "lodash.isboolean": { + "node_modules/lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" }, - "lodash.isequal": { + "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead." }, - "lodash.isfunction": { + "node_modules/lodash.isfunction": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" }, - "lodash.isnil": { + "node_modules/lodash.isnil": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" }, - "lodash.isplainobject": { + "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" }, - "lodash.isundefined": { + "node_modules/lodash.isundefined": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==" }, - "lodash.union": { + "node_modules/lodash.union": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" }, - "lodash.uniq": { + "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, - "lru-cache": { + "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { + "dependencies": { "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "make-dir": { + "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { + "dependencies": { "semver": "^6.0.0" }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - } + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "markdown-it": { + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/markdown-it": { "version": "12.3.2", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "requires": { + "dependencies": { "argparse": "^2.0.1", "entities": "~2.1.0", "linkify-it": "^3.0.1", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" } }, - "markdown-it-emoji": { + "node_modules/markdown-it-emoji": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz", "integrity": "sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==" }, - "markdown-it-mathjax3": { + "node_modules/markdown-it-mathjax3": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/markdown-it-mathjax3/-/markdown-it-mathjax3-4.3.2.tgz", "integrity": "sha512-TX3GW5NjmupgFtMJGRauioMbbkGsOXAAt1DZ/rzzYmTHqzkO1rNAdiMD4NiruurToPApn2kYy76x02QN26qr2w==", - "requires": { + "dependencies": { "juice": "^8.0.0", "mathjax-full": "^3.2.0" } }, - "mathjax-full": { + "node_modules/mathjax-full": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz", "integrity": "sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==", - "requires": { + "dependencies": { "esm": "^3.2.25", "mhchemparser": "^4.1.0", "mj-context-menu": "^0.6.1", "speech-rule-engine": "^4.0.6" } }, - "mdurl": { + "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" }, - "mensch": { + "node_modules/mensch": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz", "integrity": "sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==" }, - "meteor-accounts-t9n": { + "node_modules/meteor-accounts-t9n": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/meteor-accounts-t9n/-/meteor-accounts-t9n-2.6.0.tgz", "integrity": "sha512-SBbbYWvFYvsxHVL+q6ZB8lT3rp2LSvfALD2V52H+MGH2IgJsevy0VtXRkRG0EsUewwOaDTIKBn9DlD8HQ3GSwg==" }, - "meteor-node-stubs": { + "node_modules/meteor-node-stubs": { "version": "1.2.12", "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.12.tgz", "integrity": "sha512-mzp3KI2aGNDhFlCVXPd0pfMr2z9A5vl1AqEgV13/z7AgKwcbd2X+ymE6tpSAMkrrQb40PU9PC2B59bCb6XkAaw==", - "requires": { + "bundleDependencies": [ + "@meteorjs/crypto-browserify", + "assert", + "browserify-zlib", + "buffer", + "console-browserify", + "constants-browserify", + "domain-browser", + "events", + "https-browserify", + "os-browserify", + "path-browserify", + "process", + "punycode", + "querystring-es3", + "readable-stream", + "stream-browserify", + "stream-http", + "string_decoder", + "timers-browserify", + "tty-browserify", + "url", + "util", + "vm-browserify" + ], + "dependencies": { "@meteorjs/crypto-browserify": "^3.12.1", "assert": "^2.1.0", "browserify-zlib": "^0.2.0", @@ -1401,825 +1885,1181 @@ "url": "^0.11.4", "util": "^0.12.5", "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", - "bundled": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "bundled": true - } - } - }, - "assert": { - "version": "2.1.0", - "bundled": true, - "requires": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, - "available-typed-arrays": { - "version": "1.0.5", - "bundled": true - }, - "base64-js": { - "version": "1.5.1", - "bundled": true - }, - "bn.js": { - "version": "5.2.0", - "bundled": true - }, - "brorand": { - "version": "1.1.0", - "bundled": true - }, - "browserify-aes": { - "version": "1.2.0", - "bundled": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "bundled": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "bundled": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "bundled": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.3", - "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", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", - "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 - } - } - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "bundled": true, - "requires": { - "pako": "~1.0.5" - } - }, - "buffer": { - "version": "5.7.1", - "bundled": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-xor": { - "version": "1.0.3", - "bundled": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "bundled": true - }, - "call-bind": { - "version": "1.0.7", - "bundled": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "cipher-base": { - "version": "1.0.4", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "console-browserify": { - "version": "1.2.0", - "bundled": true - }, - "constants-browserify": { - "version": "1.0.0", - "bundled": true - }, - "core-util-is": { - "version": "1.0.3", - "bundled": true - }, - "create-ecdh": { - "version": "4.0.4", - "bundled": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "bundled": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "bundled": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "bundled": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "define-data-property": { - "version": "1.1.4", - "bundled": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "define-properties": { - "version": "1.2.1", - "bundled": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "des.js": { - "version": "1.0.1", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "diffie-hellman": { - "version": "5.0.3", - "bundled": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "bundled": true - } - } - }, - "domain-browser": { - "version": "4.23.0", - "bundled": true - }, - "elliptic": { - "version": "6.6.0", - "bundled": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "bundled": true - } - } - }, - "es-define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "bundled": true - }, - "events": { - "version": "3.3.0", - "bundled": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "bundled": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "for-each": { - "version": "0.3.3", - "bundled": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "function-bind": { - "version": "1.1.2", - "bundled": true - }, - "get-intrinsic": { - "version": "1.2.4", - "bundled": true, - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "bundled": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "has-property-descriptors": { - "version": "1.0.2", - "bundled": true, - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.1", - "bundled": true - }, - "has-symbols": { - "version": "1.0.3", - "bundled": true - }, - "has-tostringtag": { - "version": "1.0.0", - "bundled": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "bundled": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "bundled": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hasown": { - "version": "2.0.0", - "bundled": true, - "requires": { - "function-bind": "^1.1.2" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "bundled": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "https-browserify": { - "version": "1.0.0", - "bundled": true - }, - "ieee754": { - "version": "1.2.1", - "bundled": true - }, - "inherits": { - "version": "2.0.4", - "bundled": true - }, - "is-arguments": { - "version": "1.1.1", - "bundled": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "bundled": true - }, - "is-generator-function": { - "version": "1.0.10", - "bundled": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-nan": { - "version": "1.3.2", - "bundled": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "is-typed-array": { - "version": "1.1.12", - "bundled": true, - "requires": { - "which-typed-array": "^1.1.11" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "md5.js": { - "version": "1.3.5", - "bundled": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "bundled": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "bundled": true - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "bundled": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "bundled": true - }, - "object-inspect": { - "version": "1.13.2", - "bundled": true - }, - "object-is": { - "version": "1.1.5", - "bundled": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "bundled": true - }, - "object.assign": { - "version": "4.1.4", - "bundled": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "os-browserify": { - "version": "0.3.0", - "bundled": true - }, - "pako": { - "version": "1.0.11", - "bundled": true - }, - "parse-asn1": { - "version": "5.1.7", - "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" - } - } - } - }, - "path-browserify": { - "version": "1.0.1", - "bundled": true - }, - "pbkdf2": { - "version": "3.1.2", - "bundled": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "process": { - "version": "0.11.10", - "bundled": true - }, - "process-nextick-args": { - "version": "2.0.1", - "bundled": true - }, - "public-encrypt": { - "version": "4.0.3", - "bundled": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "bundled": true - } - } - }, - "punycode": { - "version": "1.4.1", - "bundled": true - }, - "qs": { - "version": "6.13.0", - "bundled": true, - "requires": { - "side-channel": "^1.0.6" - } - }, - "querystring-es3": { - "version": "0.2.1", - "bundled": true - }, - "randombytes": { - "version": "2.1.0", - "bundled": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "bundled": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "readable-stream": { - "version": "3.6.2", - "bundled": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "ripemd160": { - "version": "2.0.2", - "bundled": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "bundled": true - }, - "set-function-length": { - "version": "1.2.2", - "bundled": true, - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - }, - "setimmediate": { - "version": "1.0.5", - "bundled": true - }, - "sha.js": { - "version": "2.4.11", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "side-channel": { - "version": "1.0.6", - "bundled": true, - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - } - }, - "stream-browserify": { - "version": "3.0.0", - "bundled": true, - "requires": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "stream-http": { - "version": "3.2.0", - "bundled": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "string_decoder": { - "version": "1.3.0", - "bundled": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "timers-browserify": { - "version": "2.0.12", - "bundled": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tty-browserify": { - "version": "0.0.1", - "bundled": true - }, - "url": { - "version": "0.11.4", - "bundled": true, - "requires": { - "punycode": "^1.4.1", - "qs": "^6.12.3" - } - }, - "util": { - "version": "0.12.5", - "bundled": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true - }, - "vm-browserify": { - "version": "1.1.2", - "bundled": true - }, - "which-typed-array": { - "version": "1.1.13", - "bundled": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "xtend": { - "version": "4.0.2", - "bundled": true - } } }, - "mhchemparser": { + "node_modules/meteor-node-stubs/node_modules/@meteorjs/crypto-browserify": { + "version": "3.12.1", + "integrity": "sha512-ku23zGjNb1XJXPSPlt4QCPetc4s/cPrSahhSF11mFeQff5wBuu7QVVn/MusdHh+l3aKl6L1XMLV+OYLXvNDQ6Q==", + "inBundle": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base": { + "version": "3.0.4", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/meteor-node-stubs/node_modules/asn1.js": { + "version": "4.10.1", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "inBundle": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/assert": { + "version": "2.1.0", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "inBundle": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/meteor-node-stubs/node_modules/available-typed-arrays": { + "version": "1.0.5", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/base64-js": { + "version": "1.5.1", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/bn.js": { + "version": "5.2.0", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/brorand": { + "version": "1.1.0", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/browserify-aes": { + "version": "1.2.0", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "inBundle": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-cipher": { + "version": "1.0.1", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "inBundle": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-des": { + "version": "1.0.2", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "inBundle": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-rsa": { + "version": "4.1.0", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "inBundle": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign": { + "version": "4.2.3", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "inBundle": true, + "dependencies": { + "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", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/bn.js": { + "version": "5.2.1", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/hash-base": { + "version": "3.0.4", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "inBundle": true, + "dependencies": { + "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" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/string_decoder": { + "version": "1.1.1", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "inBundle": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/browserify-zlib": { + "version": "0.2.0", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "inBundle": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/meteor-node-stubs/node_modules/buffer": { + "version": "5.7.1", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/meteor-node-stubs/node_modules/buffer-xor": { + "version": "1.0.3", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/builtin-status-codes": { + "version": "3.0.0", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/call-bind": { + "version": "1.0.7", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "inBundle": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/cipher-base": { + "version": "1.0.4", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/console-browserify": { + "version": "1.2.0", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/constants-browserify": { + "version": "1.0.0", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/core-util-is": { + "version": "1.0.3", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/create-ecdh": { + "version": "4.0.4", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "inBundle": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/meteor-node-stubs/node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/create-hash": { + "version": "1.2.0", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "inBundle": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/create-hmac": { + "version": "1.1.7", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "inBundle": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/meteor-node-stubs/node_modules/define-data-property": { + "version": "1.1.4", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "inBundle": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/define-properties": { + "version": "1.2.1", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "inBundle": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/des.js": { + "version": "1.0.1", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/diffie-hellman": { + "version": "5.0.3", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "inBundle": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/domain-browser": { + "version": "4.23.0", + "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", + "inBundle": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/meteor-node-stubs/node_modules/elliptic": { + "version": "6.6.0", + "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", + "inBundle": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/es-define-property": { + "version": "1.0.0", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "inBundle": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/es-errors": { + "version": "1.3.0", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/events": { + "version": "3.3.0", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "inBundle": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/meteor-node-stubs/node_modules/evp_bytestokey": { + "version": "1.0.3", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "inBundle": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/for-each": { + "version": "0.3.3", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "inBundle": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/meteor-node-stubs/node_modules/function-bind": { + "version": "1.1.2", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "inBundle": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/get-intrinsic": { + "version": "1.2.4", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "inBundle": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/gopd": { + "version": "1.0.1", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "inBundle": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/has-property-descriptors": { + "version": "1.0.2", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "inBundle": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/has-proto": { + "version": "1.0.1", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/has-symbols": { + "version": "1.0.3", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/has-tostringtag": { + "version": "1.0.0", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "inBundle": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/hash-base": { + "version": "3.1.0", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/meteor-node-stubs/node_modules/hash.js": { + "version": "1.1.7", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/hasown": { + "version": "2.0.0", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "inBundle": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/hmac-drbg": { + "version": "1.0.1", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "inBundle": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/https-browserify": { + "version": "1.0.0", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/ieee754": { + "version": "1.2.1", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/inherits": { + "version": "2.0.4", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/is-arguments": { + "version": "1.1.1", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "inBundle": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-callable": { + "version": "1.2.7", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-generator-function": { + "version": "1.0.10", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "inBundle": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-nan": { + "version": "1.3.2", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "inBundle": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-typed-array": { + "version": "1.1.12", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "inBundle": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/isarray": { + "version": "1.0.0", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/md5.js": { + "version": "1.3.5", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "inBundle": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/miller-rabin": { + "version": "4.0.1", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "inBundle": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/meteor-node-stubs/node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/minimalistic-assert": { + "version": "1.0.1", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/object-inspect": { + "version": "1.13.2", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/object-is": { + "version": "1.1.5", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "inBundle": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/object-keys": { + "version": "1.1.1", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/object.assign": { + "version": "4.1.4", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "inBundle": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/os-browserify": { + "version": "0.3.0", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/pako": { + "version": "1.0.11", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/parse-asn1": { + "version": "5.1.7", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "inBundle": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/meteor-node-stubs/node_modules/parse-asn1/node_modules/hash-base": { + "version": "3.0.4", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/meteor-node-stubs/node_modules/path-browserify": { + "version": "1.0.1", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/pbkdf2": { + "version": "3.1.2", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "inBundle": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/meteor-node-stubs/node_modules/process": { + "version": "0.11.10", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "inBundle": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/process-nextick-args": { + "version": "2.0.1", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/public-encrypt": { + "version": "4.0.3", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "inBundle": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/punycode": { + "version": "1.4.1", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/qs": { + "version": "6.13.0", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "inBundle": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/querystring-es3": { + "version": "0.2.1", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "inBundle": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/meteor-node-stubs/node_modules/randombytes": { + "version": "2.1.0", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "inBundle": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/randomfill": { + "version": "1.0.4", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "inBundle": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/readable-stream": { + "version": "3.6.2", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/meteor-node-stubs/node_modules/ripemd160": { + "version": "2.0.2", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "inBundle": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/safe-buffer": { + "version": "5.2.1", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/set-function-length": { + "version": "1.2.2", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "inBundle": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/setimmediate": { + "version": "1.0.5", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/sha.js": { + "version": "2.4.11", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/meteor-node-stubs/node_modules/side-channel": { + "version": "1.0.6", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "inBundle": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/stream-browserify": { + "version": "3.0.0", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "inBundle": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/stream-http": { + "version": "3.2.0", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "inBundle": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/string_decoder": { + "version": "1.3.0", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "inBundle": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/timers-browserify": { + "version": "2.0.12", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "inBundle": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/tty-browserify": { + "version": "0.0.1", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/url": { + "version": "0.11.4", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "inBundle": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/util": { + "version": "0.12.5", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/util-deprecate": { + "version": "1.0.2", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/vm-browserify": { + "version": "1.1.2", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/which-typed-array": { + "version": "1.1.13", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "inBundle": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/xtend": { + "version": "4.0.2", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "inBundle": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/mhchemparser": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz", "integrity": "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==" }, - "mime": { + "node_modules/mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } }, - "mime-db": { + "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { + "dependencies": { "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "minimatch": { + "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { + "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "minio": { + "node_modules/minio": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/minio/-/minio-7.1.3.tgz", "integrity": "sha512-xPrLjWkTT5E7H7VnzOjF//xBp9I40jYB4aWhb2xTFopXXfw+Wo82DDWngdUju7Doy3Wk7R8C4LAgwhLHHnf0wA==", - "requires": { + "dependencies": { "async": "^3.2.4", "block-stream2": "^2.1.0", "browser-or-node": "^2.1.1", @@ -2234,637 +3074,861 @@ "web-encoding": "^1.1.5", "xml": "^1.0.1", "xml2js": "^0.5.0" + }, + "engines": { + "node": "^16 || ^18 || >=20" } }, - "minipass": { + "node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } }, - "minizlib": { + "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { + "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } + "engines": { + "node": ">= 8" } }, - "mj-context-menu": { + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mj-context-menu": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz", "integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==" }, - "mkdirp": { + "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } }, - "moment": { + "node_modules/moment": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } }, - "mongo-object": { + "node_modules/mongo-object": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mongo-object/-/mongo-object-3.0.1.tgz", - "integrity": "sha512-EbiwWHvKOF9xhIzuwaqknwPISdkHMipjMs6DiJFicupgBBLEhUs0OOro9MuPkFogB17DZlsV4KJhhxfqZ7ZRMQ==" + "integrity": "sha512-EbiwWHvKOF9xhIzuwaqknwPISdkHMipjMs6DiJFicupgBBLEhUs0OOro9MuPkFogB17DZlsV4KJhhxfqZ7ZRMQ==", + "engines": { + "node": ">=14.16", + "npm": ">=8" + } }, - "ms": { + "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "nise": { + "node_modules/nise": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", "dev": true, - "requires": { + "dependencies": { "@sinonjs/commons": "^2.0.0", "@sinonjs/fake-timers": "^10.0.2", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - } - } - }, - "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==", - "dev": true - }, - "path-to-regexp": { - "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" - } - } } }, - "node-fetch": { + "node_modules/nise/node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/nise/node_modules/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==", + "dev": true + }, + "node_modules/nise/node_modules/path-to-regexp": { + "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, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "requires": { + "dependencies": { "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "nopt": { + "node_modules/nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "requires": { + "dependencies": { "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" } }, - "normalize-path": { + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } }, - "npmlog": { + "node_modules/npmlog": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "requires": { + "deprecated": "This package is no longer supported.", + "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", "gauge": "^3.0.0", "set-blocking": "^2.0.0" } }, - "nth-check": { + "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "requires": { + "dependencies": { "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "object-assign": { + "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } }, - "object-inspect": { + "node_modules/object-inspect": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { + "dependencies": { "wrappy": "1" } }, - "os": { + "node_modules/os": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" }, - "pako": { + "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, - "papaparse": { + "node_modules/papaparse": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz", "integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw==" }, - "parse-ms": { + "node_modules/parse-ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==" + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "engines": { + "node": ">=6" + } }, - "parse5": { + "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" }, - "parse5-htmlparser2-tree-adapter": { + "node_modules/parse5-htmlparser2-tree-adapter": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "requires": { + "dependencies": { "parse5": "^6.0.1" } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } }, - "peek-readable": { + "node_modules/peek-readable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } }, - "precond": { + "node_modules/precond": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==" + "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", + "engines": { + "node": ">= 0.6" + } }, - "pretty-ms": { + "node_modules/pretty-ms": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "requires": { + "dependencies": { "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "process-nextick-args": { + "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "punycode": { + "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } }, - "qs": { + "node_modules/qs": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "requires": { + "dependencies": { "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "query-string": { + "node_modules/query-string": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "requires": { + "dependencies": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "readable-stream": { + "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { + "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "readable-web-to-node-stream": { + "node_modules/readable-web-to-node-stream": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "requires": { + "dependencies": { "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "readdir-glob": { + "node_modules/readdir-glob": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "requires": { - "minimatch": "^5.1.0" - }, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "requires": { - "brace-expansion": "^2.0.1" - } - } + "minimatch": "^5.1.0" } }, - "regenerator-runtime": { + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, - "rimraf": { + "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sax": { + "node_modules/sax": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, - "saxes": { + "node_modules/saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "requires": { + "dependencies": { "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" } }, - "semver": { + "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { + "dependencies": { "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "set-blocking": { + "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, - "set-function-length": { + "node_modules/set-function-length": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "requires": { + "dependencies": { "define-data-property": "^1.1.1", "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "setimmediate": { + "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, - "side-channel": { + "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "requires": { + "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" }, - "dependencies": { - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "requires": { - "es-define-property": "^1.0.0" - } - }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - } + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "signal-exit": { + "node_modules/side-channel/node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel/node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel/node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel/node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel/node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, - "simpl-schema": { + "node_modules/simpl-schema": { "version": "3.4.6", "resolved": "https://registry.npmjs.org/simpl-schema/-/simpl-schema-3.4.6.tgz", "integrity": "sha512-xgShTrNzktC1TTgizSjyDHrxs0bmZa1b9sso54cL8xwO2OloVhtHjfO73/dAK9OFzUIWCBTpKMpD12JPTgVimA==", - "requires": { + "dependencies": { "clone": "^2.1.2", "mongo-object": "^3.0.1" + }, + "engines": { + "node": ">=14.16", + "npm": ">=8" } }, - "sinon": { + "node_modules/sinon": { "version": "13.0.2", "resolved": "https://registry.npmjs.org/sinon/-/sinon-13.0.2.tgz", "integrity": "sha512-KvOrztAVqzSJWMDoxM4vM+GPys1df2VBoXm+YciyB/OLMamfS3VXh3oGh5WtrAGSzrgczNWFFY22oKb7Fi5eeA==", + "deprecated": "16.1.1", "dev": true, - "requires": { + "dependencies": { "@sinonjs/commons": "^1.8.3", "@sinonjs/fake-timers": "^9.1.2", "@sinonjs/samsam": "^6.1.1", "diff": "^5.0.0", "nise": "^5.1.1", "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" } }, - "slick": { + "node_modules/slick": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz", - "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==" + "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==", + "engines": { + "node": "*" + } }, - "source-map": { + "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } }, - "source-map-support": { + "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { + "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "speech-rule-engine": { + "node_modules/speech-rule-engine": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.0.7.tgz", "integrity": "sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==", - "requires": { + "dependencies": { "commander": "9.2.0", "wicked-good-xpath": "1.3.0", "xmldom-sre": "0.1.31" }, - "dependencies": { - "commander": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", - "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==" - } + "bin": { + "sre": "bin/sre" } }, - "split-on-first": { + "node_modules/speech-rule-engine/node_modules/commander": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" - }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "engines": { + "node": ">=6" } }, - "string_decoder": { + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { + "dependencies": { "safe-buffer": "~5.2.0" } }, - "strip-ansi": { + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strnum": { + "node_modules/strnum": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" }, - "strtok3": { + "node_modules/strtok3": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "requires": { + "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "supports-color": { + "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "tar": { + "node_modules/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "requires": { + "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "tar-stream": { + "node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "requires": { + "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" } }, - "through2": { + "node_modules/through2": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "requires": { + "dependencies": { "readable-stream": "3" } }, - "tmp": { + "node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==" + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "engines": { + "node": ">=14.14" + } }, - "token-types": { + "node_modules/token-types": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", - "requires": { + "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "tr46": { + "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "traverse": { + "node_modules/traverse": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==" + "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "engines": { + "node": "*" + } }, - "tslib": { + "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "type-detect": { + "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "uc.micro": { + "node_modules/uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" }, - "unzipper": { + "node_modules/unzipper": { "version": "0.10.14", "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "requires": { + "dependencies": { "big-integer": "^1.6.17", "binary": "~0.3.0", "bluebird": "~3.4.1", @@ -2875,50 +3939,48 @@ "listenercount": "~1.0.1", "readable-stream": "~2.3.6", "setimmediate": "~1.0.4" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, - "uri-js": { + "node_modules/unzipper/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "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" + } + }, + "node_modules/unzipper/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/unzipper/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "util": { + "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "requires": { + "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", @@ -2926,77 +3988,90 @@ "which-typed-array": "^1.1.2" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "uuid": { + "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } }, - "valid-data-url": { + "node_modules/valid-data-url": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-3.0.1.tgz", - "integrity": "sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==" + "integrity": "sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==", + "engines": { + "node": ">=10" + } }, - "vasync": { + "node_modules/vasync": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/vasync/-/vasync-2.2.1.tgz", "integrity": "sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==", - "requires": { - "verror": "1.10.0" - }, + "engines": [ + "node >=0.6.0" + ], "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - } + "verror": "1.10.0" } }, - "verror": { + "node_modules/vasync/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/vasync/node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", - "requires": { + "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - } + "engines": { + "node": ">=0.6.0" } }, - "web-encoding": { + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/web-encoding": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "requires": { - "@zxing/text-encoding": "0.9.0", + "dependencies": { "util": "^0.12.3" + }, + "optionalDependencies": { + "@zxing/text-encoding": "0.9.0" } }, - "web-resource-inliner": { + "node_modules/web-resource-inliner": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz", "integrity": "sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==", - "requires": { + "dependencies": { "ansi-colors": "^4.1.1", "escape-goat": "^3.0.0", "htmlparser2": "^5.0.0", @@ -3004,133 +4079,162 @@ "node-fetch": "^2.6.0", "valid-data-url": "^3.0.0" }, - "dependencies": { - "domhandler": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", - "requires": { - "domelementtype": "^2.0.1" - } - }, - "htmlparser2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", - "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^3.3.0", - "domutils": "^2.4.2", - "entities": "^2.0.0" - } - } + "engines": { + "node": ">=10.0.0" } }, - "webidl-conversions": { + "node_modules/web-resource-inliner/node_modules/domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dependencies": { + "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/htmlparser2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", + "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0", + "domutils": "^2.4.2", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/fb55/htmlparser2?sponsor=1" + } + }, + "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, - "whatwg-url": { + "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { + "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, - "which-typed-array": { + "node_modules/which-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "requires": { + "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "wicked-good-xpath": { + "node_modules/wicked-good-xpath": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz", "integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==" }, - "wide-align": { + "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { + "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "xml": { + "node_modules/xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==" }, - "xml2js": { + "node_modules/xml2js": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", - "requires": { + "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "xmlbuilder": { + "node_modules/xmlbuilder": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } }, - "xmlchars": { + "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, - "xmldom-sre": { + "node_modules/xmldom-sre": { "version": "0.1.31", "resolved": "https://registry.npmjs.org/xmldom-sre/-/xmldom-sre-0.1.31.tgz", - "integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==" + "integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==", + "engines": { + "node": ">=0.1" + } }, - "yallist": { + "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "zip-stream": { + "node_modules/zip-stream": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "requires": { + "dependencies": { "archiver-utils": "^3.0.4", "compress-commons": "^4.1.2", "readable-stream": "^3.6.0" }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", "dependencies": { - "archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "requires": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - } - } + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" } } } diff --git a/package.json b/package.json index ea5d83fc1..28cf400a1 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "ajv": "^6.12.6", "bcryptjs": "^2.4.3", "bson": "^4.5.2", - "dompurify": "^2.5.6", + "dompurify": "^3.2.4", "es6-promise": "^4.2.4", "escape-string-regexp": "^5.0.0", "fibers": "^5.0.3", From 148b81262d0d143460e881d645fefa6740aae40d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 21 Feb 2025 21:12:28 +0200 Subject: [PATCH 315/356] Updated requirements at docs. Thanks to mueller-ma ! Fixes #5692 --- docs/FAQ/Requirements.md | 9 +---- docs/Platforms/FOSS/Sandstorm/Sandstorm.md | 44 +++++++++++++++++++++- 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/docs/FAQ/Requirements.md b/docs/FAQ/Requirements.md index c060964e2..c929bff5e 100644 --- a/docs/FAQ/Requirements.md +++ b/docs/FAQ/Requirements.md @@ -1,8 +1 @@ -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) +WeKan Requiremens are at https://wekan.github.io/install/ \ No newline at end of file diff --git a/docs/Platforms/FOSS/Sandstorm/Sandstorm.md b/docs/Platforms/FOSS/Sandstorm/Sandstorm.md index f01edb0d3..16da6ef70 100644 --- a/docs/Platforms/FOSS/Sandstorm/Sandstorm.md +++ b/docs/Platforms/FOSS/Sandstorm/Sandstorm.md @@ -1,7 +1,12 @@ +- 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. @@ -13,17 +18,52 @@ DNS records: ``` 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 +} - reverse_proxy 123.123.123.123:80 +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 } ``` -At /opt/sandstorm/sandstorm.conf is domain, http port etc. +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 From 120642f47de656d8f5b5abff278e4c5348ac3250 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 21 Feb 2025 21:22:14 +0200 Subject: [PATCH 316/356] Updated ChangeLog. --- CHANGELOG.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f07aa198b..03d0900be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,27 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming WeKan ® release + +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. + +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: From 666ee8403388f7d5e1a30cf0e53bc46a70bf1c40 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 23 Feb 2025 15:55:20 +0200 Subject: [PATCH 317/356] Updated dependencies. Thanks to developes of dependencies " --- package-lock.json | 4342 +++++++++++++++++---------------------------- package.json | 2 +- 2 files changed, 1620 insertions(+), 2724 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4450b2d64..0cd3d5754 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,72 +1,22 @@ { "name": "wekan", "version": "v7.81.0", - "lockfileVersion": 3, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "version": "v7.81.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.25.0", - "@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": "^3.2.4", - "es6-promise": "^4.2.4", - "escape-string-regexp": "^5.0.0", - "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.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.12", - "minio": "^7.1.3", - "moment": "^2.29.4", - "os": "^0.1.2", - "papaparse": "^5.3.1", - "pretty-ms": "^7.0.1", - "qs": "^6.13.0", - "simpl-schema": "^3.4.6", - "source-map-support": "^0.5.20", - "uuid": "^8.3.2" - }, - "devDependencies": { - "flatted": "^3.3.1", - "sinon": "^13.0.2" - } - }, - "node_modules/@babel/runtime": { + "dependencies": { + "@babel/runtime": { "version": "7.25.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", - "dependencies": { + "requires": { "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@fast-csv/format": { + "@fast-csv/format": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", - "dependencies": { + "requires": { "@types/node": "^14.0.1", "lodash.escaperegexp": "^4.1.2", "lodash.isboolean": "^3.0.3", @@ -75,11 +25,11 @@ "lodash.isnil": "^4.0.0" } }, - "node_modules/@fast-csv/parse": { + "@fast-csv/parse": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", - "dependencies": { + "requires": { "@types/node": "^14.0.1", "lodash.escaperegexp": "^4.1.2", "lodash.groupby": "^4.6.0", @@ -89,11 +39,11 @@ "lodash.uniq": "^4.5.0" } }, - "node_modules/@mapbox/node-pre-gyp": { + "@mapbox/node-pre-gyp": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", - "dependencies": { + "requires": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", "make-dir": "^3.1.0", @@ -103,85 +53,69 @@ "rimraf": "^3.0.2", "semver": "^7.3.5", "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" } }, - "node_modules/@rwap/jquery-ui-touch-punch": { + "@rwap/jquery-ui-touch-punch": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@rwap/jquery-ui-touch-punch/-/jquery-ui-touch-punch-1.0.11.tgz", "integrity": "sha512-GFRfHxnl9uH4v4F7E+rtXYbcsDYSas5fqfmKWVy/dfs+BDfLUqClIOL5MZlroDFoL3T9bCbsFMFXULHSL34ZdA==", - "dependencies": { + "requires": { "jquery-ui": ">=1.8" } }, - "node_modules/@sinonjs/commons": { + "@sinonjs/commons": { "version": "1.8.6", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, - "dependencies": { + "requires": { "type-detect": "4.0.8" } }, - "node_modules/@sinonjs/fake-timers": { + "@sinonjs/fake-timers": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, - "dependencies": { + "requires": { "@sinonjs/commons": "^1.7.0" } }, - "node_modules/@sinonjs/samsam": { + "@sinonjs/samsam": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", "dev": true, - "dependencies": { + "requires": { "@sinonjs/commons": "^1.6.0", "lodash.get": "^4.4.2", "type-detect": "^4.0.8" } }, - "node_modules/@sinonjs/text-encoding": { + "@sinonjs/text-encoding": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, - "node_modules/@tokenizer/token": { + "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, - "node_modules/@types/node": { + "@types/node": { "version": "14.18.63", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" }, - "node_modules/@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==", - "license": "MIT", - "optional": true + "@wekanteam/dragscroll": { + "version": "git+https://github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2", + "from": "git+https://github.com/wekan/dragscroll.git" }, - "node_modules/@wekanteam/dragscroll": { - "version": "0.0.8", - "resolved": "git+ssh://git@github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2", - "integrity": "sha512-fpxmJ0A++PiEEUBi6uqnNChKCRwRaQqOMcwnF4W9EtGzCczd8S7iRjCoLtQWAxpWF3n6Ag4IIqifgUYkBVNBYA==", - "engines": { - "node": "*" - } - }, - "node_modules/@wekanteam/exceljs": { - "version": "4.5.0", - "resolved": "git+ssh://git@github.com/wekan/exceljs.git#e0229907e7a81bc3fe6daf4e42b1fdfbecdcb7cb", - "integrity": "sha512-OpbewmMvAU8582TO0wK0nQ/YmkmgeVKOdknnNM9aKr7pKK54pvSRMyC0qydRSVNFsby5BAKfmveABDjuktqkQg==", - "license": "MIT", - "dependencies": { + "@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", @@ -191,100 +125,84 @@ "tmp": "^0.2.0", "unzipper": "^0.10.11", "uuid": "^8.3.0" - }, - "engines": { - "node": ">=8.3.0" } }, - "node_modules/@wekanteam/html-to-markdown": { + "@wekanteam/html-to-markdown": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@wekanteam/html-to-markdown/-/html-to-markdown-1.0.2.tgz", "integrity": "sha512-PxeGIu/HMjmL84N2Dj5qp4lFlBP4jV/y6WU/JhDiFPx6gfGEWXgDcc9sShTPNvECtToGAA0SCD6T/k50CMHi8Q==" }, - "node_modules/@wekanteam/meteor-globals": { + "@wekanteam/meteor-globals": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@wekanteam/meteor-globals/-/meteor-globals-1.1.4.tgz", "integrity": "sha512-zaq+/F+5/aI46JXXcp3LhcYrM+ZQ0aH99BKuFyP0Ie1ACnYPqHqhUwCwScGiauxmMc9abHduC6DJTbxnJGc2QQ==", - "dependencies": { + "requires": { "semver": "^7.5.4" } }, - "node_modules/@wekanteam/meteor-reactive-cache": { + "@wekanteam/meteor-reactive-cache": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@wekanteam/meteor-reactive-cache/-/meteor-reactive-cache-1.0.6.tgz", "integrity": "sha512-xewS5N2ON5oN1+HWaAZhnSF7oNR/yfcXfSunVxjrCSExu3OzD1JMGK5FTxGYYzN3ShJgWGLSmjw7zL6+gvQxgg==", - "dependencies": { + "requires": { "@wekanteam/meteor-globals": "^1.1.4" } }, - "node_modules/@zxing/text-encoding": { + "@zxing/text-encoding": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", "optional": true }, - "node_modules/abbrev": { + "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, - "node_modules/abstract-logging": { + "abstract-logging": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" }, - "node_modules/agent-base": { + "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { + "requires": { "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" } }, - "node_modules/ajv": { + "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { + "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-colors": { + "ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" }, - "node_modules/ansi-regex": { + "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, - "node_modules/aproba": { + "aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, - "node_modules/archiver": { + "archiver": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "dependencies": { + "requires": { "archiver-utils": "^2.1.0", "async": "^3.2.4", "buffer-crc32": "^0.2.1", @@ -292,16 +210,13 @@ "readdir-glob": "^1.1.2", "tar-stream": "^2.2.0", "zip-stream": "^4.1.0" - }, - "engines": { - "node": ">= 10" } }, - "node_modules/archiver-utils": { + "archiver-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dependencies": { + "requires": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", @@ -313,281 +228,212 @@ "normalize-path": "^3.0.0", "readable-stream": "^2.0.0" }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { - "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" + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/archiver-utils/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/are-we-there-yet": { + "are-we-there-yet": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "deprecated": "This package is no longer supported.", - "dependencies": { + "requires": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/argparse": { + "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "node_modules/asn1": { + "asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { + "requires": { "safer-buffer": "~2.1.0" } }, - "node_modules/assert-plus": { + "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" }, - "node_modules/async": { + "async": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" }, - "node_modules/available-typed-arrays": { + "available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, - "node_modules/backoff": { + "backoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", - "dependencies": { + "requires": { "precond": "0.2" - }, - "engines": { - "node": ">= 0.6" } }, - "node_modules/balanced-match": { + "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/base64-js": { + "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, - "node_modules/bcryptjs": { + "bcryptjs": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" }, - "node_modules/big-integer": { + "big-integer": { "version": "1.6.52", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", - "engines": { - "node": ">=0.6" - } + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==" }, - "node_modules/binary": { + "binary": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "dependencies": { + "requires": { "buffers": "~0.1.1", "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" } }, - "node_modules/bl": { + "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { + "requires": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, - "node_modules/block-stream2": { + "block-stream2": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz", "integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==", - "dependencies": { + "requires": { "readable-stream": "^3.4.0" } }, - "node_modules/bluebird": { + "bluebird": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" }, - "node_modules/boolbase": { + "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "node_modules/brace-expansion": { + "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { + "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "node_modules/browser-or-node": { + "browser-or-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.1.1.tgz", "integrity": "sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==" }, - "node_modules/bson": { + "bson": { "version": "4.7.2", "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", - "dependencies": { + "requires": { "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/buffer": { + "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { + "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, - "node_modules/buffer-crc32": { + "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "engines": { - "node": "*" - } + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" }, - "node_modules/buffer-from": { + "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "node_modules/buffer-indexof-polyfill": { + "buffer-indexof-polyfill": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "engines": { - "node": ">=0.10" - } + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==" }, - "node_modules/buffers": { + "buffers": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", - "engines": { - "node": ">=0.2.0" - } + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==" }, - "node_modules/call-bind": { + "call-bind": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dependencies": { + "requires": { "function-bind": "^1.1.2", "get-intrinsic": "^1.2.1", "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/chainsaw": { + "chainsaw": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "dependencies": { + "requires": { "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" } }, - "node_modules/cheerio": { + "cheerio": { "version": "1.0.0-rc.10", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", - "dependencies": { + "requires": { "cheerio-select": "^1.5.0", "dom-serializer": "^1.3.2", "domhandler": "^4.2.0", @@ -595,595 +441,429 @@ "parse5": "^6.0.1", "parse5-htmlparser2-tree-adapter": "^6.0.1", "tslib": "^2.2.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "node_modules/cheerio-select": { + "cheerio-select": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz", "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", - "dependencies": { + "requires": { "css-select": "^4.3.0", "css-what": "^6.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.3.1", "domutils": "^2.8.0" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" } }, - "node_modules/chownr": { + "chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, - "node_modules/clone": { + "clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "engines": { - "node": ">=0.8" - } + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" }, - "node_modules/color-support": { + "color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" }, - "node_modules/commander": { + "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "engines": { - "node": ">= 6" - } + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" }, - "node_modules/compress-commons": { + "compress-commons": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "dependencies": { + "requires": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.2", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" } }, - "node_modules/concat-map": { + "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, - "node_modules/console-control-strings": { + "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, - "node_modules/core-util-is": { + "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "node_modules/crc-32": { + "crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" }, - "node_modules/crc32-stream": { + "crc32-stream": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "dependencies": { + "requires": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" } }, - "node_modules/css-select": { + "css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { + "requires": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" } }, - "node_modules/css-what": { + "css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" }, - "node_modules/dayjs": { + "dayjs": { "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" }, - "node_modules/debug": { + "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { + "requires": { "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } } }, - "node_modules/decode-uri-component": { + "decode-uri-component": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "engines": { - "node": ">=0.10" - } + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" }, - "node_modules/define-data-property": { + "define-data-property": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dependencies": { + "requires": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/delegates": { + "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, - "node_modules/detect-libc": { + "detect-libc": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", - "engines": { - "node": ">=8" - } + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" }, - "node_modules/diff": { + "diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } + "dev": true }, - "node_modules/dom-serializer": { + "dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { + "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/domelementtype": { + "domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" }, - "node_modules/domhandler": { + "domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { + "requires": { "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/dompurify": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", - "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } + "dompurify": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.6.tgz", + "integrity": "sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ==" }, - "node_modules/domutils": { + "domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { + "requires": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/duplexer2": { + "duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dependencies": { + "requires": { "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + }, "dependencies": { - "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" + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/emoji-regex": { + "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "node_modules/end-of-stream": { + "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { + "requires": { "once": "^1.4.0" } }, - "node_modules/entities": { + "entities": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" }, - "node_modules/es-define-property": { + "es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { + "requires": { "get-intrinsic": "^1.2.4" }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-define-property/node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + } } }, - "node_modules/es-errors": { + "es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" }, - "node_modules/es6-promise": { + "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" }, - "node_modules/escape-goat": { + "escape-goat": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz", - "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==" }, - "node_modules/escape-string-regexp": { + "escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" }, - "node_modules/esm": { + "esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" }, - "node_modules/extsprintf": { + "extsprintf": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", - "engines": [ - "node >=0.6.0" - ] + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==" }, - "node_modules/fast-csv": { + "fast-csv": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", - "dependencies": { + "requires": { "@fast-csv/format": "4.3.5", "@fast-csv/parse": "4.3.6" - }, - "engines": { - "node": ">=10.0.0" } }, - "node_modules/fast-deep-equal": { + "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "node_modules/fast-json-stable-stringify": { + "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "node_modules/fast-xml-parser": { + "fast-xml-parser": { "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==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - }, - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - ], - "dependencies": { + "requires": { "strnum": "^1.0.5" - }, - "bin": { - "fxparser": "src/cli/cli.js" } }, - "node_modules/fibers": { + "fibers": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.3.tgz", "integrity": "sha512-/qYTSoZydQkM21qZpGLDLuCq8c+B8KhuCQ1kLPvnRNhxhVbvrpmH9l2+Lblf5neDuEsY4bfT7LeO553TXQDvJw==", - "hasInstallScript": true, - "dependencies": { + "requires": { "detect-libc": "^1.0.3" }, - "engines": { - "node": ">=10.0.0" + "dependencies": { + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==" + } } }, - "node_modules/fibers/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/file-type": { + "file-type": { "version": "16.5.4", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", - "dependencies": { + "requires": { "readable-web-to-node-stream": "^3.0.0", "strtok3": "^6.2.4", "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, - "node_modules/filesize": { + "filesize": { "version": "8.0.7", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.0" - } + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" }, - "node_modules/filter-obj": { + "filter-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==" }, - "node_modules/flatted": { + "flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "node_modules/for-each": { + "for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { + "requires": { "is-callable": "^1.1.3" } }, - "node_modules/fs-constants": { + "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, - "node_modules/fs-minipass": { + "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { + "requires": { "minipass": "^3.0.0" }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } } }, - "node_modules/fs.realpath": { + "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "node_modules/fstream": { + "fstream": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "deprecated": "This package is no longer supported.", - "dependencies": { + "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", "mkdirp": ">=0.5 0", "rimraf": "2" }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fstream/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } } }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/function-bind": { + "function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, - "node_modules/gauge": { + "gauge": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "deprecated": "This package is no longer supported.", - "dependencies": { + "requires": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", "console-control-strings": "^1.0.0", @@ -1193,444 +873,323 @@ "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" } }, - "node_modules/get-intrinsic": { + "get-intrinsic": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dependencies": { + "requires": { "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { + "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dependencies": { + "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/gopd": { + "gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { + "requires": { "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { + "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "node_modules/has-flag": { + "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/has-property-descriptors": { + "has-property-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dependencies": { + "requires": { "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { + "has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" }, - "node_modules/has-symbols": { + "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, - "node_modules/has-tostringtag": { + "has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { + "requires": { "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { + "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, - "node_modules/hasown": { + "hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dependencies": { + "requires": { "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/htmlparser2": { + "htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { + "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", "domutils": "^2.5.2", "entities": "^2.0.0" } }, - "node_modules/https-proxy-agent": { + "https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { + "requires": { "agent-base": "6", "debug": "4" - }, - "engines": { - "node": ">= 6" } }, - "node_modules/i18next": { + "i18next": { "version": "21.10.0", "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz", "integrity": "sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], - "dependencies": { + "requires": { "@babel/runtime": "^7.17.2" } }, - "node_modules/i18next-sprintf-postprocessor": { + "i18next-sprintf-postprocessor": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/i18next-sprintf-postprocessor/-/i18next-sprintf-postprocessor-0.2.2.tgz", "integrity": "sha512-c/IT9xuMyTfJ/3Ds+DPtb0vYVuykbMyGChZ5OGZTzFDV7Kgst1nrNOwdbZ+PkcA5kLXEE3U0RKkNbabj07261w==" }, - "node_modules/ieee754": { + "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, - "node_modules/immediate": { + "immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, - "node_modules/inflight": { + "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dependencies": { + "requires": { "once": "^1.3.0", "wrappy": "1" } }, - "node_modules/inherits": { + "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/ipaddr.js": { + "ipaddr.js": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "engines": { - "node": ">= 10" - } + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==" }, - "node_modules/is-arguments": { + "is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { + "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-callable": { + "is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" }, - "node_modules/is-fullwidth-code-point": { + "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, - "node_modules/is-generator-function": { + "is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { + "requires": { "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { + "is-typed-array": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dependencies": { + "requires": { "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/isarray": { + "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "node_modules/jquery": { + "jquery": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, - "node_modules/jquery-ui": { + "jquery-ui": { "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==", - "dependencies": { + "requires": { "jquery": ">=1.8.0 <4.0.0" } }, - "node_modules/json-schema-traverse": { + "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "node_modules/json-stream": { + "json-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz", "integrity": "sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==" }, - "node_modules/jszip": { + "jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "dependencies": { + "requires": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "setimmediate": "^1.0.5" - } - }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + }, "dependencies": { - "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" + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/jszip/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/juice": { + "juice": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/juice/-/juice-8.1.0.tgz", "integrity": "sha512-FLzurJrx5Iv1e7CfBSZH68dC04EEvXvvVvPYB7Vx1WAuhCp1ZPIMtqxc+WTWxVkpTIC2Ach/GAv0rQbtGf6YMA==", - "dependencies": { + "requires": { "cheerio": "1.0.0-rc.10", "commander": "^6.1.0", "mensch": "^0.3.4", "slick": "^1.12.2", "web-resource-inliner": "^6.0.1" - }, - "bin": { - "juice": "bin/juice" - }, - "engines": { - "node": ">=10.0.0" } }, - "node_modules/just-extend": { + "just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, - "node_modules/lazystream": { + "lazystream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dependencies": { + "requires": { "readable-stream": "^2.0.5" }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { - "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" + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/ldap-filter": { + "ldap-filter": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.3.3.tgz", "integrity": "sha512-/tFkx5WIn4HuO+6w9lsfxq4FN3O+fDZeO9Mek8dCD8rTUpqzRa766BOBO7BcGkn3X86m5+cBm1/2S/Shzz7gMg==", - "dependencies": { + "requires": { "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.8" } }, - "node_modules/ldapjs": { + "ldapjs": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-2.3.3.tgz", "integrity": "sha512-75QiiLJV/PQqtpH+HGls44dXweviFwQ6SiIK27EqzKQ5jU/7UFrl2E5nLdQ3IYRBzJ/AVFJI66u0MZ0uofKYwg==", - "deprecated": "This package has been decomissioned. See https://github.com/ldapjs/node-ldapjs/blob/8ffd0bc9c149088a10ec4c1ec6a18450f76ad05d/README.md", - "dependencies": { + "requires": { "abstract-logging": "^2.0.0", "asn1": "^0.2.4", "assert-plus": "^1.0.0", @@ -1639,228 +1198,185 @@ "once": "^1.4.0", "vasync": "^2.2.0", "verror": "^1.8.1" - }, - "engines": { - "node": ">=10.13.0" } }, - "node_modules/lie": { + "lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dependencies": { + "requires": { "immediate": "~3.0.5" } }, - "node_modules/linkify-it": { + "linkify-it": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dependencies": { + "requires": { "uc.micro": "^1.0.1" } }, - "node_modules/listenercount": { + "listenercount": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" }, - "node_modules/lodash": { + "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.defaults": { + "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" }, - "node_modules/lodash.difference": { + "lodash.difference": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" }, - "node_modules/lodash.escaperegexp": { + "lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" }, - "node_modules/lodash.flatten": { + "lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" }, - "node_modules/lodash.get": { + "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", "dev": true }, - "node_modules/lodash.groupby": { + "lodash.groupby": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" }, - "node_modules/lodash.isboolean": { + "lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" }, - "node_modules/lodash.isequal": { + "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead." + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" }, - "node_modules/lodash.isfunction": { + "lodash.isfunction": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" }, - "node_modules/lodash.isnil": { + "lodash.isnil": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" }, - "node_modules/lodash.isplainobject": { + "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" }, - "node_modules/lodash.isundefined": { + "lodash.isundefined": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==" }, - "node_modules/lodash.union": { + "lodash.union": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" }, - "node_modules/lodash.uniq": { + "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, - "node_modules/lru-cache": { + "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { + "requires": { "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/make-dir": { + "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { + "requires": { "semver": "^6.0.0" }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + } } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/markdown-it": { + "markdown-it": { "version": "12.3.2", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dependencies": { + "requires": { "argparse": "^2.0.1", "entities": "~2.1.0", "linkify-it": "^3.0.1", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" } }, - "node_modules/markdown-it-emoji": { + "markdown-it-emoji": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz", "integrity": "sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==" }, - "node_modules/markdown-it-mathjax3": { + "markdown-it-mathjax3": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/markdown-it-mathjax3/-/markdown-it-mathjax3-4.3.2.tgz", "integrity": "sha512-TX3GW5NjmupgFtMJGRauioMbbkGsOXAAt1DZ/rzzYmTHqzkO1rNAdiMD4NiruurToPApn2kYy76x02QN26qr2w==", - "dependencies": { + "requires": { "juice": "^8.0.0", "mathjax-full": "^3.2.0" } }, - "node_modules/mathjax-full": { + "mathjax-full": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz", "integrity": "sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==", - "dependencies": { + "requires": { "esm": "^3.2.25", "mhchemparser": "^4.1.0", "mj-context-menu": "^0.6.1", "speech-rule-engine": "^4.0.6" } }, - "node_modules/mdurl": { + "mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" }, - "node_modules/mensch": { + "mensch": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz", "integrity": "sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==" }, - "node_modules/meteor-accounts-t9n": { + "meteor-accounts-t9n": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/meteor-accounts-t9n/-/meteor-accounts-t9n-2.6.0.tgz", "integrity": "sha512-SBbbYWvFYvsxHVL+q6ZB8lT3rp2LSvfALD2V52H+MGH2IgJsevy0VtXRkRG0EsUewwOaDTIKBn9DlD8HQ3GSwg==" }, - "node_modules/meteor-node-stubs": { + "meteor-node-stubs": { "version": "1.2.12", "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.12.tgz", "integrity": "sha512-mzp3KI2aGNDhFlCVXPd0pfMr2z9A5vl1AqEgV13/z7AgKwcbd2X+ymE6tpSAMkrrQb40PU9PC2B59bCb6XkAaw==", - "bundleDependencies": [ - "@meteorjs/crypto-browserify", - "assert", - "browserify-zlib", - "buffer", - "console-browserify", - "constants-browserify", - "domain-browser", - "events", - "https-browserify", - "os-browserify", - "path-browserify", - "process", - "punycode", - "querystring-es3", - "readable-stream", - "stream-browserify", - "stream-http", - "string_decoder", - "timers-browserify", - "tty-browserify", - "url", - "util", - "vm-browserify" - ], - "dependencies": { + "requires": { "@meteorjs/crypto-browserify": "^3.12.1", "assert": "^2.1.0", "browserify-zlib": "^0.2.0", @@ -1885,1181 +1401,825 @@ "url": "^0.11.4", "util": "^0.12.5", "vm-browserify": "^1.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/crypto-browserify": { - "version": "3.12.1", - "integrity": "sha512-ku23zGjNb1XJXPSPlt4QCPetc4s/cPrSahhSF11mFeQff5wBuu7QVVn/MusdHh+l3aKl6L1XMLV+OYLXvNDQ6Q==", - "inBundle": true, - "dependencies": { - "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" }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base": { - "version": "3.0.4", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", - "inBundle": true, "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meteor-node-stubs/node_modules/asn1.js": { - "version": "4.10.1", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "inBundle": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/assert": { - "version": "2.1.0", - "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", - "inBundle": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, - "node_modules/meteor-node-stubs/node_modules/available-typed-arrays": { - "version": "1.0.5", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/base64-js": { - "version": "1.5.1", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" + "@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" + } + } + } }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "asn1.js": { + "version": "4.10.1", + "bundled": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } }, - { - "type": "consulting", - "url": "https://feross.org/support" + "assert": { + "version": "2.1.0", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "bundled": true + }, + "base64-js": { + "version": "1.5.1", + "bundled": true + }, + "bn.js": { + "version": "5.2.0", + "bundled": true + }, + "brorand": { + "version": "1.1.0", + "bundled": true + }, + "browserify-aes": { + "version": "1.2.0", + "bundled": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "bundled": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "bundled": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "bundled": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.3", + "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", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "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 + } + } + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "bundled": true, + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "5.7.1", + "bundled": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-xor": { + "version": "1.0.3", + "bundled": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "bundled": true + }, + "call-bind": { + "version": "1.0.7", + "bundled": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + } + }, + "cipher-base": { + "version": "1.0.4", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "console-browserify": { + "version": "1.2.0", + "bundled": true + }, + "constants-browserify": { + "version": "1.0.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.3", + "bundled": true + }, + "create-ecdh": { + "version": "4.0.4", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "bundled": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "bundled": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "define-data-property": { + "version": "1.1.4", + "bundled": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "define-properties": { + "version": "1.2.1", + "bundled": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "des.js": { + "version": "1.0.1", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "domain-browser": { + "version": "4.23.0", + "bundled": true + }, + "elliptic": { + "version": "6.6.0", + "bundled": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "es-define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "bundled": true + }, + "events": { + "version": "3.3.0", + "bundled": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "bundled": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "for-each": { + "version": "0.3.3", + "bundled": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "function-bind": { + "version": "1.1.2", + "bundled": true + }, + "get-intrinsic": { + "version": "1.2.4", + "bundled": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "bundled": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "has-property-descriptors": { + "version": "1.0.2", + "bundled": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.1", + "bundled": true + }, + "has-symbols": { + "version": "1.0.3", + "bundled": true + }, + "has-tostringtag": { + "version": "1.0.0", + "bundled": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hash-base": { + "version": "3.1.0", + "bundled": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hasown": { + "version": "2.0.0", + "bundled": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "bundled": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "https-browserify": { + "version": "1.0.0", + "bundled": true + }, + "ieee754": { + "version": "1.2.1", + "bundled": true + }, + "inherits": { + "version": "2.0.4", + "bundled": true + }, + "is-arguments": { + "version": "1.1.1", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "bundled": true + }, + "is-generator-function": { + "version": "1.0.10", + "bundled": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-nan": { + "version": "1.3.2", + "bundled": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "is-typed-array": { + "version": "1.1.12", + "bundled": true, + "requires": { + "which-typed-array": "^1.1.11" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "md5.js": { + "version": "1.3.5", + "bundled": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "bundled": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "bundled": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "bundled": true + }, + "object-inspect": { + "version": "1.13.2", + "bundled": true + }, + "object-is": { + "version": "1.1.5", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "bundled": true + }, + "object.assign": { + "version": "4.1.4", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "os-browserify": { + "version": "0.3.0", + "bundled": true + }, + "pako": { + "version": "1.0.11", + "bundled": true + }, + "parse-asn1": { + "version": "5.1.7", + "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" + } + } + } + }, + "path-browserify": { + "version": "1.0.1", + "bundled": true + }, + "pbkdf2": { + "version": "3.1.2", + "bundled": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "process": { + "version": "0.11.10", + "bundled": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true + }, + "public-encrypt": { + "version": "4.0.3", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "punycode": { + "version": "1.4.1", + "bundled": true + }, + "qs": { + "version": "6.13.0", + "bundled": true, + "requires": { + "side-channel": "^1.0.6" + } + }, + "querystring-es3": { + "version": "0.2.1", + "bundled": true + }, + "randombytes": { + "version": "2.1.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "bundled": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "3.6.2", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "ripemd160": { + "version": "2.0.2", + "bundled": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "bundled": true + }, + "set-function-length": { + "version": "1.2.2", + "bundled": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "setimmediate": { + "version": "1.0.5", + "bundled": true + }, + "sha.js": { + "version": "2.4.11", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "side-channel": { + "version": "1.0.6", + "bundled": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + } + }, + "stream-browserify": { + "version": "3.0.0", + "bundled": true, + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "stream-http": { + "version": "3.2.0", + "bundled": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "timers-browserify": { + "version": "2.0.12", + "bundled": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tty-browserify": { + "version": "0.0.1", + "bundled": true + }, + "url": { + "version": "0.11.4", + "bundled": true, + "requires": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + } + }, + "util": { + "version": "0.12.5", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "vm-browserify": { + "version": "1.1.2", + "bundled": true + }, + "which-typed-array": { + "version": "1.1.13", + "bundled": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "xtend": { + "version": "4.0.2", + "bundled": true } - ], - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/bn.js": { - "version": "5.2.0", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/brorand": { - "version": "1.1.0", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/browserify-aes": { - "version": "1.2.0", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "inBundle": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-cipher": { - "version": "1.0.1", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "inBundle": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-des": { - "version": "1.0.2", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "inBundle": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-rsa": { - "version": "4.1.0", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "inBundle": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign": { - "version": "4.2.3", - "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", - "inBundle": true, - "dependencies": { - "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", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.1", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/hash-base": { - "version": "3.0.4", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/readable-stream": { - "version": "2.3.8", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "inBundle": true, - "dependencies": { - "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" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/string_decoder": { - "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "inBundle": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/browserify-zlib": { - "version": "0.2.0", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "inBundle": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/meteor-node-stubs/node_modules/buffer": { - "version": "5.7.1", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/meteor-node-stubs/node_modules/buffer-xor": { - "version": "1.0.3", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/builtin-status-codes": { - "version": "3.0.0", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/call-bind": { - "version": "1.0.7", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "inBundle": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/cipher-base": { - "version": "1.0.4", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/console-browserify": { - "version": "1.2.0", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/constants-browserify": { - "version": "1.0.0", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/core-util-is": { - "version": "1.0.3", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/create-ecdh": { - "version": "4.0.4", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "inBundle": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/meteor-node-stubs/node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/create-hash": { - "version": "1.2.0", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "inBundle": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/create-hmac": { - "version": "1.1.7", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "inBundle": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/meteor-node-stubs/node_modules/define-data-property": { - "version": "1.1.4", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "inBundle": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/define-properties": { - "version": "1.2.1", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "inBundle": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/des.js": { - "version": "1.0.1", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/diffie-hellman": { - "version": "5.0.3", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "inBundle": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/domain-browser": { - "version": "4.23.0", - "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", - "inBundle": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/meteor-node-stubs/node_modules/elliptic": { - "version": "6.6.0", - "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", - "inBundle": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/es-define-property": { - "version": "1.0.0", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "inBundle": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/es-errors": { - "version": "1.3.0", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/events": { - "version": "3.3.0", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "inBundle": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/meteor-node-stubs/node_modules/evp_bytestokey": { - "version": "1.0.3", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "inBundle": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/for-each": { - "version": "0.3.3", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "inBundle": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/meteor-node-stubs/node_modules/function-bind": { - "version": "1.1.2", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "inBundle": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/get-intrinsic": { - "version": "1.2.4", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "inBundle": true, - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/gopd": { - "version": "1.0.1", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "inBundle": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/has-property-descriptors": { - "version": "1.0.2", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "inBundle": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/has-proto": { - "version": "1.0.1", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/has-symbols": { - "version": "1.0.3", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/has-tostringtag": { - "version": "1.0.0", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "inBundle": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/hash-base": { - "version": "3.1.0", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meteor-node-stubs/node_modules/hash.js": { - "version": "1.1.7", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/hasown": { - "version": "2.0.0", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "inBundle": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/hmac-drbg": { - "version": "1.0.1", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "inBundle": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/https-browserify": { - "version": "1.0.0", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/ieee754": { - "version": "1.2.1", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/inherits": { - "version": "2.0.4", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/is-arguments": { - "version": "1.1.1", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "inBundle": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-callable": { - "version": "1.2.7", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-generator-function": { - "version": "1.0.10", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "inBundle": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-nan": { - "version": "1.3.2", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "inBundle": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-typed-array": { - "version": "1.1.12", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "inBundle": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/isarray": { - "version": "1.0.0", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/md5.js": { - "version": "1.3.5", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "inBundle": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/miller-rabin": { - "version": "4.0.1", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "inBundle": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/meteor-node-stubs/node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/minimalistic-assert": { - "version": "1.0.1", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/object-inspect": { - "version": "1.13.2", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/object-is": { - "version": "1.1.5", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "inBundle": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/object-keys": { - "version": "1.1.1", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/object.assign": { - "version": "4.1.4", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "inBundle": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/os-browserify": { - "version": "0.3.0", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/pako": { - "version": "1.0.11", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/parse-asn1": { - "version": "5.1.7", - "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", - "inBundle": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/meteor-node-stubs/node_modules/parse-asn1/node_modules/hash-base": { - "version": "3.0.4", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meteor-node-stubs/node_modules/path-browserify": { - "version": "1.0.1", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/pbkdf2": { - "version": "3.1.2", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "inBundle": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/meteor-node-stubs/node_modules/process": { - "version": "0.11.10", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "inBundle": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/process-nextick-args": { - "version": "2.0.1", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/public-encrypt": { - "version": "4.0.3", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "inBundle": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/punycode": { - "version": "1.4.1", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/qs": { - "version": "6.13.0", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "inBundle": true, - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/querystring-es3": { - "version": "0.2.1", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "inBundle": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/meteor-node-stubs/node_modules/randombytes": { - "version": "2.1.0", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "inBundle": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/randomfill": { - "version": "1.0.4", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "inBundle": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/readable-stream": { - "version": "3.6.2", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/meteor-node-stubs/node_modules/ripemd160": { - "version": "2.0.2", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "inBundle": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/safe-buffer": { - "version": "5.2.1", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/set-function-length": { - "version": "1.2.2", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "inBundle": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/setimmediate": { - "version": "1.0.5", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/sha.js": { - "version": "2.4.11", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/meteor-node-stubs/node_modules/side-channel": { - "version": "1.0.6", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "inBundle": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/stream-browserify": { - "version": "3.0.0", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "inBundle": true, - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/stream-http": { - "version": "3.2.0", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "inBundle": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/string_decoder": { - "version": "1.3.0", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "inBundle": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/timers-browserify": { - "version": "2.0.12", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "inBundle": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/tty-browserify": { - "version": "0.0.1", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/url": { - "version": "0.11.4", - "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", - "inBundle": true, - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.12.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/util": { - "version": "0.12.5", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/util-deprecate": { - "version": "1.0.2", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/vm-browserify": { - "version": "1.1.2", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/which-typed-array": { - "version": "1.1.13", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "inBundle": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/xtend": { - "version": "4.0.2", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "inBundle": true, - "engines": { - "node": ">=0.4" } }, - "node_modules/mhchemparser": { + "mhchemparser": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz", "integrity": "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==" }, - "node_modules/mime": { + "mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" }, - "node_modules/mime-db": { + "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, - "node_modules/mime-types": { + "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { + "requires": { "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" } }, - "node_modules/minimatch": { + "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { + "requires": { "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" } }, - "node_modules/minimist": { + "minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, - "node_modules/minio": { + "minio": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/minio/-/minio-7.1.3.tgz", "integrity": "sha512-xPrLjWkTT5E7H7VnzOjF//xBp9I40jYB4aWhb2xTFopXXfw+Wo82DDWngdUju7Doy3Wk7R8C4LAgwhLHHnf0wA==", - "dependencies": { + "requires": { "async": "^3.2.4", "block-stream2": "^2.1.0", "browser-or-node": "^2.1.1", @@ -3074,861 +2234,637 @@ "web-encoding": "^1.1.5", "xml": "^1.0.1", "xml2js": "^0.5.0" - }, - "engines": { - "node": "^16 || ^18 || >=20" } }, - "node_modules/minipass": { + "minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "engines": { - "node": ">=8" - } + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" }, - "node_modules/minizlib": { + "minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { + "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } } }, - "node_modules/mj-context-menu": { + "mj-context-menu": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz", "integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==" }, - "node_modules/mkdirp": { + "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, - "node_modules/moment": { + "moment": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "engines": { - "node": "*" - } + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" }, - "node_modules/mongo-object": { + "mongo-object": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mongo-object/-/mongo-object-3.0.1.tgz", - "integrity": "sha512-EbiwWHvKOF9xhIzuwaqknwPISdkHMipjMs6DiJFicupgBBLEhUs0OOro9MuPkFogB17DZlsV4KJhhxfqZ7ZRMQ==", - "engines": { - "node": ">=14.16", - "npm": ">=8" - } + "integrity": "sha512-EbiwWHvKOF9xhIzuwaqknwPISdkHMipjMs6DiJFicupgBBLEhUs0OOro9MuPkFogB17DZlsV4KJhhxfqZ7ZRMQ==" }, - "node_modules/ms": { + "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/nise": { + "nise": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", "dev": true, - "dependencies": { + "requires": { "@sinonjs/commons": "^2.0.0", "@sinonjs/fake-timers": "^10.0.2", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" - } - }, - "node_modules/nise/node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/nise/node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/nise/node_modules/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==", - "dev": true - }, - "node_modules/nise/node_modules/path-to-regexp": { - "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, - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true + "dependencies": { + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + } + } + }, + "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==", + "dev": true + }, + "path-to-regexp": { + "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" + } } } }, - "node_modules/nopt": { + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dependencies": { + "requires": { "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" } }, - "node_modules/normalize-path": { + "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, - "node_modules/npmlog": { + "npmlog": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "deprecated": "This package is no longer supported.", - "dependencies": { + "requires": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", "gauge": "^3.0.0", "set-blocking": "^2.0.0" } }, - "node_modules/nth-check": { + "nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dependencies": { + "requires": { "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/object-assign": { + "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, - "node_modules/object-inspect": { + "object-inspect": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" }, - "node_modules/once": { + "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { + "requires": { "wrappy": "1" } }, - "node_modules/os": { + "os": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" }, - "node_modules/pako": { + "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, - "node_modules/papaparse": { + "papaparse": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz", "integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw==" }, - "node_modules/parse-ms": { + "parse-ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==" }, - "node_modules/parse5": { + "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" }, - "node_modules/parse5-htmlparser2-tree-adapter": { + "parse5-htmlparser2-tree-adapter": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { + "requires": { "parse5": "^6.0.1" } }, - "node_modules/path-is-absolute": { + "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, - "node_modules/peek-readable": { + "peek-readable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" }, - "node_modules/precond": { + "precond": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", - "engines": { - "node": ">= 0.6" - } + "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==" }, - "node_modules/pretty-ms": { + "pretty-ms": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "dependencies": { + "requires": { "parse-ms": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/process-nextick-args": { + "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/punycode": { + "punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" }, - "node_modules/qs": { + "qs": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dependencies": { + "requires": { "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/query-string": { + "query-string": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "dependencies": { + "requires": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/readable-stream": { + "readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { + "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" } }, - "node_modules/readable-web-to-node-stream": { + "readable-web-to-node-stream": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dependencies": { + "requires": { "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/readdir-glob": { + "readdir-glob": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dependencies": { + "requires": { "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" }, - "engines": { - "node": ">=10" + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, - "node_modules/regenerator-runtime": { + "regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, - "node_modules/rimraf": { + "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dependencies": { + "requires": { "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/safe-buffer": { + "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "node_modules/safer-buffer": { + "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/sax": { + "sax": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, - "node_modules/saxes": { + "saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dependencies": { + "requires": { "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/semver": { + "semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { + "requires": { "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" } }, - "node_modules/set-blocking": { + "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, - "node_modules/set-function-length": { + "set-function-length": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dependencies": { + "requires": { "define-data-property": "^1.1.1", "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/setimmediate": { + "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, - "node_modules/side-channel": { + "side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dependencies": { + "requires": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel/node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + } + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "requires": { + "es-define-property": "^1.0.0" + } + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + } } }, - "node_modules/side-channel/node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel/node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel/node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel/node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/signal-exit": { + "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, - "node_modules/simpl-schema": { + "simpl-schema": { "version": "3.4.6", "resolved": "https://registry.npmjs.org/simpl-schema/-/simpl-schema-3.4.6.tgz", "integrity": "sha512-xgShTrNzktC1TTgizSjyDHrxs0bmZa1b9sso54cL8xwO2OloVhtHjfO73/dAK9OFzUIWCBTpKMpD12JPTgVimA==", - "dependencies": { + "requires": { "clone": "^2.1.2", "mongo-object": "^3.0.1" - }, - "engines": { - "node": ">=14.16", - "npm": ">=8" } }, - "node_modules/sinon": { + "sinon": { "version": "13.0.2", "resolved": "https://registry.npmjs.org/sinon/-/sinon-13.0.2.tgz", "integrity": "sha512-KvOrztAVqzSJWMDoxM4vM+GPys1df2VBoXm+YciyB/OLMamfS3VXh3oGh5WtrAGSzrgczNWFFY22oKb7Fi5eeA==", - "deprecated": "16.1.1", "dev": true, - "dependencies": { + "requires": { "@sinonjs/commons": "^1.8.3", "@sinonjs/fake-timers": "^9.1.2", "@sinonjs/samsam": "^6.1.1", "diff": "^5.0.0", "nise": "^5.1.1", "supports-color": "^7.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" } }, - "node_modules/slick": { + "slick": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz", - "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==", - "engines": { - "node": "*" - } + "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==" }, - "node_modules/source-map": { + "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, - "node_modules/source-map-support": { + "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { + "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "node_modules/speech-rule-engine": { + "speech-rule-engine": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.0.7.tgz", "integrity": "sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==", - "dependencies": { + "requires": { "commander": "9.2.0", "wicked-good-xpath": "1.3.0", "xmldom-sre": "0.1.31" }, - "bin": { - "sre": "bin/sre" + "dependencies": { + "commander": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==" + } } }, - "node_modules/speech-rule-engine/node_modules/commander": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", - "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/split-on-first": { + "split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" }, - "node_modules/strict-uri-encode": { + "strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "engines": { - "node": ">=4" - } + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { + "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { + "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/strip-ansi": { + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { + "requires": { "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/strnum": { + "strnum": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" }, - "node_modules/strtok3": { + "strtok3": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "dependencies": { + "requires": { "@tokenizer/token": "^0.3.0", "peek-readable": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/supports-color": { + "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "dependencies": { + "requires": { "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" } }, - "node_modules/tar": { + "tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dependencies": { + "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/tar-stream": { + "tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { + "requires": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" } }, - "node_modules/through2": { + "through2": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dependencies": { + "requires": { "readable-stream": "3" } }, - "node_modules/tmp": { + "tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "engines": { - "node": ">=14.14" - } + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==" }, - "node_modules/token-types": { + "token-types": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", - "dependencies": { + "requires": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/tr46": { + "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "node_modules/traverse": { + "traverse": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "engines": { - "node": "*" - } + "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==" }, - "node_modules/tslib": { + "tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "node_modules/type-detect": { + "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } + "dev": true }, - "node_modules/uc.micro": { + "uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" }, - "node_modules/unzipper": { + "unzipper": { "version": "0.10.14", "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "dependencies": { + "requires": { "big-integer": "^1.6.17", "binary": "~0.3.0", "bluebird": "~3.4.1", @@ -3939,48 +2875,50 @@ "listenercount": "~1.0.1", "readable-stream": "~2.3.6", "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + }, "dependencies": { - "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" + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/unzipper/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/unzipper/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/uri-js": { + "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { + "requires": { "punycode": "^2.1.0" } }, - "node_modules/util": { + "util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dependencies": { + "requires": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", @@ -3988,90 +2926,77 @@ "which-typed-array": "^1.1.2" } }, - "node_modules/util-deprecate": { + "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "node_modules/uuid": { + "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, - "node_modules/valid-data-url": { + "valid-data-url": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-3.0.1.tgz", - "integrity": "sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==", - "engines": { - "node": ">=10" - } + "integrity": "sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==" }, - "node_modules/vasync": { + "vasync": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/vasync/-/vasync-2.2.1.tgz", "integrity": "sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { + "requires": { "verror": "1.10.0" - } - }, - "node_modules/vasync/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "node_modules/vasync/node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], + }, "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + } } }, - "node_modules/verror": { + "verror": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", - "dependencies": { + "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" }, - "engines": { - "node": ">=0.6.0" + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + } } }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "node_modules/web-encoding": { + "web-encoding": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "dependencies": { + "requires": { + "@zxing/text-encoding": "0.9.0", "util": "^0.12.3" - }, - "optionalDependencies": { - "@zxing/text-encoding": "0.9.0" } }, - "node_modules/web-resource-inliner": { + "web-resource-inliner": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz", "integrity": "sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==", - "dependencies": { + "requires": { "ansi-colors": "^4.1.1", "escape-goat": "^3.0.0", "htmlparser2": "^5.0.0", @@ -4079,162 +3004,133 @@ "node-fetch": "^2.6.0", "valid-data-url": "^3.0.0" }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/web-resource-inliner/node_modules/domhandler": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", "dependencies": { - "domelementtype": "^2.0.1" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "requires": { + "domelementtype": "^2.0.1" + } + }, + "htmlparser2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", + "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0", + "domutils": "^2.4.2", + "entities": "^2.0.0" + } + } } }, - "node_modules/web-resource-inliner/node_modules/htmlparser2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", - "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^3.3.0", - "domutils": "^2.4.2", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/fb55/htmlparser2?sponsor=1" - } - }, - "node_modules/webidl-conversions": { + "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, - "node_modules/whatwg-url": { + "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { + "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, - "node_modules/which-typed-array": { + "which-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dependencies": { + "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wicked-good-xpath": { + "wicked-good-xpath": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz", "integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==" }, - "node_modules/wide-align": { + "wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { + "requires": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/wrappy": { + "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "node_modules/xml": { + "xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==" }, - "node_modules/xml2js": { + "xml2js": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", - "dependencies": { + "requires": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" } }, - "node_modules/xmlbuilder": { + "xmlbuilder": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" }, - "node_modules/xmlchars": { + "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, - "node_modules/xmldom-sre": { + "xmldom-sre": { "version": "0.1.31", "resolved": "https://registry.npmjs.org/xmldom-sre/-/xmldom-sre-0.1.31.tgz", - "integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==", - "engines": { - "node": ">=0.1" - } + "integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==" }, - "node_modules/yallist": { + "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/zip-stream": { + "zip-stream": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "dependencies": { + "requires": { "archiver-utils": "^3.0.4", "compress-commons": "^4.1.2", "readable-stream": "^3.6.0" }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" + "archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "requires": { + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + } + } } } } diff --git a/package.json b/package.json index 28cf400a1..ea5d83fc1 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "ajv": "^6.12.6", "bcryptjs": "^2.4.3", "bson": "^4.5.2", - "dompurify": "^3.2.4", + "dompurify": "^2.5.6", "es6-promise": "^4.2.4", "escape-string-regexp": "^5.0.0", "fibers": "^5.0.3", From 18d0fa43275cd2955dd6416213e316ca08a62255 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 24 Feb 2025 14:55:58 +0200 Subject: [PATCH 318/356] Fixed building WeKan. Updated dompurify. Forked Meteor 2.14 version of meteor-node-stubs to update elliptic. Thanks to delopers of depedencies and xet7 ! Fixes #5694 --- package-lock.json | 231 +++++++++++++++------------------------------- package.json | 4 +- 2 files changed, 78 insertions(+), 157 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0cd3d5754..18fa8b3cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -108,6 +108,12 @@ "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" @@ -600,9 +606,12 @@ } }, "dompurify": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.6.tgz", - "integrity": "sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ==" + "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", @@ -1373,16 +1382,15 @@ "integrity": "sha512-SBbbYWvFYvsxHVL+q6ZB8lT3rp2LSvfALD2V52H+MGH2IgJsevy0VtXRkRG0EsUewwOaDTIKBn9DlD8HQ3GSwg==" }, "meteor-node-stubs": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.12.tgz", - "integrity": "sha512-mzp3KI2aGNDhFlCVXPd0pfMr2z9A5vl1AqEgV13/z7AgKwcbd2X+ymE6tpSAMkrrQb40PU9PC2B59bCb6XkAaw==", + "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.6.0", "events": "^3.3.0", @@ -1398,46 +1406,19 @@ "string_decoder": "^1.3.0", "timers-browserify": "^2.0.12", "tty-browserify": "0.0.1", - "url": "^0.11.4", + "url": "^0.11.3", "util": "^0.12.5", "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": { @@ -1513,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 - } - } } } }, @@ -1598,14 +1538,12 @@ "bundled": true }, "call-bind": { - "version": "1.0.7", + "version": "1.0.5", "bundled": true, "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" } }, "cipher-base": { @@ -1624,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, @@ -1665,13 +1599,30 @@ "sha.js": "^2.4.8" } }, - "define-data-property": { - "version": "1.1.4", + "crypto-browserify": { + "version": "3.12.0", "bundled": true, "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "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, + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" } }, "define-properties": { @@ -1711,7 +1662,7 @@ "bundled": true }, "elliptic": { - "version": "6.6.0", + "version": "6.6.1", "bundled": true, "requires": { "bn.js": "^4.11.9", @@ -1724,22 +1675,11 @@ }, "dependencies": { "bn.js": { - "version": "4.12.0", + "version": "4.12.1", "bundled": true } } }, - "es-define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "bundled": true - }, "events": { "version": "3.3.0", "bundled": true @@ -1764,10 +1704,9 @@ "bundled": true }, "get-intrinsic": { - "version": "1.2.4", + "version": "1.2.2", "bundled": true, "requires": { - "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", @@ -1782,10 +1721,10 @@ } }, "has-property-descriptors": { - "version": "1.0.2", + "version": "1.0.1", "bundled": true, "requires": { - "es-define-property": "^1.0.0" + "get-intrinsic": "^1.2.2" } }, "has-proto": { @@ -1882,10 +1821,6 @@ "which-typed-array": "^1.1.11" } }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, "md5.js": { "version": "1.3.5", "bundled": true, @@ -1918,7 +1853,7 @@ "bundled": true }, "object-inspect": { - "version": "1.13.2", + "version": "1.13.1", "bundled": true }, "object-is": { @@ -1952,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": { @@ -1992,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, @@ -2019,10 +1939,10 @@ "bundled": true }, "qs": { - "version": "6.13.0", + "version": "6.11.2", "bundled": true, "requires": { - "side-channel": "^1.0.6" + "side-channel": "^1.0.4" } }, "querystring-es3": { @@ -2065,16 +1985,18 @@ "version": "5.2.1", "bundled": true }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true + }, "set-function-length": { - "version": "1.2.2", + "version": "1.1.1", "bundled": true, "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "has-property-descriptors": "^1.0.0" } }, "setimmediate": { @@ -2090,13 +2012,12 @@ } }, "side-channel": { - "version": "1.0.6", + "version": "1.0.4", "bundled": true, "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" } }, "stream-browserify": { @@ -2136,11 +2057,11 @@ "bundled": true }, "url": { - "version": "0.11.4", + "version": "0.11.3", "bundled": true, "requires": { "punycode": "^1.4.1", - "qs": "^6.12.3" + "qs": "^6.11.2" } }, "util": { diff --git a/package.json b/package.json index ea5d83fc1..6265a7565 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "ajv": "^6.12.6", "bcryptjs": "^2.4.3", "bson": "^4.5.2", - "dompurify": "^2.5.6", + "dompurify": "^3.2.4", "es6-promise": "^4.2.4", "escape-string-regexp": "^5.0.0", "fibers": "^5.0.3", @@ -44,7 +44,7 @@ "markdown-it-emoji": "^2.0.0", "markdown-it-mathjax3": "^4.3.2", "meteor-accounts-t9n": "^2.6.0", - "meteor-node-stubs": "^1.2.12", + "meteor-node-stubs": "https://github.com/wekan/meteor-node-stubs.git", "minio": "^7.1.3", "moment": "^2.29.4", "os": "^0.1.2", From 07e9ec0617b69689a91b1e2c65e8eb97ad2b6db7 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 24 Feb 2025 15:12:07 +0200 Subject: [PATCH 319/356] Updated ChangeLog. --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03d0900be..633ee6fe8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,10 @@ and adds the following updates: 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: From edbc8ed92b8a68d6c0ff092275f54e19b50c9d6c Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 24 Feb 2025 20:21:33 +0200 Subject: [PATCH 320/356] v7.82 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 633ee6fe8..9e928743e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.82 2025-02-24 WeKan ® release This release adds the following new features: diff --git a/Stackerfile.yml b/Stackerfile.yml index 382f1587f..3888e7cc3 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.81.0" +appVersion: "v7.82.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 0c91e928c..0bcee8594 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.81-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.81/wekan-7.81-amd64-windows.zip) +1. [wekan-7.82-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.82/wekan-7.82-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.20-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.81-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.82-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 18fa8b3cb..760f0b995 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.81.0", + "version": "v7.82.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6265a7565..3065b90f0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.81.0", + "version": "v7.82.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 842a39efd..cc7361116 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.81 + Wekan REST API v7.82 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                                • - Wekan REST API v7.81 + Wekan REST API v7.82
                                                • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                                  -

                                                  Wekan REST API v7.81

                                                  +

                                                  Wekan REST API v7.82

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

                                                  diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 54a425d25..29c64faf2 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.81 + version: v7.82 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index fcde8a378..aed75d965 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 = 781, + appVersion = 782, # Increment this for every release. - appMarketingVersion = (defaultText = "7.80.0~2025-01-12"), + appMarketingVersion = (defaultText = "7.82.0~2025-02-24"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 430660c9a..caa1f35b4 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.81' +version: '7.82' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.81/wekan-7.81-amd64.zip - unzip wekan-7.81-amd64.zip - rm wekan-7.81-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.82/wekan-7.82-amd64.zip + unzip wekan-7.82-amd64.zip + rm wekan-7.82-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 0326757399e702b9ac113faa1a3cc380224d22c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 21:18:37 +0000 Subject: [PATCH 321/356] Bump docker/build-push-action from 6.13.0 to 6.14.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.13.0 to 6.14.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/ca877d9245402d1537745e0e356eab47c3520991...0adf9959216b96bec444f325f1e493d4aa344497) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index b01711dd8..98b8dc013 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # 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@ca877d9245402d1537745e0e356eab47c3520991 + uses: docker/build-push-action@0adf9959216b96bec444f325f1e493d4aa344497 with: context: . push: ${{ github.event_name != 'pull_request' }} From ef70ed76a2d656a83de17298e5ac5e94be44ad0c Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 25 Feb 2025 14:33:06 +0200 Subject: [PATCH 322/356] Updated changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e928743e..ef6cd2172 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ Fixing other platforms In Progress. # 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). From 6b48f9e2590d421a032ca30ce80764356f98ca90 Mon Sep 17 00:00:00 2001 From: adam-fu Date: Sat, 1 Mar 2025 18:43:34 +0100 Subject: [PATCH 323/356] Adding Development information to readme --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index f3758d271..231512512 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,14 @@ that by providing one-click installation on various platforms. We also welcome sponsors for features and bugfixes. By working directly with WeKan ® you get the benefit of active maintenance and new features added by growing WeKan ® developer community. +## Getting Started with Development + +The default branch uses [Meteor 2 with Node.js 14](https://wekan.github.io/install/). + +To contribute, [create a fork](https://github.com/wekan/wekan/wiki/Emoji#2-create-fork-of-httpsgithubcomwekanwekan-at-github-web-page) and run `./rebuild-wekan.sh` (or `./rebuild-wekan.bat` on Windows) as detailed [here](https://github.com/wekan/wekan/wiki/Emoji#3-select-option-1-to-install-dependencies-and-then-enter). Once you're ready, please test your code and [submit a pull request (PR)](https://github.com/wekan/wekan/wiki/Emoji#7-test). + +Please refer to the [developer documentation](https://github.com/wekan/wekan/wiki/Developer-Documentation) for more information. + ## Screenshot [More screenshots at Features page](https://github.com/wekan/wekan/wiki/Features) From bce84a432a7370436cc7ea59388e2c3301be9a53 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 2 Mar 2025 12:03:22 +0200 Subject: [PATCH 324/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef6cd2172..4ee5dbe40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ 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: + +- [Adding Development information to readme](https://github.com/wekan/wekan/pull/5702). + Thanks to adam-fu. + +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. From 6347b40a02b543be9886e73d9077eb65914216fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 20:41:20 +0000 Subject: [PATCH 325/356] Bump docker/metadata-action from 5.6.1 to 5.7.0 Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.6.1 to 5.7.0. - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](https://github.com/docker/metadata-action/compare/369eb591f429131d6889c46b94e711f089e6ca96...902fa8ec7d6ecbf8d84d538b9b233a880e428804) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 98b8dc013..2bbb557de 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -48,7 +48,7 @@ jobs: # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta - uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96 + uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} From 7f871fdf30cef45420f558596701f38006bcaa70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 20:41:23 +0000 Subject: [PATCH 326/356] Bump docker/build-push-action from 6.14.0 to 6.15.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.14.0 to 6.15.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/0adf9959216b96bec444f325f1e493d4aa344497...471d1dc4e07e5cdedd4c2171150001c434f0b7a4) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 98b8dc013..c913ede79 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # 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@0adf9959216b96bec444f325f1e493d4aa344497 + uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 with: context: . push: ${{ github.event_name != 'pull_request' }} From 71acd9603eec4d31694ae7b5830a605e64c89898 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 6 Mar 2025 01:52:46 +0200 Subject: [PATCH 327/356] Updated ChangeLog. --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ee5dbe40..d9b5a2574 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,9 @@ 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). Thanks to above GitHub users for their contributions and translators for their translations. From fc548b426d5e4eb4fb2d1b34cc309b8e4cdaa8bd Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 17:45:02 +0200 Subject: [PATCH 328/356] Updated translations. --- imports/i18n/data/ar.i18n.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index aab82bc46..800d0743b 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -411,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", @@ -1207,7 +1207,7 @@ "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", + "originOrder": "النظام الأصلي\n ", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", From 14167b19b9d3053ac420d89cabf0b3381e39c571 Mon Sep 17 00:00:00 2001 From: Firas Saidi Date: Sat, 8 Mar 2025 18:02:03 +0100 Subject: [PATCH 329/356] cards file --- models/cards.js | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/models/cards.js b/models/cards.js index 9da59a4e4..5e2f47a2e 100644 --- a/models/cards.js +++ b/models/cards.js @@ -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; From 908a5fc60d5d574a36d4bfd496d3a16fd267ae75 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 19:50:00 +0200 Subject: [PATCH 330/356] Comment out error message of non-existing Custom Field. Thanks to xet7 ! Related #5684 --- models/cards.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/cards.js b/models/cards.js index 5e2f47a2e..fedef962f 100644 --- a/models/cards.js +++ b/models/cards.js @@ -535,7 +535,7 @@ Cards.helpers({ // Check if oldCf is undefined or null if (!oldCf) { - console.error(`Custom field with ID ${cf._id} not found.`); + //console.error(`Custom field with ID ${cf._id} not found.`); return cf; // Skip this field if oldCf is not found } From b402676079517e463ed291285f69c04126a00975 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 19:51:23 +0200 Subject: [PATCH 331/356] Removed siteurl from manifest to fix browser console error about not matching URL. Thanks to xet7 ! --- public/old-site.webmanifest | 524 ++++++++++++++++++++++++++++++++++++ public/site.webmanifest | 2 - 2 files changed, 524 insertions(+), 2 deletions(-) create mode 100644 public/old-site.webmanifest 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/site.webmanifest b/public/site.webmanifest index 51e25650c..beaf2ffbd 100644 --- a/public/site.webmanifest +++ b/public/site.webmanifest @@ -513,10 +513,8 @@ "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" From 345aece0f2a191f3fb449d02f777db9d9be20268 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 19:55:49 +0200 Subject: [PATCH 332/356] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9b5a2574..a4b638c43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,11 @@ This release adds the following updates: [Part 1](https://github.com/wekan/wekan/pull/5703), [Part 2](https://github.com/wekan/wekan/pull/5704). +and fixes the following bugs: + +- [Exception while invoking method 'copyCard' TypeError: Cannot read property 'name' of undefined](https://github.com/wekan/wekan/pull/5711). + Thanks to Firas-Git. + Thanks to above GitHub users for their contributions and translators for their translations. # v7.82 2025-02-24 WeKan ® release From 11199b622501418a6728f179a88213c0be6dd0b4 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 19:58:05 +0200 Subject: [PATCH 333/356] Updated ChangeLog. --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4b638c43..d30c1a0bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,8 +27,12 @@ This release adds the following updates: 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. Thanks to above GitHub users for their contributions and translators for their translations. From e7462ada12ec8edfd08d6c3b3a97a034211d51eb Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 21:09:09 +0200 Subject: [PATCH 334/356] Reverted Docker changes of WeKan v7.68 to get WeKan Docker version working. Thanks to xet7 ! Fixes #5697 --- Dockerfile | 228 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 133 insertions(+), 95 deletions(-) diff --git a/Dockerfile b/Dockerfile index ff920af9d..64a4e921f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,76 +1,31 @@ -FROM scratch AS downloads - -# Download NodeJS bundle -ADD https://static.meteor.com/dev-bundle-node-os/v14.21.4/node-v14.21.4-linux-x64.tar.gz node.tar.gz - -# Download Meteor bundle -ADD https://static.meteor.com/packages-bootstrap/2.16/meteor-bootstrap-os.linux.x86_64.tar.gz meteor.tar.gz - -FROM ubuntu:24.04 AS build - -# Install node from official archive -RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \ - tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner - -# Install meteor from official archive -RUN --mount=type=bind,from=downloads,source=meteor.tar.gz,target=meteor.tar.gz \ - tar xzf meteor.tar.gz -C $HOME --no-same-owner - -# Update the npm version -RUN npm install -g npm@6.14.17 - -# Install several build dependencies -RUN apt update && \ - apt install --yes --no-install-suggests --no-install-recommends ssh git g++ curl ca-certificates && \ - rm -r /var/lib/apt/lists - -# Change to temporary working directory -WORKDIR /workdir - -# Copy package.json and package-lock.json to install application dependencies -COPY package.json . -COPY package-lock.json . - -# Install build dependencies -RUN $HOME/.meteor/meteor npm install --production - -# Copy meteor application configurations -COPY .meteor .meteor - -# Copy application sources -COPY packages packages -COPY imports imports -COPY config config -COPY models models -COPY public public -COPY server server -COPY client client - -# Build the application -RUN $HOME/.meteor/meteor build --directory /build --allow-superuser - -# Enter server bundle directory -WORKDIR /build/bundle/programs/server - -# Install server dependencies -RUN $HOME/.meteor/meteor npm install --production - -# Enter installation directory of fibers -WORKDIR /build/bundle/programs/server/node_modules/fibers - -# Build fibers integrations -RUN node build.js - -FROM ubuntu:24.04 AS wekan - -# Add metadata to image +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" -# Set default environment variables -ENV WITH_API=true \ +# 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 + +# 2021-09-18: +# - Above Ubuntu base image copied from Docker Hub ubuntu:hirsute-20210825 +# to Quay to avoid Docker Hub rate limits. +ARG DEBIAN_FRONTEND=noninteractive + +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.14 \ + USE_EDGE=false \ + METEOR_EDGE=1.5-beta.17 \ + NPM_VERSION=6.14.17 \ + FIBERS_VERSION=4.0.1 \ + ARCHITECTURE=linux-x64 \ + SRC_PATH=./ \ + WITH_API=true \ RESULTS_PER_PAGE="" \ DEFAULT_BOARD_ID="" \ ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \ @@ -203,36 +158,119 @@ ENV WITH_API=true \ WRITABLE_PATH=/data \ S3="" -# Install node and application sources from build stage -RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \ - --mount=type=bind,from=build,source=/build,target=/build \ - # Install NodeJS - tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner && \ - # Add the wekan user - useradd --uid 999 --user-group --system wekan && \ - # Copy wekan bundle - cp -r /build/bundle /wekan && \ - # Remove the web.browser.legacy platform - rm -r /wekan/programs/web.browser.legacy && \ - # Change ownership of wekan directory - chown wekan:wekan -R /wekan && \ - # Create the data directory - mkdir /data && \ - # Change ownership of data directory - chown wekan:root -R /data +# NODE_OPTIONS="--max_old_space_size=4096" + +#--------------------------------------------- +# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ==== +# https://github.com/wekan/wekan/wiki/autologin +#- OIDC_REDIRECTION_ENABLED=true +#--------------------------------------------------------------------- + +# Copy the app to the image +COPY ${SRC_PATH} /home/wekan/app + +# Install OS +RUN < Date: Sat, 8 Mar 2025 21:14:12 +0200 Subject: [PATCH 335/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d30c1a0bb..814452808 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,8 @@ and fixes the following bugs: 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. From f5f0ba721eb6669a7934a3c49dffb73284021396 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 21:32:37 +0200 Subject: [PATCH 336/356] v7.83 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/DeveloperDocs/Design-Principles.md | 1 + docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 10 files changed, 17 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 814452808..218a0489e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.83 2025-03-08 WeKan ® release This release adds the following updates: diff --git a/Stackerfile.yml b/Stackerfile.yml index 3888e7cc3..bf2926648 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.82.0" +appVersion: "v7.83.0" files: userUploads: - README.md diff --git a/docs/DeveloperDocs/Design-Principles.md b/docs/DeveloperDocs/Design-Principles.md index 7f9b20bd5..cfca81bab 100644 --- a/docs/DeveloperDocs/Design-Principles.md +++ b/docs/DeveloperDocs/Design-Principles.md @@ -2,6 +2,7 @@ - 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 diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 0bcee8594..0a12add13 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.82-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.82/wekan-7.82-amd64-windows.zip) +1. [wekan-7.83-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.83/wekan-7.83-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.20-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.82-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.83-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 760f0b995..200421949 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.82.0", + "version": "v7.83.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 3065b90f0..41d055f7d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.82.0", + "version": "v7.83.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index cc7361116..083eb9a57 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.82 + Wekan REST API v7.83 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                                  • - Wekan REST API v7.82 + Wekan REST API v7.83
                                                  • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                                    -

                                                    Wekan REST API v7.82

                                                    +

                                                    Wekan REST API v7.83

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

                                                    diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 29c64faf2..8879fd584 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.82 + version: v7.83 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index aed75d965..4d5388daa 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 = 782, + appVersion = 783, # Increment this for every release. - appMarketingVersion = (defaultText = "7.82.0~2025-02-24"), + appMarketingVersion = (defaultText = "7.83.0~2025-03-08"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index caa1f35b4..7f518ea5a 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.82' +version: '7.83' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.82/wekan-7.82-amd64.zip - unzip wekan-7.82-amd64.zip - rm wekan-7.82-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.83/wekan-7.83-amd64.zip + unzip wekan-7.83-amd64.zip + rm wekan-7.83-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 827ee615c1b0ceae826038e29fbc29821eb10eff Mon Sep 17 00:00:00 2001 From: Rayene123 Date: Sun, 9 Mar 2025 14:12:20 +0000 Subject: [PATCH 337/356] added the start , due , end hour --- client/components/cards/cardDate.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/components/cards/cardDate.js b/client/components/cards/cardDate.js index 6e093d441..58550792e 100644 --- a/client/components/cards/cardDate.js +++ b/client/components/cards/cardDate.js @@ -322,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')); From 6d982cdfd92715438fde74921cc02cc2393506ac Mon Sep 17 00:00:00 2001 From: Rayene123 Date: Sun, 9 Mar 2025 14:15:17 +0000 Subject: [PATCH 338/356] formatted the date when storing it --- client/components/cards/cardDate.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/components/cards/cardDate.js b/client/components/cards/cardDate.js index 58550792e..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() { From cfcf68213491a40b79245234300ecfa4f5ca380b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 9 Mar 2025 19:08:20 +0200 Subject: [PATCH 339/356] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 218a0489e..bcf05c995 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming 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. + +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: From c0e4e01deb936653df69b4fd21598ac27cd349a0 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 9 Mar 2025 20:03:42 +0200 Subject: [PATCH 340/356] Added developer docs about Login code. Thanks to xet7 ! Fixes #5714 --- docs/DeveloperDocs/Developer-Documentation.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/DeveloperDocs/Developer-Documentation.md b/docs/DeveloperDocs/Developer-Documentation.md index a47769311..7393c06da 100644 --- a/docs/DeveloperDocs/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) From 028ec46f468dbbd977cc6996b244dc95842c9570 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 9 Mar 2025 20:05:08 +0200 Subject: [PATCH 341/356] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcf05c995..e03a85024 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,11 @@ 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. + Thanks to above GitHub users for their contributions and translators for their translations. # v7.83 2025-03-08 WeKan ® release From 4510ddda1507bc775b9523d3673adba48d7a8385 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 11 Mar 2025 04:19:45 +0200 Subject: [PATCH 342/356] Fix typo at Shortcuts. Thanks to xet7 ! --- client/lib/keyboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 9faa163f7..f817e9aa3 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -366,7 +366,7 @@ Template.keyboardShortcuts.helpers({ }, { keys: ['ctrl + alt + number keys 1-9'], - action: 'toggle-asignees' + action: 'toggle-assignees' }, ], }); From f99b7357467097916d0bfb1a26be5ae8355ff2af Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 11 Mar 2025 04:23:55 +0200 Subject: [PATCH 343/356] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e03a85024..b9d945e97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,11 @@ and adds the following updates: - [Added developer docs about Login code](https://github.com/wekan/wekan/commit/c0e4e01deb936653df69b4fd21598ac27cd349a0). Thanks to xet7. +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. + Thanks to above GitHub users for their contributions and translators for their translations. # v7.83 2025-03-08 WeKan ® release From a2911bc9c3bd94ef583388931d2cd354cc8657e3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 15 Mar 2025 19:32:16 +0200 Subject: [PATCH 344/356] Fixed building OpenAPI docs. Thanks to xet7 ! Fixes #5512 --- openapi/generate_openapi.py | 2 + public/api/wekan.html | 11479 ++++++++++------------------------ releases/rebuild-docs.sh | 10 +- 3 files changed, 3235 insertions(+), 8256 deletions(-) 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/public/api/wekan.html b/public/api/wekan.html index 083eb9a57..1548d31a6 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.83 + Wekan REST API @@ -750,7 +750,6 @@ html, body { border: 1px solid #F7E633; background: linear-gradient(to top left, #F7E633 0%, #F1D32F 100%); } - .content pre, .content blockquote { background-color: #1E2224; color: #fff; @@ -1466,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 @@ -1533,10 +1512,6 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc Go - - PHP - -
                                                    @@ -1569,12 +1544,12 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                                                    • - login + login
                                                    • - register + register
                                                    • @@ -1588,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
                                                      • @@ -1657,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
                                                        • @@ -1686,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
                                                          • @@ -1715,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
                                                            • @@ -1744,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
                                                              • @@ -1803,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
                                                                • @@ -1852,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
                                                                  • @@ -1896,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
                                                                    • @@ -1925,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
                                                                      • @@ -1959,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
                                                                        • @@ -2100,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
                                                                           })
                                                                          @@ -2132,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
                                                                           
                                                                          @@ -2172,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()));
                                                                          @@ -2199,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{}
                                                                          @@ -2219,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

                                                                          @@ -2270,7 +2139,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -2400,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
                                                                           })
                                                                          @@ -2433,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
                                                                           
                                                                          @@ -2474,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()));
                                                                          @@ -2501,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{}
                                                                          @@ -2521,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

                                                                          @@ -2577,7 +2419,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -2708,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

                                                                          @@ -4032,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
                                                                           })
                                                                          @@ -4056,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
                                                                           
                                                                          @@ -4091,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()));
                                                                          @@ -4117,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{}
                                                                          @@ -4136,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.

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

                                                                          -

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the ID of the board we are exporting

                                                                          Responses

                                                                          @@ -4213,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

                                                                          @@ -5608,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
                                                                           })
                                                                          @@ -5636,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
                                                                           
                                                                          @@ -5673,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()));
                                                                          @@ -5700,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{}
                                                                          @@ -5720,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          card: the card ID

                                                                          @@ -5787,8 +2880,8 @@ System.out.println(response.toString());
                                                                          [
                                                                             {
                                                                          -    "_id": "string",
                                                                          -    "title": "string"
                                                                          +    "_id": "string",
                                                                          +    "title": "string"
                                                                             }
                                                                           ]
                                                                           
                                                                          @@ -5851,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
                                                                           })
                                                                          @@ -5885,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
                                                                           
                                                                          @@ -5927,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()));
                                                                          @@ -5955,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{}
                                                                          @@ -5976,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          card: the card ID

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -6126,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
                                                                           })
                                                                          @@ -6154,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
                                                                           
                                                                          @@ -6191,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()));
                                                                          @@ -6218,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{}
                                                                          @@ -6238,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

                                                                          @@ -6301,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

                                                                          @@ -6312,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
                                                                               }
                                                                             ]
                                                                           }
                                                                          @@ -6434,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
                                                                           })
                                                                          @@ -6462,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
                                                                           
                                                                          @@ -6499,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()));
                                                                          @@ -6526,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{}
                                                                          @@ -6546,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

                                                                          @@ -6610,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -6677,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
                                                                           })
                                                                          @@ -6710,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
                                                                           
                                                                          @@ -6751,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()));
                                                                          @@ -6779,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{}
                                                                          @@ -6800,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

                                                                          @@ -6872,7 +3866,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -6884,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -6950,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
                                                                           })
                                                                          @@ -6978,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
                                                                           
                                                                          @@ -7015,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()));
                                                                          @@ -7042,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{}
                                                                          @@ -7062,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          card: the card ID

                                                                          checklist: the checklist ID

                                                                          @@ -7144,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

                                                                          @@ -7183,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
                                                                           })
                                                                          @@ -7217,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
                                                                           
                                                                          @@ -7259,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()));
                                                                          @@ -7287,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{}
                                                                          @@ -7308,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          card: the card ID

                                                                          checklist: the checklist ID

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -7474,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
                                                                           })
                                                                          @@ -7502,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
                                                                           
                                                                          @@ -7539,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()));
                                                                          @@ -7566,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{}
                                                                          @@ -7586,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          card: the card ID

                                                                          checklist: the checklist ID

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -7725,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
                                                                           })
                                                                          @@ -7753,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
                                                                           
                                                                          @@ -7790,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()));
                                                                          @@ -7817,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{}
                                                                          @@ -7837,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

                                                                          @@ -7893,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

                                                                          @@ -7904,9 +4802,9 @@ System.out.println(response.toString());
                                                                          [
                                                                             {
                                                                          -    "_id": "string",
                                                                          -    "comment": "string",
                                                                          -    "authorId": "string"
                                                                          +    "_id": "string",
                                                                          +    "comment": "string",
                                                                          +    "authorId": "string"
                                                                             }
                                                                           ]
                                                                           
                                                                          @@ -7976,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
                                                                           })
                                                                          @@ -8010,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
                                                                           
                                                                          @@ -8052,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()));
                                                                          @@ -8080,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{}
                                                                          @@ -8101,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

                                                                          @@ -8167,7 +5038,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -8186,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -8251,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
                                                                           })
                                                                          @@ -8279,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
                                                                           
                                                                          @@ -8316,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()));
                                                                          @@ -8343,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{}
                                                                          @@ -8363,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

                                                                          @@ -8426,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

                                                                          @@ -8437,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

                                                                          @@ -8475,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
                                                                           })
                                                                          @@ -8503,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
                                                                           
                                                                          @@ -8540,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()));
                                                                          @@ -8567,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{}
                                                                          @@ -8587,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

                                                                          @@ -8650,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -8717,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
                                                                           })
                                                                          @@ -8745,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
                                                                           
                                                                          @@ -8782,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()));
                                                                          @@ -8809,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{}
                                                                          @@ -8829,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

                                                                          @@ -8892,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

                                                                          @@ -8904,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"
                                                                             }
                                                                           ]
                                                                           
                                                                          @@ -8992,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
                                                                           })
                                                                          @@ -9020,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
                                                                           
                                                                          @@ -9057,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()));
                                                                          @@ -9084,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{}
                                                                          @@ -9104,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          Example responses

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -9217,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
                                                                           })
                                                                          @@ -9245,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
                                                                           
                                                                          @@ -9282,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()));
                                                                          @@ -9309,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{}
                                                                          @@ -9329,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          list: the list ID

                                                                          @@ -9396,9 +6152,9 @@ System.out.println(response.toString());
                                                                          [
                                                                             {
                                                                          -    "_id": "string",
                                                                          -    "title": "string",
                                                                          -    "description": "string"
                                                                          +    "_id": "string",
                                                                          +    "title": "string",
                                                                          +    "description": "string"
                                                                             }
                                                                           ]
                                                                           
                                                                          @@ -9468,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
                                                                           })
                                                                          @@ -9506,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
                                                                           
                                                                          @@ -9552,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()));
                                                                          @@ -9580,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{}
                                                                          @@ -9601,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

                                                                          @@ -9671,7 +6396,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -9718,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -9783,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
                                                                           })
                                                                          @@ -9811,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
                                                                           
                                                                          @@ -9848,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()));
                                                                          @@ -9875,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{}
                                                                          @@ -9895,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

                                                                          @@ -9958,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

                                                                          @@ -9969,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

                                                                          @@ -10097,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
                                                                           })
                                                                          @@ -10155,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
                                                                           
                                                                          @@ -10221,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()));
                                                                          @@ -10249,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{}
                                                                          @@ -10270,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

                                                                          @@ -10318,8 +6971,8 @@ System.out.println(response.toString()); parentId: string description: string color: string -vote: {} -poker: {} +vote: {} +poker: {} labelIds: string requestedBy: string assignedBy: string @@ -10375,7 +7028,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -10562,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -10628,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
                                                                           })
                                                                          @@ -10656,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
                                                                           
                                                                          @@ -10693,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()));
                                                                          @@ -10720,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{}
                                                                          @@ -10740,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

                                                                          @@ -10805,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -10871,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
                                                                           })
                                                                          @@ -10904,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
                                                                           
                                                                          @@ -10945,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()));
                                                                          @@ -10973,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{}
                                                                          @@ -10994,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

                                                                          @@ -11074,7 +7678,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -11086,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -11161,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
                                                                           })
                                                                          @@ -11189,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
                                                                           
                                                                          @@ -11226,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()));
                                                                          @@ -11253,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{}
                                                                          @@ -11273,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          list: the List ID

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -11394,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
                                                                           })
                                                                          @@ -11422,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
                                                                           
                                                                          @@ -11459,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()));
                                                                          @@ -11486,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{}
                                                                          @@ -11506,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          swimlane: the swimlane ID

                                                                          @@ -11573,10 +8131,10 @@ System.out.println(response.toString());
                                                                          [
                                                                             {
                                                                          -    "_id": "string",
                                                                          -    "title": "string",
                                                                          -    "description": "string",
                                                                          -    "listId": "string"
                                                                          +    "_id": "string",
                                                                          +    "title": "string",
                                                                          +    "description": "string",
                                                                          +    "listId": "string"
                                                                             }
                                                                           ]
                                                                           
                                                                          @@ -11654,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
                                                                           })
                                                                          @@ -11682,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
                                                                           
                                                                          @@ -11719,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()));
                                                                          @@ -11746,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{}
                                                                          @@ -11766,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

                                                                          @@ -11823,9 +8358,9 @@ System.out.println(response.toString());
                                                                          [
                                                                             {
                                                                          -    "_id": "string",
                                                                          -    "name": "string",
                                                                          -    "type": "string"
                                                                          +    "_id": "string",
                                                                          +    "name": "string",
                                                                          +    "type": "string"
                                                                             }
                                                                           ]
                                                                           
                                                                          @@ -11895,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
                                                                           })
                                                                          @@ -11935,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
                                                                           
                                                                          @@ -11983,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()));
                                                                          @@ -12011,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{}
                                                                          @@ -12032,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -12220,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
                                                                           })
                                                                          @@ -12248,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
                                                                           
                                                                          @@ -12285,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()));
                                                                          @@ -12312,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{}
                                                                          @@ -12332,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          customField: the ID of the custom field

                                                                          Example responses

                                                                          @@ -12398,8 +8877,8 @@ System.out.println(response.toString());
                                                                          [
                                                                             {
                                                                          -    "_id": "string",
                                                                          -    "boardIds": "string"
                                                                          +    "_id": "string",
                                                                          +    "boardIds": "string"
                                                                             }
                                                                           ]
                                                                           
                                                                          @@ -12462,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
                                                                           })
                                                                          @@ -12502,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
                                                                           
                                                                          @@ -12550,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()));
                                                                          @@ -12578,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{}
                                                                          @@ -12599,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -12794,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
                                                                           })
                                                                          @@ -12822,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
                                                                           
                                                                          @@ -12859,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()));
                                                                          @@ -12886,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{}
                                                                          @@ -12906,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          customField: the ID of the custom field

                                                                          Example responses

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -13027,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
                                                                           })
                                                                          @@ -13060,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
                                                                           
                                                                          @@ -13101,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()));
                                                                          @@ -13129,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{}
                                                                          @@ -13150,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -13289,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
                                                                           })
                                                                          @@ -13322,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
                                                                           
                                                                          @@ -13363,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()));
                                                                          @@ -13391,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{}
                                                                          @@ -13412,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -13558,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
                                                                           })
                                                                          @@ -13586,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
                                                                           
                                                                          @@ -13623,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()));
                                                                          @@ -13650,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{}
                                                                          @@ -13670,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -13796,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
                                                                           })
                                                                          @@ -13824,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
                                                                           
                                                                          @@ -13861,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()));
                                                                          @@ -13888,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{}
                                                                          @@ -13908,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          Example responses

                                                                          @@ -13967,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"
                                                                             }
                                                                           ]
                                                                           
                                                                          @@ -14030,7 +10355,7 @@ System.out.println(response.toString()); » title -string¦null +string|null false none name of the integration @@ -14058,7 +10383,7 @@ System.out.println(response.toString()); » token -string¦null +string|null false none token of the integration @@ -14104,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
                                                                           })
                                                                          @@ -14137,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
                                                                           
                                                                          @@ -14178,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()));
                                                                          @@ -14206,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{}
                                                                          @@ -14227,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          Example responses

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -14361,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
                                                                           })
                                                                          @@ -14389,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
                                                                           
                                                                          @@ -14426,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()));
                                                                          @@ -14453,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{}
                                                                          @@ -14473,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          int: the integration ID

                                                                          @@ -14539,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

                                                                          @@ -14583,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
                                                                           })
                                                                          @@ -14620,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
                                                                           
                                                                          @@ -14665,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()));
                                                                          @@ -14693,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{}
                                                                          @@ -14714,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          int: the integration ID

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -14888,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
                                                                           })
                                                                          @@ -14916,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
                                                                           
                                                                          @@ -14953,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()));
                                                                          @@ -14980,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{}
                                                                          @@ -15000,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          int: the integration ID

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -15121,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
                                                                           })
                                                                          @@ -15149,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
                                                                           
                                                                          @@ -15186,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()));
                                                                          @@ -15213,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{}
                                                                          @@ -15233,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          int: the integration ID

                                                                          @@ -15299,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

                                                                          @@ -15343,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
                                                                           })
                                                                          @@ -15376,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
                                                                           
                                                                          @@ -15417,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()));
                                                                          @@ -15445,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{}
                                                                          @@ -15466,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          int: the integration ID

                                                                          @@ -15553,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

                                                                          @@ -15598,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
                                                                           })
                                                                          @@ -15626,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
                                                                           
                                                                          @@ -15663,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()));
                                                                          @@ -15690,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{}
                                                                          @@ -15710,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          Example responses

                                                                          @@ -15769,8 +11920,8 @@ System.out.println(response.toString());
                                                                          [
                                                                             {
                                                                          -    "_id": "string",
                                                                          -    "title": "string"
                                                                          +    "_id": "string",
                                                                          +    "title": "string"
                                                                             }
                                                                           ]
                                                                           
                                                                          @@ -15833,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
                                                                           })
                                                                          @@ -15866,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
                                                                           
                                                                          @@ -15907,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()));
                                                                          @@ -15935,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{}
                                                                          @@ -15956,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          Example responses

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -16090,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
                                                                           })
                                                                          @@ -16118,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
                                                                           
                                                                          @@ -16155,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()));
                                                                          @@ -16182,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{}
                                                                          @@ -16202,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the board ID

                                                                          list: the List ID

                                                                          @@ -16268,24 +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",
                                                                          -  "collapsed": true
                                                                          +  "color": "white",
                                                                          +  "type": "string",
                                                                          +  "collapsed": true
                                                                           }
                                                                           

                                                                          Responses

                                                                          @@ -16318,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
                                                                           })
                                                                          @@ -16346,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
                                                                           
                                                                          @@ -16383,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()));
                                                                          @@ -16410,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{}
                                                                          @@ -16430,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

                                                                          @@ -16488,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -16554,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
                                                                           })
                                                                          @@ -16582,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
                                                                           
                                                                          @@ -16619,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()));
                                                                          @@ -16646,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{}
                                                                          @@ -16666,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the ID of the board

                                                                          Example responses

                                                                          @@ -16725,8 +12781,8 @@ System.out.println(response.toString());
                                                                          [
                                                                             {
                                                                          -    "_id": "string",
                                                                          -    "title": "string"
                                                                          +    "_id": "string",
                                                                          +    "title": "string"
                                                                             }
                                                                           ]
                                                                           
                                                                          @@ -16789,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
                                                                           })
                                                                          @@ -16822,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
                                                                           
                                                                          @@ -16863,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()));
                                                                          @@ -16891,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{}
                                                                          @@ -16912,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the ID of the board

                                                                          Example responses

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -17046,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
                                                                           })
                                                                          @@ -17074,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
                                                                           
                                                                          @@ -17111,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()));
                                                                          @@ -17138,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{}
                                                                          @@ -17158,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the ID of the board

                                                                          swimlane: the ID of the swimlane

                                                                          @@ -17224,17 +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",
                                                                          -  "collapsed": true
                                                                          +  "title": "string",
                                                                          +  "archived": true,
                                                                          +  "archivedAt": "string",
                                                                          +  "boardId": "string",
                                                                          +  "createdAt": "string",
                                                                          +  "sort": 0,
                                                                          +  "color": "white",
                                                                          +  "updatedAt": "string",
                                                                          +  "modifiedAt": "string",
                                                                          +  "type": "string",
                                                                          +  "collapsed": true
                                                                           }
                                                                           

                                                                          Responses

                                                                          @@ -17267,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
                                                                           })
                                                                          @@ -17300,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
                                                                           
                                                                          @@ -17341,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()));
                                                                          @@ -17369,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{}
                                                                          @@ -17390,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

                                                                          @@ -17454,8 +13435,8 @@ System.out.println(response.toString()); body body -object -true +new_swimlane +false none @@ -17467,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

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -17532,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
                                                                           })
                                                                          @@ -17560,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
                                                                           
                                                                          @@ -17597,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()));
                                                                          @@ -17624,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{}
                                                                          @@ -17644,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

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

                                                                          Detailed descriptions

                                                                          +

                                                                          Detailed descriptions

                                                                          board: the ID of the board

                                                                          swimlane: the ID of the swimlane

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

                                                                          200 Response

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

                                                                          Responses

                                                                          @@ -17760,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

                                                                          @@ -17865,871 +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
                                                                          colorcleandark
                                                                          colorcleanlight
                                                                          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

                                                                          - - - - - - - - - - - - @@ -18773,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

                                                                          @@ -18892,7 +13905,7 @@ UserSecurity - + @@ -18906,21 +13919,21 @@ UserSecurity - + - + - + @@ -18934,21 +13947,21 @@ UserSecurity - + - + - + @@ -18969,7 +13982,7 @@ UserSecurity - + @@ -18983,84 +13996,84 @@ UserSecurity - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19074,14 +14087,14 @@ UserSecurity - + - + @@ -19095,7 +14108,7 @@ UserSecurity - + @@ -19105,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

                                                                          @@ -19255,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

                                                                          @@ -19330,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

                                                                          @@ -19485,34 +14506,28 @@ UserSecurity
                                                                          -

                                                                          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

                                                                          @@ -19561,7 +14576,7 @@ UserSecurity - + @@ -19575,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

                                                                          @@ -19620,19 +14633,12 @@ UserSecurity - + - - - - - - - @@ -19653,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

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

                                                                          Enumerated Values

                                                                          +

                                                                          Enumerated Values

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

                                                                          CustomFieldsSettings

                                                                          -

                                                                          - - -

                                                                          +

                                                                          CustomFieldsSettings

                                                                          +

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

                                                                          Properties

                                                                          +

                                                                          Properties

                                                                          @@ -19872,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

                                                                          @@ -19925,7 +14933,7 @@ UserSecurity - + @@ -19953,7 +14961,7 @@ UserSecurity - + @@ -19988,35 +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",
                                                                          -  "collapsed": true
                                                                          +  "color": "white",
                                                                          +  "type": "string",
                                                                          +  "collapsed": true
                                                                           }
                                                                           
                                                                           
                                                                          -

                                                                          A list (column) in the Wekan board.

                                                                          -

                                                                          Properties

                                                                          +

                                                                          A list (column) in the Wekan board.

                                                                          +

                                                                          Properties

                                                                          @@ -20037,10 +15042,10 @@ UserSecurity - + - + @@ -20051,7 +15056,7 @@ UserSecurity - + @@ -20079,14 +15084,14 @@ UserSecurity - + - + @@ -20103,11 +15108,11 @@ UserSecurity - + - + @@ -20128,7 +15133,7 @@ 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 list
                                                                          -

                                                                          Enumerated Values

                                                                          +

                                                                          Enumerated Values

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

                                                                          ListsWiplimit

                                                                          -

                                                                          - - -

                                                                          +

                                                                          ListsWiplimit

                                                                          +

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

                                                                          Properties

                                                                          +

                                                                          Properties

                                                                          @@ -20286,28 +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",
                                                                          -  "collapsed": true
                                                                          +  "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

                                                                          @@ -20335,7 +15334,7 @@ UserSecurity - + @@ -20356,21 +15355,21 @@ UserSecurity - + - + - + @@ -20398,7 +15397,7 @@ 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 edited
                                                                          -

                                                                          Enumerated Values

                                                                          +

                                                                          Enumerated Values

                                                                          @@ -20509,27 +15508,7 @@ UserSecurity
                                                                          - - - - - - - - - - - - - - - - - - - - - +
                                                    @@ -20567,10 +15546,6 @@ UserSecurity Go - - PHP - -
                                                  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/ From 14070599376311e795fa4c83b27f891d6490294b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 15 Mar 2025 19:33:49 +0200 Subject: [PATCH 345/356] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b9d945e97..eec225e81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,8 @@ 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. From 8e7a5e8cb5c0b40fdb0505636492d4634a02ae82 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 15 Mar 2025 22:31:43 +0200 Subject: [PATCH 346/356] Updated translations. --- imports/i18n/data/eu.i18n.json | 14 +++++++------- imports/i18n/data/uk-UA.i18n.json | 6 +++--- imports/i18n/data/uk.i18n.json | 30 +++++++++++++++--------------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 1ef44f7d3..791c52b6e 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -90,8 +90,8 @@ "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": "Keyboard shortcuts enabled. Click to disable.", - "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "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)", @@ -266,9 +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": "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", + "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", @@ -383,7 +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": "Enable vertical scrollbars", + "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", @@ -1257,7 +1257,7 @@ "text": "Testua", "translation-text": "itzulpenaren testua", "show-subtasks-field": "azpi-zereginen eremua bezala", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "Erakutsi rrteko aste zenbakia (ISO 8601)", "convert-to-markdown": "Bihurtu markdown-era", "import-board-zip": "Gehitu taula JSON fitxategiak dituen .zip fitxategia eta eranskinak dituzten taularen izenen azpidirektorioak", "collapse": "Tolestu", diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index 6b1e8460c..8f94712ff 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -383,7 +383,7 @@ "email-sent": "Email відправлений", "email-verifyEmail-subject": "Підтвердіть вашу email адресу на __siteName__", "email-verifyEmail-text": "Привіт __user__,\n\nЩоб підтвердити ваш акаунт email, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.", - "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-vertical-scrollbars": "Увімкнути вертикальні скроллбари", "enable-wip-limit": "Увімкнути ліміт WIP", "error-board-doesNotExist": "Ця дошка не існує", "error-board-notAdmin": "Вам потрібно бути адміністратором цієї дошки, щоб зробити це", @@ -610,7 +610,7 @@ "has-spenttime-cards": "Має картки з витраченим часом", "time": "Час", "title": "Назва", - "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-assignees": "Перемикання призначень 1-9 для картки (за порядком додавання на дошку)", "toggle-labels": "Перемкнути мітки 1-9 для картки. Мультивибір додає мітки 1-9", "remove-labels-multiselect": "Мультивибір видаляє мітки 1-9", "tracking": "Відстеження", @@ -1257,7 +1257,7 @@ "text": "Текст", "translation-text": "Перекласти текст", "show-subtasks-field": "Показати поле підзавдань", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "Показати тиждень року (ISO 8601)", "convert-to-markdown": "Конвертувати в Markdown", "import-board-zip": "Додати файл .zip, який містить файли JSON дошки та підкаталоги з назвами дошок і вкладеннями", "collapse": "Згорнути", diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index a3cfa1730..396f77407 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -86,12 +86,12 @@ "add-card": "Додати картку", "add-card-to-top-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.", + "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": "Висота доріжки (у пікселях)", @@ -266,9 +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", + "click-to-enable-auto-width": "Автоматична ширина списку вимкнена. Натисніть, щоб увімкнути.", + "click-to-disable-auto-width": "Автоматична ширина списку увімкнена. Натисніть, щоб вимкнути.", + "auto-list-width": "Автоматична ширина списку", "clipboard": "Буфер обміну або перетягнути і відпустити", "close": "Закрити", "close-board": "Закрити дошку", @@ -383,7 +383,7 @@ "email-sent": "Email відправлений", "email-verifyEmail-subject": "Підтвердіть вашу email адресу на __siteName__", "email-verifyEmail-text": "Привіт __user__,\n\nЩоб підтвердити ваш акаунт email, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.", - "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-vertical-scrollbars": "Увімкнути вертикальні скроллбари", "enable-wip-limit": "Увімкнути ліміт WIP", "error-board-doesNotExist": "Ця дошка не існує", "error-board-notAdmin": "Вам потрібно бути адміністратором цієї дошки, щоб зробити це", @@ -610,7 +610,7 @@ "has-spenttime-cards": "Має картки з витраченим часом", "time": "Час", "title": "Назва", - "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-assignees": "Перемикання призначень 1-9 для картки (за порядком додавання на дошку)", "toggle-labels": "Перемкнути мітки 1-9 для картки. Мультивибір додає мітки 1-9", "remove-labels-multiselect": "Мультивибір видаляє мітки 1-9", "tracking": "Відстеження", @@ -1257,7 +1257,7 @@ "text": "Текст", "translation-text": "Перекласти текст", "show-subtasks-field": "Показати поле підзавдань", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "Показати тиждень року (ISO 8601)", "convert-to-markdown": "Конвертувати в Markdown", "import-board-zip": "Додати файл .zip, який містить файли JSON дошки та підкаталоги з назвами дошок і вкладеннями", "collapse": "Згорнути", @@ -1266,7 +1266,7 @@ "hideAllChecklistItems": "Приховати всі пункти чек-листа", "support": "Підтримка", "supportPopup-title": "Підтримка", - "accessibility-page-enabled": "Accessibility page enabled", - "accessibility-title": "Accessibility topic", - "accessibility-content": "Accessibility content" + "accessibility-page-enabled": "Увімкнено сторінку доступності", + "accessibility-title": "Тема доступності", + "accessibility-content": "Доступність контенту" } From 19153ca489c51b2fe51a50436ea8ec04566efc8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Mar 2025 21:00:44 +0000 Subject: [PATCH 347/356] Bump docker/login-action from 3.3.0 to 3.4.0 Bumps [docker/login-action](https://github.com/docker/login-action) from 3.3.0 to 3.4.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/9780b0c442fbb1117ed29e0efdff1e18412f7567...74a5d142397b4f367a81961eba4e8cd7edddf772) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 8b3e12d12..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@9780b0c442fbb1117ed29e0efdff1e18412f7567 + uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} From bb6ac70f63b6f3568b7c943417c698615936a956 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 22 Mar 2025 21:26:41 +0200 Subject: [PATCH 348/356] Updated dependencies. Thanks to developers of dependencies ! --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 200421949..3adc42d3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@babel/runtime": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", - "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "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" } diff --git a/package.json b/package.json index 41d055f7d..dcfdaba2a 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "sinon": "^13.0.2" }, "dependencies": { - "@babel/runtime": "^7.25.0", + "@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", From d0c7bf65a4b0505883c5ed1e8e102c266c92f282 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 22 Mar 2025 21:30:53 +0200 Subject: [PATCH 349/356] Updated ChangeLog. --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index eec225e81..2ab1ee57f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,10 @@ 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: From ad3cc9c087d5916faa07653023dc19e82b738356 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 22 Mar 2025 21:39:15 +0200 Subject: [PATCH 350/356] Updated translations. --- imports/i18n/data/eo.i18n.json | 4 +- imports/i18n/data/es.i18n.json | 264 +++++++++++++++--------------- imports/i18n/data/ms-MY.i18n.json | 186 ++++++++++----------- 3 files changed, 227 insertions(+), 227 deletions(-) diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index 4d11696da..d55f385c1 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -300,7 +300,7 @@ "color-white": "white", "color-yellow": "flava", "unset-color": "Unset", - "comments": "Comments", + "comments": "Komentoj", "comment": "Komento", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -1253,7 +1253,7 @@ "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-subtasks-field": "Show subtasks field", diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 88b6a4029..4f879845e 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s se ha archivado", "activity-attached": "adjuntado(s) %s a %s", "activity-created": "ha creado %s", - "activity-changedListTitle": "renamed list to %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", @@ -86,27 +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 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", + "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", @@ -120,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", @@ -149,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", @@ -163,11 +163,11 @@ "board-not-found": "Tablero no encontrado", "board-private-info": "Este tablero será privado.", "board-public-info": "Este tablero será público.", - "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", @@ -217,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", @@ -236,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", @@ -266,9 +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", + "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", @@ -300,7 +300,7 @@ "color-white": "blanco", "color-yellow": "amarilla", "unset-color": "Desmarcar", - "comments": "Comments", + "comments": "Comentarios", "comment": "Comentar", "comment-placeholder": "Escribir comentario", "comment-only": "Sólo comentarios", @@ -313,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", @@ -338,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", @@ -383,7 +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-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", @@ -414,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", @@ -451,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", - "show-activities": "Show Activities", + "show-activities": "Mostrar actividades", "headerBarCreateBoardPopup-title": "Crear tablero", "home": "Inicio", "import": "Importar", @@ -500,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", @@ -510,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", @@ -540,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", @@ -558,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?", @@ -580,14 +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": "Add yourself to current card", + "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", @@ -604,13 +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": "Toggle assignees 1-9 for card (By order of addition to board).", + "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", @@ -624,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", @@ -656,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", @@ -731,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?", @@ -742,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", @@ -750,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", @@ -786,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", @@ -861,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", @@ -877,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", @@ -890,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 ", "add-custom-html-before-body-end": "Añade HTML personalizado después de ", - "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", @@ -916,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", @@ -966,7 +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", + "hide-finished-checklist": "Esconder la lista de tareas finalizada", "task": "Tarea", "create-task": "Crear Tarea", "ok": "Vale", @@ -974,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", @@ -998,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", @@ -1013,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": "#", @@ -1041,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", @@ -1064,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__:` - 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", @@ -1111,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-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", + "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", @@ -1150,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:)", @@ -1175,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", @@ -1195,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", @@ -1204,25 +1204,25 @@ "checklistActionsPopup-title": "Acciones de la Lista de Tareas", "moveChecklist": "Mover Lista de Tareas", "moveChecklistPopup-title": "Mover Lista de Tareas", - "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", + "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", @@ -1234,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", @@ -1246,27 +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-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", + "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": "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" + "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/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json index 821c0ba00..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,7 +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-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", @@ -86,9 +86,9 @@ "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)", + "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.", @@ -105,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.", @@ -451,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.", - "show-activities": "Show Activities", + "show-activities": "Tunjukkan Aktiviti", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -972,20 +972,20 @@ "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", @@ -993,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.", @@ -1004,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", @@ -1033,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", @@ -1067,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>*", @@ -1106,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", @@ -1128,8 +1128,8 @@ "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", @@ -1152,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", @@ -1200,14 +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": "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", + "originOrder": "aturan asal", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1223,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", @@ -1253,9 +1253,9 @@ "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", + "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", From d96a1a5c9e3bac60a666e69875154574502bd521 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Sun, 23 Mar 2025 17:33:57 +0200 Subject: [PATCH 351/356] v7.84 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Features/Multiline.md | 23 ++++++++++++++++++++ docs/Login/SAML.md | 20 ++++++++++++++++- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- docs/_Sidebar.md | 1 + package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 4 ++-- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 +++---- 12 files changed, 58 insertions(+), 16 deletions(-) create mode 100644 docs/Features/Multiline.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ab1ee57f..808d37362 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.84 2025-03-23 WeKan ® release This release adds the following new features: diff --git a/Stackerfile.yml b/Stackerfile.yml index bf2926648..257145fd9 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.83.0" +appVersion: "v7.84.0" files: userUploads: - README.md 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 + +<img src="https://wekan.github.io/multiline/multiline1.png" width="60%" alt="Multiple lines to Checklist" /> + +## Card ☰ Menu / Copy Checklist Template to Many Cards + +<img src="https://wekan.github.io/multiline/multiline2.png" width="60%" alt="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"} ] +``` + +<img src="https://wekan.github.io/multiline/multiline3.png" width="60%" alt="Checklist Template to Many Cards 2" /> + diff --git a/docs/Login/SAML.md b/docs/Login/SAML.md index f6fe2a4d7..7b4c60a8c 100644 --- a/docs/Login/SAML.md +++ b/docs/Login/SAML.md @@ -46,4 +46,22 @@ 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 +- `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/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 0a12add13..41808d969 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.83-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.83/wekan-7.83-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.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.20-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.83-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) diff --git a/docs/_Sidebar.md b/docs/_Sidebar.md index 2a105c814..a527809b4 100644 --- a/docs/_Sidebar.md +++ b/docs/_Sidebar.md @@ -129,6 +129,7 @@ # <a name="Features"></a>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) diff --git a/package-lock.json b/package-lock.json index 3adc42d3a..ef43cf5d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.83.0", + "version": "v7.84.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index dcfdaba2a..7b8196d20 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.83.0", + "version": "v7.84.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 1548d31a6..d73fec650 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -1524,7 +1524,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc <ul class="toc-list-h1"> <li> - <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.83">Wekan REST API v7.83</a> + <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.84">Wekan REST API v7.84</a> </li> @@ -1963,7 +1963,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc <div class="page-wrapper"> <div class="dark-box"></div> <div class="content"> - <h1 id="wekan-rest-api">Wekan REST API v7.83</h1> + <h1 id="wekan-rest-api">Wekan REST API v7.84</h1> <blockquote> <p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p> </blockquote> diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 8879fd584..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.83 + version: v7.84 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 4d5388daa..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 = 783, + appVersion = 784, # Increment this for every release. - appMarketingVersion = (defaultText = "7.83.0~2025-03-08"), + appMarketingVersion = (defaultText = "7.84.0~2025-03-23"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 7f518ea5a..d61c73bb0 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.83' +version: '7.84' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.83/wekan-7.83-amd64.zip - unzip wekan-7.83-amd64.zip - rm wekan-7.83-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 From f09f5bd737360c75731ddfb785c1bfff1dcdee60 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Sat, 29 Mar 2025 21:35:45 +0200 Subject: [PATCH 352/356] Updated translations. --- imports/i18n/data/br.i18n.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index 9ee08f252..695b21cc7 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -319,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", @@ -572,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", From db5346fc5c7407160f381c0fcf4a87204206ed55 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Mon, 31 Mar 2025 21:38:06 +0300 Subject: [PATCH 353/356] Update Browser-compatibility-matrix.md --- docs/Browsers/Browser-compatibility-matrix.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/Browsers/Browser-compatibility-matrix.md b/docs/Browsers/Browser-compatibility-matrix.md index d1f3c4b68..b316a6b4f 100644 --- a/docs/Browsers/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,10 +18,8 @@ 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 +[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 | Android Yes | Android Newest | Newest | Win/Mac/Linux/BSD/RasPi. [Haiku](https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/143) not tested yet - [HN](https://news.ycombinator.com/item?id=41214762). -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. [Repo](https://gitlab.com/ubports/development/core/morph-browser) -[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. [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) @@ -38,6 +37,8 @@ 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 From 05d1736f5f21e93e83b2e25029c6cab6c5106398 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Mon, 31 Mar 2025 21:45:22 +0300 Subject: [PATCH 354/356] Update Browser-compatibility-matrix.md --- docs/Browsers/Browser-compatibility-matrix.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Browsers/Browser-compatibility-matrix.md b/docs/Browsers/Browser-compatibility-matrix.md index b316a6b4f..ddfd499e1 100644 --- a/docs/Browsers/Browser-compatibility-matrix.md +++ b/docs/Browsers/Browser-compatibility-matrix.md @@ -19,7 +19,7 @@ Any telemetry at any Firefox based browser can be additionally most locked down Browser | [PWA](PWA) | Mobile | Desktop | OS ------- | ----| ------ | ------- | ------- [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 | Android Yes | Android Newest | Newest | Win/Mac/Linux/BSD/RasPi. [Haiku](https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/143) not tested yet - [HN](https://news.ycombinator.com/item?id=41214762). +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) @@ -61,7 +61,7 @@ Internet Explorer | No | No | No | No | No - Apache 2.0 or MIT license - Repo: https://github.com/versotile-org/verso -## Ladybird based, not tested yet: +## Ladybird based, not yet compatible with WeKan - BSD-2-Clause license - Website: https://ladybird.org @@ -77,7 +77,7 @@ 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 From 2de9b94b01444f4f291e71c1f4b01bbd9b433fc1 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Mon, 31 Mar 2025 21:50:47 +0300 Subject: [PATCH 355/356] Updated ChangeLog. --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 808d37362..495be0185 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,17 @@ 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: From 23bac7355997ec96a4d3fd206acb1161f0d05112 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Sat, 5 Apr 2025 17:39:29 +0300 Subject: [PATCH 356/356] Updated translations. --- imports/i18n/data/es.i18n.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 4f879845e..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__",