diff options
82 files changed, 421 insertions, 755 deletions
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index c2be3595..fa17ff1f 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive ENV \ DEBUG=false \ - NODE_VERSION=8.16.2 \ + NODE_VERSION=8.17.0 \ METEOR_RELEASE=1.8.1 \ USE_EDGE=false \ METEOR_EDGE=1.5-beta.17 \ diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml new file mode 100644 index 00000000..de27ed1a --- /dev/null +++ b/.github/workflows/dockerimage.yml @@ -0,0 +1,17 @@ +name: Docker Image CI + +on: + push: + branches: + - master + +jobs: + + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Build the Docker image + run: docker build . --file Dockerfile --tag wekan:$(date +%s) diff --git a/.meteor/.finished-upgraders b/.meteor/.finished-upgraders index 8f397c7d..bc5b50f7 100644 --- a/.meteor/.finished-upgraders +++ b/.meteor/.finished-upgraders @@ -17,3 +17,4 @@ notices-for-facebook-graph-api-2 1.4.3-split-account-service-packages 1.5-add-dynamic-import-package 1.7-split-underscore-from-meteor-base +1.8.3-split-jquery-from-blaze diff --git a/.meteor/packages b/.meteor/packages index 7fa85bee..8d25f206 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -6,9 +6,9 @@ meteor-base@1.4.0 # Build system -ecmascript@0.13.0 +ecmascript@0.13.2 standard-minifier-css@1.5.4 -standard-minifier-js@2.5.0 +standard-minifier-js@2.5.2 mquandalle:jade # Polyfills @@ -75,7 +75,7 @@ horka:swipebox dynamic-import@0.5.1 staringatlights:fast-render -accounts-password@1.5.1 +accounts-password@1.5.2 cfs:gridfs rzymek:fullcalendar momentjs:moment@2.22.2 diff --git a/.meteor/release b/.meteor/release index 250a263b..bfccdc2c 100644 --- a/.meteor/release +++ b/.meteor/release @@ -1 +1 @@ -METEOR@1.8.2 +METEOR@1.8.3 diff --git a/.meteor/versions b/.meteor/versions index 2b21c42e..ce5a6635 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -1,7 +1,7 @@ 3stack:presence@1.1.2 accounts-base@1.4.5 accounts-oauth@1.1.16 -accounts-password@1.5.1 +accounts-password@1.5.2 aldeed:collection2@2.10.0 aldeed:collection2-core@1.2.0 aldeed:schema-deny@1.1.0 @@ -12,11 +12,11 @@ allow-deny@1.1.0 arillo:flow-router-helpers@0.5.2 audit-argument-checks@1.0.7 autoupdate@1.6.0 -babel-compiler@7.4.0 +babel-compiler@7.4.2 babel-runtime@1.4.0 base64@1.0.12 binary-heap@1.0.11 -blaze@2.3.3 +blaze@2.3.4 blaze-tools@1.0.10 boilerplate-generator@1.6.0 browser-policy-common@1.0.11 @@ -57,11 +57,11 @@ deps@1.0.12 diff-sequence@1.1.1 dynamic-import@0.5.1 easylogic:summernote@0.8.8 -ecmascript@0.13.0 +ecmascript@0.13.2 ecmascript-runtime@0.7.0 ecmascript-runtime-client@0.9.0 ecmascript-runtime-server@0.8.0 -ejson@1.1.0 +ejson@1.1.1 email@1.2.3 es5-shim@4.8.0 fastclick@1.0.13 @@ -91,7 +91,7 @@ logging@1.1.20 lucasantoniassi:accounts-lockout@1.0.0 matb33:collection-hooks@0.9.1 matteodem:easy-search@1.6.4 -mdg:meteor-apm-agent@3.2.3 +mdg:meteor-apm-agent@3.2.5 mdg:validation-error@0.5.1 meteor@1.9.3 meteor-base@1.4.0 @@ -102,7 +102,7 @@ meteorhacks:picker@1.0.3 meteorhacks:subs-manager@1.6.4 meteorspark:util@0.2.0 minifier-css@1.4.3 -minifier-js@2.5.0 +minifier-js@2.5.1 minifiers@1.1.8-faster-rebuild.0 minimongo@1.4.5 mobile-status-bar@1.0.14 @@ -168,7 +168,7 @@ spacebars@1.0.15 spacebars-compiler@1.1.3 srp@1.0.12 standard-minifier-css@1.5.4 -standard-minifier-js@2.5.0 +standard-minifier-js@2.5.2 staringatlights:fast-render@3.2.0 staringatlights:inject-data@2.3.0 tap:i18n@1.8.2 diff --git a/.travis.yml b/.travis.yml index 6f0a9e0a..68bd678a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ sudo: required env: TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0 - TRAVIS_NODE_VERSION: 8.16.2 + TRAVIS_NODE_VERSION: 8.17.0 TRAVIS_NPM_VERSION: latest before_install: diff --git a/CHANGELOG.md b/CHANGELOG.md index b34b69ae..5ca82ea4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,23 @@ +# Upcoming Wekan release + +This release adds the following updates: + +- [Upgrade to Meteor 1.8.3 and Node 8.17.0. Update release scripts. Fix ldap background sync documentation part 2](https://github.com/wekan/wekan/commit/782d0b620988628f40f50f9cd824f6652cfb0dd9). + +and fixes the following bugs: + +- [Fix: Don't add a blank space for empty custom fields on minicards](https://github.com/wekan/wekan/commit/e2a374f0aad8489a84d6de9966c281a812b5eca3). + Thanks to roobre and xet7. +- [Fix: Allow to set empty card title, AssignedBy and RequestedBy](https://github.com/wekan/wekan/commit/25561946edf37351f67cf7500902dde7d9114d2f). + Thanks to justinr1234 and xet7. +- [Fix comment text disappearing when clicking outside of comment text area. + Fix lint error.](https://github.com/wekan/wekan/commit/3b3950369ce07aa9e6fc4ab1bef9fb8a4993e398). + Thanks to xet7. +- [Fix ldap background sync documentation](https://github.com/wekan/wekan/pull/2855). + Thanks to koelle25. + +Thanks to above GitHub users for their contributions and translators for their translations. + # v3.56 2019-11-21 Wekan release This release adds the following updates: @@ -105,7 +125,7 @@ This release adds the following new features: mode](https://github.com/wekan/wekan/commits/77f8b76d4e13c35ea3451622176bbb69a4d39a32). Thanks to whowillcare. - Allow user to sort Lists in Board by his own preference boardadmin can star - list [1](https://github.com/wekan/wekan/commit/bc2a20f04e32607f8488a9cecd815647fb43e40e), + list [1](https://github.com/wekan/wekan/commit/bc2a20f04e32607f8488a9cecd815647fb43e40e), [2](https://github.com/wekan/wekan/commit/bc2a20f04e32607f8488a9cecd815647fb43e40e). Thanks to whowillcare. - [Allowing user to filter list in Filter function not just cards @@ -222,7 +242,7 @@ This release adds the following new features: NOTIFY_DUE_DAYS_BEFORE_AND_AFTER = 2,0 it means notification will be sent on both due day and two days before. Thanks to whowillcare. - [Added modifications the help files, related to NOTIFY_DUE_DAYS_BEFORE_AND_AFTER](https://github.com/wekan/wekan/pull/2740). - Thanks to whowillcare. + Thanks to whowillcare. and fixes the following bugs: @@ -273,7 +293,7 @@ This release adds the following new features: - [More Mobile and Desktop drag handles for Swimlanes/Lists/Cards. Part 1](https://github.com/wekan/wekan/commit/ff550e91103115e7b731dd80c4588b93b2d4c64f). Thanks to xet7. - + Thanks to above GitHub users for their contributions and translators for their translations. # v3.40 2019-09-11 Wekan release @@ -682,7 +702,7 @@ This release fixes the following bugs: - [Add missing dependencies back and revert deleting phantomjs](https://github.com/wekan/wekan/commit/32e9aa0ddaf1b015825b8c62ad17ed74b449e4b1). Thanks to whowillcare and xet7. - + Thanks to above GitHub users for their contributions and translators for their translations. # v3.09 2019-08-07 Wekan release @@ -6,7 +6,7 @@ LABEL maintainer="wekan" # ENV BUILD_DEPS="paxctl" ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \ DEBUG=false \ - NODE_VERSION=v8.16.2 \ + NODE_VERSION=v8.17.0 \ METEOR_RELEASE=1.8.1 \ USE_EDGE=false \ METEOR_EDGE=1.5-beta.17 \ diff --git a/client/components/activities/comments.js b/client/components/activities/comments.js index 95084646..50ca019b 100644 --- a/client/components/activities/comments.js +++ b/client/components/activities/comments.js @@ -16,9 +16,6 @@ BlazeComponent.extendComponent({ events() { return [ { - 'click .js-new-comment:not(.focus)'() { - commentFormIsOpen.set(true); - }, 'submit .js-new-comment-form'(evt) { const input = this.getInput(); const text = input.val().trim(); diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index 7bb54223..67120043 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -291,6 +291,8 @@ BlazeComponent.extendComponent({ .trim(); if (title) { this.data().setTitle(title); + } else { + this.data().setTitle(''); } }, 'submit .js-card-details-assigner'(event) { @@ -300,6 +302,8 @@ BlazeComponent.extendComponent({ .trim(); if (assigner) { this.data().setAssignedBy(assigner); + } else { + this.data().setAssignedBy(''); } }, 'submit .js-card-details-requester'(event) { @@ -309,6 +313,8 @@ BlazeComponent.extendComponent({ .trim(); if (requester) { this.data().setRequestedBy(requester); + } else { + this.data().setRequestedBy(''); } }, 'click .js-member': Popup.open('cardMember'), diff --git a/client/components/cards/minicard.jade b/client/components/cards/minicard.jade index 79672f8c..7dd220ee 100644 --- a/client/components/cards/minicard.jade +++ b/client/components/cards/minicard.jade @@ -67,14 +67,15 @@ template(name="minicard") .minicard-custom-fields each customFieldsWD if definition.showOnCard - .minicard-custom-field - if definition.showLabelOnMiniCard + if trueValue + .minicard-custom-field + if definition.showLabelOnMiniCard + .minicard-custom-field-item + +viewer + = definition.name .minicard-custom-field-item +viewer - = definition.name - .minicard-custom-field-item - +viewer - = trueValue + = trueValue if getAssignees .minicard-assignees.js-minicard-assignees diff --git a/client/components/users/userHeader.js b/client/components/users/userHeader.js index e0c6218e..5f36ef54 100644 --- a/client/components/users/userHeader.js +++ b/client/components/users/userHeader.js @@ -180,24 +180,20 @@ Template.changeSettingsPopup.helpers({ currentUser = Meteor.user(); if (currentUser) { return (currentUser.profile || {}).showDesktopDragHandles; + } else if (cookies.has('showDesktopDragHandles')) { + return true; } else { - if (cookies.has('showDesktopDragHandles')) { - return true; - } else { - return false; - } + return false; } }, hiddenSystemMessages() { currentUser = Meteor.user(); if (currentUser) { return (currentUser.profile || {}).hasHiddenSystemMessages; + } else if (cookies.has('hasHiddenSystemMessages')) { + return true; } else { - if (cookies.has('hasHiddenSystemMessages')) { - return true; - } else { - return false; - } + return false; } }, showCardsCountAt() { @@ -205,8 +201,6 @@ Template.changeSettingsPopup.helpers({ if (currentUser) { return Meteor.user().getLimitToShowCardsCount(); } else { - import { Cookies } from 'meteor/ostrio:cookies'; - const cookies = new Cookies(); return cookies.get('limitToShowCardsCount'); } }, @@ -217,24 +211,20 @@ Template.changeSettingsPopup.events({ currentUser = Meteor.user(); if (currentUser) { Meteor.call('toggleDesktopDragHandles'); + } else if (cookies.has('showDesktopDragHandles')) { + cookies.remove('showDesktopDragHandles'); } else { - if (cookies.has('showDesktopDragHandles')) { - cookies.remove('showDesktopDragHandles'); - } else { - cookies.set('showDesktopDragHandles', 'true'); - } + cookies.set('showDesktopDragHandles', 'true'); } }, 'click .js-toggle-system-messages'() { currentUser = Meteor.user(); if (currentUser) { Meteor.call('toggleSystemMessages'); + } else if (cookies.has('hasHiddenSystemMessages')) { + cookies.remove('hasHiddenSystemMessages'); } else { - if (cookies.has('hasHiddenSystemMessages')) { - cookies.remove('hasHiddenSystemMessages'); - } else { - cookies.set('hasHiddenSystemMessages', 'true'); - } + cookies.set('hasHiddenSystemMessages', 'true'); } }, 'click .js-apply-show-cards-at'(event, templateInstance) { diff --git a/docker-compose.yml b/docker-compose.yml index 0dae2c26..cfe645f1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -440,10 +440,10 @@ 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 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='' + # At which interval does the background task sync. + # 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_KEEP_EXISTANT_USERS_UPDATED=false # diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json index dc777881..a9d44fac 100644 --- a/i18n/ar.i18n.json +++ b/i18n/ar.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "يمكن التعليق على بطاقات فقط.", "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": "حاسوب", "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json index acfc605f..879124d0 100644 --- a/i18n/bg.i18n.json +++ b/i18n/bg.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Може да коментира само в карти.", "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": "Компютър", "confirm-subtask-delete-dialog": "Сигурен ли сте, че искате да изтриете подзадачата?", "confirm-checklist-delete-dialog": "Сигурни ли сте, че искате да изтриете този чеклист?", diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json index 1d38911e..05ce8197 100644 --- a/i18n/br.i18n.json +++ b/i18n/br.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json index 8a57e94c..e49f8a26 100644 --- a/i18n/ca.i18n.json +++ b/i18n/ca.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Només pots fer comentaris a les fitxes", "no-comments": "Sense comentaris", "no-comments-desc": "Can not see comments and activities.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", "computer": "Ordinador", "confirm-subtask-delete-dialog": "Esteu segur que voleu eliminar la subtasca?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json index d09a5dbc..42aafea0 100644 --- a/i18n/cs.i18n.json +++ b/i18n/cs.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Může přidávat komentáře pouze do karet.", "no-comments": "Žádné komentáře", "no-comments-desc": "Nemůže vidět komentáře a aktivity", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", "computer": "Počítač", "confirm-subtask-delete-dialog": "Opravdu chcete smazat tento podúkol?", "confirm-checklist-delete-dialog": "Opravdu chcete smazat tento checklist?", diff --git a/i18n/da.i18n.json b/i18n/da.i18n.json index 29c74d42..62f92635 100644 --- a/i18n/da.i18n.json +++ b/i18n/da.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index 579df952..3704b5b9 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -137,7 +137,7 @@ "board-view": "Boardansicht", "board-view-cal": "Kalender", "board-view-swimlanes": "Swimlanes", - "board-view-collapse": "Collapse", + "board-view-collapse": "Einklappen", "board-view-lists": "Listen", "bucket-example": "z.B. \"Löffelliste\"", "cancel": "Abbrechen", @@ -223,6 +223,8 @@ "comment-only-desc": "Kann Karten nur kommentieren.", "no-comments": "Keine Kommentare", "no-comments-desc": "Kann keine Kommentare und Aktivitäten sehen.", + "worker": "Arbeiter", + "worker-desc": "Kann nur Karten verschieben, sich selbst zuweisen und kommentieren.", "computer": "Computer", "confirm-subtask-delete-dialog": "Wollen Sie die Teilaufgabe wirklich löschen?", "confirm-checklist-delete-dialog": "Wollen Sie die Checkliste wirklich löschen?", diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json index 2a3fc9ad..4ffe424a 100644 --- a/i18n/el.i18n.json +++ b/i18n/el.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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": "Υπολογιστής", "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index cab60a9d..64f01ea0 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index fb8370e5..64fada1a 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json index ed223199..e55286aa 100644 --- a/i18n/eo.i18n.json +++ b/i18n/eo.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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": "Komputilo", "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json index f63b5fc3..814d2d74 100644 --- a/i18n/es-AR.i18n.json +++ b/i18n/es-AR.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Puede comentar en tarjetas solamente.", "no-comments": "Sin comentarios", "no-comments-desc": "Can not see comments and activities.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", "computer": "Computadora", "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index 32cf26ea..f47e3c02 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -137,7 +137,7 @@ "board-view": "Vista del tablero", "board-view-cal": "Calendario", "board-view-swimlanes": "Carriles", - "board-view-collapse": "Collapse", + "board-view-collapse": "Contraer", "board-view-lists": "Listas", "bucket-example": "Como “Cosas por hacer” por ejemplo", "cancel": "Cancelar", @@ -223,6 +223,8 @@ "comment-only-desc": "Solo puedes comentar en las tarjetas.", "no-comments": "No hay comentarios", "no-comments-desc": "No se pueden mostrar comentarios ni actividades.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", "computer": "el ordenador", "confirm-subtask-delete-dialog": "¿Seguro que quieres eliminar la subtarea?", "confirm-checklist-delete-dialog": "¿Seguro que quieres eliminar la lista de verificación?", @@ -750,6 +752,6 @@ "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", - "assignee": "Assignee", - "cardAssigneesPopup-title": "Assignee" + "assignee": "Asignado", + "cardAssigneesPopup-title": "Asignado" } diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json index aebee0f5..d4f81756 100644 --- a/i18n/eu.i18n.json +++ b/i18n/eu.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Iruzkinak txarteletan soilik egin ditzake", "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": "Ordenagailua", "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json index 3471a37e..9b5f686c 100644 --- a/i18n/fa.i18n.json +++ b/i18n/fa.i18n.json @@ -1,45 +1,45 @@ { "accept": "پذیرش", "act-activity-notify": "اعلان فعالیت", - "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-addAttachment": "ضمیمه __attachment__ را به کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ اضافه کرد", + "act-deleteAttachment": "ضمیمه __attachment__ را از کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ حذف کرد", + "act-addSubtask": "زیر وظیفه __subtask__ را به کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ اضافه کرد", + "act-addLabel": "برچسب __label__ را به کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ اضافه کرد", + "act-addedLabel": "برچسب __label__ را به کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ اضافه کرد", + "act-removeLabel": "برچسب __label__ را از کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ حذف کرد", + "act-removedLabel": "برچسب __label__ را از کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ حذف کرد", + "act-addChecklist": "سیاهه __checklist__ را به کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ اضافه کرد", + "act-addChecklistItem": "چک لیست __checklistItem__ را به سیاهه __checklist__ در کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ اضافه کرد", + "act-removeChecklist": "سیاهه __checklist__ را از کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ حذف کرد", + "act-removeChecklistItem": "چک لیست __checklistItem__ را از سیاهه __checkList__ در کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ حذف کرد", + "act-checkedItem": "چک لیست __checklistItem__ را از سیاهه __checklist__ در کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ تیک زد", + "act-uncheckedItem": "چک لیست __checklistItem__ را از سیاهه __checklist__ در کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ بدونِ تیک کرد", + "act-completeChecklist": "سیاهه __checklist__ را در کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ کامل کرد", + "act-uncompleteChecklist": "سیاهه __checklist__ را در کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ ناقص کرد", + "act-addComment": "روی کارت __card__ نظر داد: __comment__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__", + "act-editComment": "نظر روی کارت __card__ را ویرایش کرد: __comment__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__", + "act-deleteComment": "نظر روی کارت __card__ را حذف کرد: __comment__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__", + "act-createBoard": "برد __board__ را ایجاد کرد", + "act-createSwimlane": "مسیر شناور __swimlane__ را در برد __board__ ایجاد کرد", + "act-createCard": "کارت __card__ را در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ ایجاد کرد", + "act-createCustomField": "فیلد شخصی __customField__ را در برد __board__ ایجاد کرد", + "act-deleteCustomField": "فیلد شخصی __customField__ را در برد __board__ حذف کرد", + "act-setCustomField": "فیلد شخصی __customField__ را ویرایش کرد: __customFieldValue__ در کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__", + "act-createList": "لیست __list__ را به برد __board__ اضافه کرد", + "act-addBoardMember": "عضو __member__ را به برد __board__ اضافه کرد", + "act-archivedBoard": "برد __board__ را بایگانی کرد", + "act-archivedCard": "کارت __card__ را در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ بایگانی کرد", + "act-archivedList": "لیست __list__ را در مسیر شناور __swimlane__ در برد __board__ بایگانی کرد", + "act-archivedSwimlane": "مسیر شناور __swimlane__ را در برد __board__ بایگانی کرد", + "act-importBoard": "برد __board__ را وارد کرد", + "act-importCard": "کارت __card__ را به لیست __list__ در مسیر شناور __swimlane__ در برد __board__ وارد کرد", + "act-importList": "لیست __list__ را به مسیر شناور __swimlane__ در برد __board__ وارد کرد", + "act-joinMember": "عضو __member__ را به کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ اضافه کرد", + "act-moveCard": "کارت __card__ را در برد __board__ از لیست __oldList__ در مسیر شناور __oldSwimlane__ به لیست __list__ در مسیر شناور __swimlane__ منتقل کرد", + "act-moveCardToOtherBoard": "کارت __card__ را از لیست __oldList__ در مسیر شناور __oldSwimlane__ در برد __oldBoard__ به لیست __list__ در مسیر شناور __swimlane__ در برد __board__ منتقل کرد", + "act-removeBoardMember": "عضو __member__ را از برد __board__ حذف کرد", + "act-restoredCard": "کارت __card__ را به لیست __list__ در مسیر شناور __swimlane__ در برد __board__ بازگرداند", + "act-unjoinMember": "عضو __member__ را از کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ حذف کرد", "act-withBoardTitle": "__board__", "act-withCardTitle": "[__board__] __card__", "actions": "اعمال", @@ -64,21 +64,21 @@ "activity-unchecked-item": "چک نشده %s در چک لیست %s از %s", "activity-checklist-added": "سیاهه به %s اضافه شد", "activity-checklist-removed": "از چک لیست حذف گردید", - "activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checklist-completed": "سیاهه __checklist__ را در کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ کامل کرد", "activity-checklist-uncompleted": "تمام نشده ها در چک لیست %s از %s", "activity-checklist-item-added": "added checklist item to '%s' in %s", "activity-checklist-item-removed": "حذف شده از چک لیست '%s' در %s", "add": "افزودن", "activity-checked-item-card": "چک شده %s در چک لیست %s", "activity-unchecked-item-card": "چک نشده %s در چک لیست %s", - "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checklist-completed-card": "سیاهه __checklist__ را در کارت __card__ در لیست __list__ در مسیر شناور __swimlane__ در برد __board__ کامل کرد", "activity-checklist-uncompleted-card": "چک لیست تمام نشده %s", - "activity-editComment": "edited comment %s", - "activity-deleteComment": "deleted comment %s", + "activity-editComment": "نظر ویرایش شد %s", + "activity-deleteComment": "نظر حذف شد %s", "add-attachment": "افزودن ضمیمه", "add-board": "افزودن برد", "add-card": "افزودن کارت", - "add-swimlane": "Add Swimlane", + "add-swimlane": "اضافه کردن مسیر شناور", "add-subtask": "افزودن زیر وظیفه", "add-checklist": "افزودن چک لیست", "add-checklist-item": "افزودن مورد به سیاهه", @@ -89,11 +89,11 @@ "added": "اضافه گردید", "addMemberPopup-title": "اعضا", "admin": "مدیر", - "admin-desc": "امکان دیدن و ویرایش کارتها،پاک کردن کاربران و تغییر تنظیمات برای تخته", + "admin-desc": "امکان دیدن و ویرایش کارتها، پاک کردن کاربران و تغییر تنظیمات برای برد.", "admin-announcement": "اعلان", "admin-announcement-active": "اعلان سراسری فعال", "admin-announcement-title": "اعلان از سوی مدیر", - "all-boards": "تمام تختهها", + "all-boards": "تمام بردها", "and-n-other-card": "و __count__ کارت دیگر", "and-n-other-card_plural": "و __count__ کارت دیگر", "apply": "اعمال", @@ -108,7 +108,7 @@ "archiveBoardPopup-title": "انتقال برد به آرشیو؟", "archived-items": "بایگانی", "archived-boards": "برد های داخل آرشیو", - "restore-board": "بازیابی تخته", + "restore-board": "بازیابی برد", "no-archived-boards": "هیچ بردی داخل آرشیو نیست", "archives": "بایگانی", "template": "Template", @@ -119,22 +119,22 @@ "attachment-delete-pop": "حذف پیوست دایمی و بی بازگشت خواهد بود.", "attachmentDeletePopup-title": "آیا می خواهید ضمیمه را حذف کنید؟", "attachments": "ضمائم", - "auto-watch": "اضافه شدن خودکار دیده بانی تخته زمانی که ایجاد می شوند", + "auto-watch": "اضافه شدن خودکار دیدهبانی بردها زمانی که ایجاد میشوند", "avatar-too-big": "تصویر کاربر بسیار بزرگ است ـ حداکثر۷۰ کیلوبایت ـ", "back": "بازگشت", "board-change-color": "تغییر رنگ", "board-nb-stars": "%s ستاره", - "board-not-found": "تخته مورد نظر پیدا نشد", - "board-private-info": "این تخته <strong>خصوصی</strong> خواهد بود.", - "board-public-info": "این تخته <strong>عمومی</strong> خواهد بود.", - "boardChangeColorPopup-title": "تغییر پس زمینه تخته", - "boardChangeTitlePopup-title": "تغییر نام تخته", + "board-not-found": "برد مورد نظر پیدا نشد", + "board-private-info": "این برد <strong>خصوصی</strong> خواهد بود.", + "board-public-info": "این برد <strong>عمومی</strong> خواهد بود.", + "boardChangeColorPopup-title": "تغییر پس زمینه برد", + "boardChangeTitlePopup-title": "تغییر نام برد", "boardChangeVisibilityPopup-title": "تغییر وضعیت نمایش", "boardChangeWatchPopup-title": "تغییر دیده بانی", "boardMenuPopup-title": "Board Settings", - "boardChangeViewPopup-title": "نمایش تخته", - "boards": "تختهها", - "board-view": "نمایش تخته", + "boardChangeViewPopup-title": "نمایش برد", + "boards": "بردها", + "board-view": "نمایش برد", "board-view-cal": "تقویم", "board-view-swimlanes": "Swimlanes", "board-view-collapse": "Collapse", @@ -172,7 +172,7 @@ "casSignIn": "ورود با استفاده از CAS", "cardType-card": "کارت", "cardType-linkedCard": "کارتهای مرتبط", - "cardType-linkedBoard": "تختههای مرتبط", + "cardType-linkedBoard": "برد مرتبط", "change": "تغییر", "change-avatar": "تغییر تصویر", "change-password": "تغییر کلمه عبور", @@ -223,6 +223,8 @@ "comment-only-desc": "فقط میتواند روی کارتها نظر دهد.", "no-comments": "هیچ کامنتی موجود نیست", "no-comments-desc": "نظرات و فعالیت ها را نمی توان دید.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", "computer": "رایانه", "confirm-subtask-delete-dialog": "از حذف این زیر وظیفه اطمینان دارید؟", "confirm-checklist-delete-dialog": "مطمئنا چک لیست پاک شود؟", @@ -234,8 +236,8 @@ "copyChecklistToManyCardsPopup-instructions": "عنوان و توضیحات کارت مقصد در این قالب JSON", "copyChecklistToManyCardsPopup-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": "ایجاد", - "createBoardPopup-title": "ایجاد تخته", - "chooseBoardSourcePopup-title": "بارگذاری تخته", + "createBoardPopup-title": "ایجاد برد", + "chooseBoardSourcePopup-title": "بارگذاری برد", "createLabelPopup-title": "ایجاد برچسب", "createCustomField": "ایجاد فیلد", "createCustomFieldPopup-title": "ایجاد فیلد", @@ -283,16 +285,16 @@ "email-invalid": "رایانامه نادرست", "email-invite": "دعوت از طریق رایانامه", "email-invite-subject": "__inviter__ برای شما دعوت نامه ارسال کرده است", - "email-invite-text": "__User__ عزیز\n __inviter__ شما را به عضویت تخته \"__board__\" برای همکاری دعوت کرده است.\nلطفا لینک زیر را دنبال کنید، باتشکر:\n__url__", + "email-invite-text": "__User__ عزیز\n __inviter__ شما را به عضویت برد \"__board__\" برای همکاری دعوت کرده است.\nلطفا لینک زیر را دنبال کنید، باتشکر:\n__url__", "email-resetPassword-subject": "تنظیم مجدد کلمه عبور در __siteName__", "email-resetPassword-text": "سلام __user__\nجهت تنظیم مجدد کلمه عبور آدرس زیر را دنبال نمایید، باتشکر:\n__url__", "email-sent": "نامه الکترونیکی فرستاده شد", "email-verifyEmail-subject": "تایید آدرس الکترونیکی شما در __siteName__", "email-verifyEmail-text": "سلام __user__\nبه منظور تایید آدرس الکترونیکی حساب خود، آدرس زیر را دنبال نمایید، باتشکر:\n__url__.", "enable-wip-limit": "Enable WIP Limit", - "error-board-doesNotExist": "تخته مورد نظر وجود ندارد", - "error-board-notAdmin": "شما جهت انجام آن باید مدیر تخته باشید", - "error-board-notAMember": "شما انجام آن ،اید عضو این تخته باشید.", + "error-board-doesNotExist": "برد مورد نظر وجود ندارد", + "error-board-notAdmin": "شما جهت انجام آن باید مدیر برد باشید", + "error-board-notAMember": "شما برای انجام آن، باید عضو این برد باشید", "error-json-malformed": "متن درغالب صحیح Json نمی باشد.", "error-json-schema": "داده های Json شما، شامل اطلاعات صحیح در غالب درستی نمی باشد.", "error-list-doesNotExist": "این لیست موجود نیست", @@ -301,9 +303,9 @@ "error-user-notCreated": "این کاربر ایجاد نشده است", "error-username-taken": "این نام کاربری استفاده شده است", "error-email-taken": "رایانامه توسط گیرنده دریافت شده است", - "export-board": "انتقال به بیرون تخته", - "sort": "Sort", - "sort-desc": "Click to Sort List", + "export-board": "انتقال به بیرون برد", + "sort": "مرتب سازی", + "sort-desc": "برای مرتب سازی لیست کلیک کنید", "list-sort-by": "Sort the List By:", "list-label-modifiedAt": "Last Access Time", "list-label-title": "Name of the List", @@ -311,30 +313,30 @@ "list-label-short-modifiedAt": "(L)", "list-label-short-title": "(N)", "list-label-short-sort": "(M)", - "filter": "صافی ـFilterـ", + "filter": "صافی ـ فیلتر ـ", "filter-cards": "Filter Cards or Lists", "list-filter-label": "Filter List by Title", - "filter-clear": "حذف صافی ـFilterـ", + "filter-clear": "حذف صافی ـ فیلتر ـ", "filter-no-label": "بدون برچسب", "filter-no-member": "بدون عضو", "filter-no-custom-fields": "هیچ فیلدشخصی ای وجود ندارد", "filter-show-archive": "Show archived lists", "filter-hide-empty": "Hide empty lists", - "filter-on": "صافی ـFilterـ فعال است", - "filter-on-desc": "شما صافی ـFilterـ برای کارتهای تخته را روشن کرده اید. جهت ویرایش کلیک نمایید.", - "filter-to-selection": "صافی ـFilterـ برای موارد انتخابی", - "advanced-filter-label": "صافی پیشرفته", + "filter-on": "صافی ـ فیلتر ـ فعال است", + "filter-on-desc": "شما درحال صافی ـ فیلتر ـ کارتهای این برد هستید. برای ویرایش فیلتر کلیک نمایید.", + "filter-to-selection": "صافی ـ فیلتر ـ برای موارد انتخابی", + "advanced-filter-label": "صافی ـ فیلتر ـ پیشرفته", "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": "بازگشت به صفحه تخته.", + "header-logo-title": "بازگشت به صفحه بردها.", "hide-system-messages": "عدم نمایش پیامهای سیستمی", - "headerBarCreateBoardPopup-title": "ایجاد تخته", + "headerBarCreateBoardPopup-title": "ایجاد برد", "home": "خانه", "import": "وارد کردن", "link": "ارتباط", - "import-board": "وارد کردن تخته", - "import-board-c": "وارد کردن تخته", - "import-board-title-trello": "وارد کردن تخته از Trello", + "import-board": "وارد کردن برد", + "import-board-c": "وارد کردن برد", + "import-board-title-trello": "وارد کردن برد از Trello", "import-board-title-wekan": "بارگذاری برد ها از آخرین خروجی", "import-sandstorm-backup-warning": "قبل از بررسی این داده ها را از صفحه اصلی صادر شده یا Trello وارد نمیکنید این دانه دوباره باز می شود و یا دوباره باز می شود، یا برد را پیدا نمی کنید، این بدان معنی است که از دست دادن اطلاعات.", "import-sandstorm-warning": "Imported board will delete all existing data on board and replace it with imported board.", @@ -355,7 +357,7 @@ "invalid-time": "زمان نامعتبر", "invalid-user": "کاربر نامعتیر", "joined": "متصل", - "just-invited": "هم اکنون، شما به این تخته دعوت شده اید.", + "just-invited": "هم اکنون، شما به این برد دعوت شدهاید.", "keyboard-shortcuts": "میانبر کلیدها", "label-create": "ایجاد برچسب", "label-default": "%s برچسب(پیش فرض)", @@ -363,7 +365,7 @@ "labels": "برچسب ها", "language": "زبان", "last-admin-desc": "شما نمی توانید نقش ـroleـ را تغییر دهید چراکه باید حداقل یک مدیری وجود داشته باشد.", - "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": "ارجاع به این کارت", @@ -396,8 +398,8 @@ "multi-selection": "امکان چند انتخابی", "multi-selection-on": "حالت چند انتخابی روشن است", "muted": "بی صدا", - "muted-info": "شما هیچگاه از تغییرات این تخته مطلع نخواهید شد", - "my-boards": "تختههای من", + "muted-info": "شما هیچگاه از تغییرات این برد مطلع نخواهید شد", + "my-boards": "بردهای من", "name": "نام", "no-archived-cards": "هیچ کارتی در آرشیو موجود نمی باشد", "no-archived-lists": "هیچ لیستی در آرشیو موجود نمی باشد", @@ -407,7 +409,7 @@ "normal-desc": "امکان نمایش و تنظیم کارت بدون امکان تغییر تنظیمات", "not-accepted-yet": "دعوت نامه هنوز پذیرفته نشده است", "notify-participate": "اطلاع رسانی از هرگونه تغییر در کارتهایی که ایجاد کرده اید ویا عضو آن هستید", - "notify-watch": "اطلاع رسانی از هرگونه تغییر در تخته، لیست یا کارتهایی که از آنها دیده بانی میکنید", + "notify-watch": "اطلاع رسانی از هرگونه تغییر در بردها، لیستها یا کارتهایی که از آنها دیدهبانی میکنید", "optional": "انتخابی", "or": "یا", "page-maybe-private": "این صفحه ممکن است خصوصی باشد. شما با<a href='%s'>ورود</a> میتوانید آن را ببینید.", @@ -419,21 +421,21 @@ "previewAttachedImagePopup-title": "پیشنمایش", "previewClipboardImagePopup-title": "پیشنمایش", "private": "خصوصی", - "private-desc": "این تخته خصوصی است. فقط تنها افراد اضافه شده به آن می توانند مشاهده و ویرایش کنند.", + "private-desc": "این برد خصوصی است. فقط افراد اضافه شده به برد میتوانند مشاهده و ویرایش کنند.", "profile": "حساب کاربری", "public": "عمومی", - "public-desc": "این تخته عمومی است. برای هر کسی با آدرس ویا جستجو درموتورها مانند گوگل قابل مشاهده است . فقط افرادی که به آن اضافه شده اند امکان ویرایش دارند.", - "quick-access-description": "جهت افزودن یک تخته به اینجا،آنرا ستاره دار نمایید.", + "public-desc": "این برد عمومی است. برای هر کسی با آدرس و یا جستجو در موتورها مانند گوگل قابل مشاهده است. فقط افرادی که به برد اضافه شدهاند امکان ویرایش دارند.", + "quick-access-description": "جهت افزودن یک برد به اینجا، آن را ستاره دار نمایید.", "remove-cover": "حذف کاور", - "remove-from-board": "حذف از تخته", + "remove-from-board": "حذف از برد", "remove-label": "حذف برچسب", "listDeletePopup-title": "حذف فهرست؟", "remove-member": "حذف عضو", "remove-member-from-card": "حذف از کارت", - "remove-member-pop": "آیا __name__ (__username__) را از __boardTitle__ حذف می کنید? کاربر از تمام کارت ها در این تخته حذف خواهد شد و آنها ازین اقدام مطلع خواهند شد.", + "remove-member-pop": "آیا __name__ (__username__) را از __boardTitle__ حذف میکنید؟ کاربر از تمام کارتها در این برد حذف خواهد شد. آنها از این اقدام مطلع خواهند شد.", "removeMemberPopup-title": "آیا می خواهید کاربر را حذف کنید؟", "rename": "تغیر نام", - "rename-board": "تغییر نام تخته", + "rename-board": "تغییر نام برد", "restore": "بازیابی", "save": "ذخیره", "search": "جستجو", @@ -446,22 +448,22 @@ "shortcut-assign-self": "اختصاص خود به کارت فعلی", "shortcut-autocomplete-emoji": "تکمیل خودکار شکلکها", "shortcut-autocomplete-members": "تکمیل خودکار کاربرها", - "shortcut-clear-filters": "حذف تمامی صافی ـfilterـ", + "shortcut-clear-filters": "حذف تمامی صافیها ـ فیلترها ـ", "shortcut-close-dialog": "بستن محاوره", "shortcut-filter-my-cards": "کارت های من", "shortcut-show-shortcuts": "بالا آوردن میانبر این لیست", - "shortcut-toggle-filterbar": "ضامن نوار جداکننده صافی ـfilterـ", - "shortcut-toggle-sidebar": "ضامن نوار جداکننده تخته", + "shortcut-toggle-filterbar": "ضامن نوار جداکننده صافی ـ فیلتر ـ", + "shortcut-toggle-sidebar": "ضامن نوار جداکننده برد", "show-cards-minimum-count": "نمایش تعداد کارتها اگر لیست شامل بیشتراز", "sidebar-open": "بازکردن جداکننده", "sidebar-close": "بستن جداکننده", "signupPopup-title": "ایجاد یک کاربر", - "star-board-title": "برای ستاره دادن، کلیک کنید.این در بالای لیست تخته های شما نمایش داده خواهد شد.", - "starred-boards": "تخته های ستاره دار", - "starred-boards-description": "تخته های ستاره دار در بالای لیست تخته ها نمایش داده می شود.", + "star-board-title": "برای ستاره دار کردن این برد کلیک کنید. این در بالای لیست بردهای شما نمایش داده خواهد شد.", + "starred-boards": "بردهای ستاره دار", + "starred-boards-description": "بردهای ستاره دار در بالای لیست بردها نمایش داده میشود.", "subscribe": "عضوشدن", "team": "تیم", - "this-board": "این تخته", + "this-board": "این برد", "this-card": "این کارت", "spent-time-hours": "زمان صرف شده (ساعت)", "overtime-hours": "Overtime (hours)", @@ -484,8 +486,8 @@ "warn-list-archived": "اخطار:این کارت در یک لیست در آرشیو موجود می باشد", "watch": "دیده بانی", "watching": "درحال دیده بانی", - "watching-info": "شما از هر تغییری دراین تخته آگاه خواهید شد", - "welcome-board": "به این تخته خوش آمدید", + "watching-info": "شما از هر تغییری در این برد آگاه خواهید شد", + "welcome-board": "به این برد خوش آمدید", "welcome-swimlane": "Milestone 1", "welcome-list1": "پایه ای ها", "welcome-list2": "پیشرفته", @@ -503,7 +505,7 @@ "disable-self-registration": "غیرفعالسازی خودثبتنامی", "invite": "دعوت", "invite-people": "دعوت از افراد", - "to-boards": "به تخته(ها)", + "to-boards": "به برد(ها)", "email-addresses": "نشانی رایانامه", "smtp-host-description": "آدرس سرور SMTP ای که پست الکترونیکی شما برروی آن است", "smtp-port-description": "شماره درگاه ـPortـ ای که سرور SMTP شما جهت ارسال از آن استفاده می کند", @@ -575,8 +577,8 @@ "requested-by": "تقاضا شده توسط", "board-delete-notice": "حذف دائمی است شما تمام لیست ها، کارت ها و اقدامات مرتبط با این برد را از دست خواهید داد.", "delete-board-confirm-popup": "تمام لیست ها، کارت ها، برچسب ها و فعالیت ها حذف خواهند شد و شما نمی توانید محتوای برد را بازیابی کنید. هیچ واکنشی وجود ندارد", - "boardDeletePopup-title": "حذف تخته؟", - "delete-board": "حذف تخته", + "boardDeletePopup-title": "حذف برد؟", + "delete-board": "حذف برد", "default-subtasks-board": "ریزکار برای __board__ برد", "default": "پیشفرض", "queue": "صف", @@ -697,7 +699,7 @@ "r-swimlane-name": "نام مسیر شناور", "r-board-note": "نکته: برای نمایش موارد ممکن کادر را خالی بگذارید.", "r-checklist-note": "نکته: چکلیستها باید توسط کاما از یکدیگر جدا شوند.", - "r-when-a-card-is-moved": "دمانی که یک کارت به لیست دیگری منتقل شد", + "r-when-a-card-is-moved": "زمانی که یک کارت به لیست دیگری منتقل شد", "r-set": "Set", "r-update": "Update", "r-datefield": "date field", diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json index 7249def3..7d55544b 100644 --- a/i18n/fi.i18n.json +++ b/i18n/fi.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Voi vain kommentoida kortteja", "no-comments": "Ei kommentteja", "no-comments-desc": "Ei voi nähdä kommentteja ja toimintaa.", + "worker": "Työntekijä", + "worker-desc": "Voi vain siirtää kortteja, valtuuttaa itsensä kortille ja kommentoida.", "computer": "Tietokone", "confirm-subtask-delete-dialog": "Haluatko varmasti poistaa alitehtävän?", "confirm-checklist-delete-dialog": "Haluatko varmasti poistaa tarkistuslistan?", diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index fa0b348c..47bf43cc 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -137,7 +137,7 @@ "board-view": "Vue du tableau", "board-view-cal": "Calendrier", "board-view-swimlanes": "Couloirs", - "board-view-collapse": "Collapse", + "board-view-collapse": "Diminuer", "board-view-lists": "Listes", "bucket-example": "Comme « todo list » par exemple", "cancel": "Annuler", @@ -223,6 +223,8 @@ "comment-only-desc": "Ne peut que commenter des cartes.", "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.", "computer": "Ordinateur", "confirm-subtask-delete-dialog": "Êtes-vous sûr de vouloir supprimer la sous-tâche ?", "confirm-checklist-delete-dialog": "Êtes-vous sûr de vouloir supprimer la checklist ?", diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json index 91ec6f06..904d882a 100644 --- a/i18n/gl.i18n.json +++ b/i18n/gl.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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": "Computador", "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index a7e8f6b2..e364d884 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "ניתן להגיב על כרטיסים בלבד.", "no-comments": "אין הערות", "no-comments-desc": "לא ניתן לצפות בתגובות ובפעילויות.", + "worker": "עובד/ת", + "worker-desc": "אפשר רק להעביר כרטיסים, להקצות כרטיסים לעצמו/ה ולהגיב.", "computer": "מחשב", "confirm-subtask-delete-dialog": "למחוק את תת המשימה?", "confirm-checklist-delete-dialog": "למחוק את רשימת המשימות?", diff --git a/i18n/hi.i18n.json b/i18n/hi.i18n.json index d44f6224..f99da128 100644 --- a/i18n/hi.i18n.json +++ b/i18n/hi.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "केवल कार्ड पर टिप्पणी कर सकते हैं।", "no-comments": "कोई टिप्पणी नहीं", "no-comments-desc": "टिप्पणियां और गतिविधियां नहीं देख पा रहे हैं।", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", "computer": "संगणक", "confirm-subtask-delete-dialog": "क्या आप वाकई उपकार्य हटाना चाहते हैं?", "confirm-checklist-delete-dialog": "क्या आप वाकई जांचसूची हटाना चाहते हैं?", diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json index 03c1257d..edf051f5 100644 --- a/i18n/hu.i18n.json +++ b/i18n/hu.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Csak megjegyzést írhat a kártyákhoz.", "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": "Számítógép", "confirm-subtask-delete-dialog": "Biztosan törölni szeretnél az alfeladatot?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json index 7e908938..71c63a1a 100644 --- a/i18n/hy.i18n.json +++ b/i18n/hy.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json index 7dc95256..cece83f9 100644 --- a/i18n/id.i18n.json +++ b/i18n/id.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Bisa komen hanya di kartu", "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": "Komputer", "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json index 31f3b098..5d39fbd2 100644 --- a/i18n/ig.i18n.json +++ b/i18n/ig.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json index b4b662d4..f9b64bac 100644 --- a/i18n/it.i18n.json +++ b/i18n/it.i18n.json @@ -17,13 +17,13 @@ "act-completeChecklist": "completata lista di controllo __checklist__ nella scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__", "act-uncompleteChecklist": "lista di controllo __checklist__ incompleta nella scheda __card__ della lista __list__ in corsia __swimlane__ della bacheca __board__", "act-addComment": "commento sulla scheda __card__: __comment__ nella lista __list__ della corsia __swimlane__ della bacheca __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-editComment": "commento modificato sulla scheda __card__: __commento__ nella lista __list__ nella swim lane __swimlane__ nella bacheca __board__", + "act-deleteComment": "commento eliminato sulla scheda __card__: __commento__ nella lista __list__ nella swim lane__ swimlane__ nella bacheca __board__", "act-createBoard": "bacheca __board__ creata", "act-createSwimlane": "creata corsia __swimlane__ alla bacheca __board__", "act-createCard": "scheda __card__ creata nella lista __list__ della corsia __swimlane__ della bacheca __board__", - "act-createCustomField": "created custom field __customField__ at board __board__", - "act-deleteCustomField": "deleted custom field __customField__ at board __board__", + "act-createCustomField": "creato campo personalizzato __customField__ nella bacheca __board", + "act-deleteCustomField": "campo personalizzato eliminato __customField__ nella bacheca __board", "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "aggiunta lista __list__ alla bacheca __board__", "act-addBoardMember": "aggiunto membro __member__ alla bacheca __board__", @@ -73,8 +73,8 @@ "activity-unchecked-item-card": "%s è stato deselezionato nella checklist %s", "activity-checklist-completed-card": "checklist __label__ completata nella scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__", "activity-checklist-uncompleted-card": "La checklist %s non è completa", - "activity-editComment": "edited comment %s", - "activity-deleteComment": "deleted comment %s", + "activity-editComment": "commento modificato %s", + "activity-deleteComment": "commento eliminato %s", "add-attachment": "Aggiungi Allegato", "add-board": "Aggiungi Bacheca", "add-card": "Aggiungi Scheda", @@ -223,6 +223,8 @@ "comment-only-desc": "Puoi commentare solo le schede.", "no-comments": "Non ci sono commenti.", "no-comments-desc": "Impossibile visualizzare commenti o attività.", + "worker": "Worker", + "worker-desc": "Può solo spostare schede, assegnarsi una scheda e commentare.", "computer": "Computer", "confirm-subtask-delete-dialog": "Sei sicuro di voler eliminare il sotto-compito?", "confirm-checklist-delete-dialog": "Sei sicuro di voler eliminare la checklist?", @@ -302,18 +304,18 @@ "error-username-taken": "Questo username è già utilizzato", "error-email-taken": "L'email è già stata presa", "export-board": "Esporta bacheca", - "sort": "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", + "sort": "Ordina", + "sort-desc": "Clicca per ordinare la lista", + "list-sort-by": "Ordina la lista per:", + "list-label-modifiedAt": "Orario ultimo accesso", + "list-label-title": "Nome della lista", "list-label-sort": "Your Manual Order", "list-label-short-modifiedAt": "(L)", "list-label-short-title": "(N)", "list-label-short-sort": "(M)", "filter": "Filtra", - "filter-cards": "Filter Cards or Lists", - "list-filter-label": "Filter List by Title", + "filter-cards": "Filtra schede o liste", + "list-filter-label": "Filtra lista per titolo", "filter-clear": "Pulisci filtri", "filter-no-label": "Nessuna etichetta", "filter-no-member": "Nessun membro", @@ -438,7 +440,7 @@ "save": "Salva", "search": "Cerca", "rules": "Regole", - "search-cards": "Search from card/list titles and descriptions on this board", + "search-cards": "Ricerca per titolo e descrizione scheda/lista su questa bacheca", "search-example": "Testo da ricercare?", "select-color": "Seleziona Colore", "set-wip-limit-value": "Seleziona un limite per il massimo numero di attività in questa lista", @@ -522,13 +524,13 @@ "email-smtp-test-text": "Hai inviato un'email con successo", "error-invitation-code-not-exist": "Il codice d'invito non esiste", "error-notAuthorized": "Non sei autorizzato ad accedere a questa pagina.", - "webhook-title": "Webhook Name", - "webhook-token": "Token (Optional for Authentication)", + "webhook-title": "Nome Webhook", + "webhook-token": "Token (facoltativo per l'autenticazione)", "outgoing-webhooks": "Server esterni", "bidirectional-webhooks": "Two-Way Webhooks", "outgoingWebhooksPopup-title": "Server esterni", "boardCardTitlePopup-title": "Filtro per Titolo Scheda", - "disable-webhook": "Disable This Webhook", + "disable-webhook": "Disattiva questo Webhook", "global-webhook": "Global Webhooks", "new-outgoing-webhook": "Nuovo webhook in uscita", "no-name": "(Sconosciuto)", @@ -706,7 +708,7 @@ "r-df-end-at": "fine", "r-df-received-at": "ricevuta", "r-to-current-datetime": "to current date/time", - "r-remove-value-from": "Remove value from", + "r-remove-value-from": "Rimuovi valore da", "ldap": "LDAP", "oauth2": "Oauth2", "cas": "CAS", diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index 5b2f6cad..2721ab47 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "カードにのみコメント可能", "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": "コンピューター", "confirm-subtask-delete-dialog": "本当にサブタスクを削除してもよろしいでしょうか?", "confirm-checklist-delete-dialog": "本当にチェックリストを削除してもよろしいでしょうか?", diff --git a/i18n/ka.i18n.json b/i18n/ka.i18n.json index 274953c1..42a62714 100644 --- a/i18n/ka.i18n.json +++ b/i18n/ka.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "თქვენ შეგიძლიათ კომენტარის გაკეთება მხოლოდ ბარათებზე.", "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": "კომპიუტერი", "confirm-subtask-delete-dialog": "დარწმუნებული ხართ, რომ გსურთ ქვესაქმიანობის წაშლა? ", "confirm-checklist-delete-dialog": "დარწმუნებული ხართ, რომ გსურთ კატალოგის წაშლა ? ", diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json index 36787d4c..83dea56c 100644 --- a/i18n/km.i18n.json +++ b/i18n/km.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json index f9b60cf6..64883bbe 100644 --- a/i18n/ko.i18n.json +++ b/i18n/ko.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "카드에 댓글만 달수 있습니다.", "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": "내 컴퓨터", "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json index 02bdcc5f..44210198 100644 --- a/i18n/lv.i18n.json +++ b/i18n/lv.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/mk.i18n.json b/i18n/mk.i18n.json index 89b2f97b..21ef2820 100644 --- a/i18n/mk.i18n.json +++ b/i18n/mk.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Може да коментира само в карти.", "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": "Компјутер", "confirm-subtask-delete-dialog": "Сигурен ли сте, дека сакате да изтриете подзадачата?", "confirm-checklist-delete-dialog": "Сигурни ли сте, дека сакате да изтриете този чеклист?", diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json index c57c7aa4..a7a71329 100644 --- a/i18n/mn.i18n.json +++ b/i18n/mn.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json index e7f6f633..07affd79 100644 --- a/i18n/nb.i18n.json +++ b/i18n/nb.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json index b6e0c302..179d3291 100644 --- a/i18n/nl.i18n.json +++ b/i18n/nl.i18n.json @@ -1,45 +1,45 @@ { "accept": "Accepteren", "act-activity-notify": "Activiteiten Notificatie", - "act-addAttachment": "bijlage __attachment__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", - "act-deleteAttachment": "bijlage __attachment__ verwijderd op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", - "act-addSubtask": "subtaak __subtask__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", - "act-addLabel": "Label __label__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", - "act-addedLabel": "Label __label__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", - "act-removeLabel": "Label __label__ verwijderd van kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", - "act-removedLabel": "Label __label__ verwijderd van kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", - "act-addChecklist": "checklist __checklist__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", - "act-addChecklistItem": "checklist item __checklistItem__ toegevoegd aan checklist __checklist__ op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", - "act-removeChecklist": "checklist __checklist__ verwijderd van kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", - "act-removeChecklistItem": "checklist item __checklistItem__ verwijderd van checklist __checkList__ op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", - "act-checkedItem": "__checklistItem__ aangevinkt van checklist __checklist__ op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", - "act-uncheckedItem": "__checklistItem__ uitgevinkt van checklist __checklist__ op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", - "act-completeChecklist": "checklist __checklist__ afgewerkt op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", - "act-uncompleteChecklist": "checklist __checklist__ onafgewerkt op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", + "act-addAttachment": "heeft bijlage __attachment__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-deleteAttachment": "heeft bijlage __attachment__ verwijderd op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", + "act-addSubtask": "heeft subtaak __subtask__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-addLabel": "heeft label __label__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-addedLabel": "heeft label __label__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-removeLabel": "heeft label __label__ verwijderd van kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", + "act-removedLabel": "heeft label __label__ verwijderd van kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", + "act-addChecklist": "heeft checklist __checklist__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-addChecklistItem": "heeft checklist item __checklistItem__ toegevoegd aan checklist __checklist__ op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-removeChecklist": "heeft checklist __checklist__ verwijderd van kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", + "act-removeChecklistItem": "heeft checklist item __checklistItem__ verwijderd van checklist __checkList__ op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", + "act-checkedItem": "heeft __checklistItem__ aangevinkt van checklist __checklist__ op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-uncheckedItem": "heeft __checklistItem__ uitgevinkt van checklist __checklist__ op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", + "act-completeChecklist": "heeft checklist __checklist__ afgewerkt op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-uncompleteChecklist": "heeft checklist __checklist__ onafgewerkt op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", "act-addComment": "heeft aantekening toegevoegd aan kaart __card__: __comment__ van lijst __list__ in swimlane __swimlane__ op bord __board__", "act-editComment": "heeft aantekening gewijzigd op kaart __card__: __comment__ van lijst __list__ in swimlane __swimlane__ op bord __board__", "act-deleteComment": "heeft aantekening verwijderd van kaart __card__: __comment__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", "act-createBoard": "bord __board__ aangemaakt", "act-createSwimlane": "swimlane __swimlane__ aangemaakt op bord __board__", - "act-createCard": "kaart __card__ aangemaakt in lijst __list__ in swimlane __swimlane__ op bord __board__", - "act-createCustomField": "maatwerkveld __customField__ aangemaakt op bord __board__", - "act-deleteCustomField": "maatwerkveld __customField__ verwijderd van bord __board__", - "act-setCustomField": "maatwerkveld gewijzigd __customField__: __customFieldValue__ op kaart __card__ in lijst __list__ uit swimlane __swimlane__ op bord __board__", + "act-createCard": "heeft kaart __card__ aangemaakt in lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-createCustomField": "heeft maatwerkveld __customField__ aangemaakt op bord __board__", + "act-deleteCustomField": "heeft maatwerkveld __customField__ verwijderd van bord __board__", + "act-setCustomField": "heeft maatwerkveld gewijzigd __customField__: __customFieldValue__ op kaart __card__ in lijst __list__ uit swimlane __swimlane__ op bord __board__", "act-createList": "lijst __list__ toegevoegd aan bord __board__", - "act-addBoardMember": "lid __member__ toegevoegd aan bord __board__", + "act-addBoardMember": "heeft lid __member__ toegevoegd aan bord __board__", "act-archivedBoard": "Bord __board__ verplaatst naar Archief", - "act-archivedCard": "Kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__ verplaatst naar Archief", + "act-archivedCard": "heeft kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__ verplaatst naar Archief", "act-archivedList": "Lijst __list__ uit swimlane __swimlane__ op bord __board__ verplaatst naar Archief", "act-archivedSwimlane": "Swimlane __swimlane__ op bord __board__ verplaatst naar Archief", "act-importBoard": "bord __board__ geïmporteerd", - "act-importCard": "kaart __card__ geïmporteerd in lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-importCard": "heeft kaart __card__ geïmporteerd in lijst __list__ in swimlane __swimlane__ op bord __board__", "act-importList": "lijst __list__ geïmporteerd in swimlane __swimlane__ op bord __board__", - "act-joinMember": "lid __member__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-joinMember": "heeft lid __member__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", "act-moveCard": "heeft kaart __card__ verplaatst op bord __board__ van lijst __oldList__ uit swimlane __oldSwimlane__ naar lijst __list__ in swimlane __swimlane__", - "act-moveCardToOtherBoard": "kaart __card__ verplaatst van lijst __oldList__ uit swimlane __oldSwimlane__ op bord __oldBoard__ naar lijst __list__ in swimlane __swimlane__ op bord __board__", - "act-removeBoardMember": "lid __member__ verwijderd van bord __board__", - "act-restoredCard": "kaart __card__ teruggehaald naar lijst __list__ in swimlane __swimlane__ op bord __board__", - "act-unjoinMember": "lid __member__ verwijderd van kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", + "act-moveCardToOtherBoard": "heeft kaart __card__ verplaatst van lijst __oldList__ uit swimlane __oldSwimlane__ op bord __oldBoard__ naar lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-removeBoardMember": "heeft lid __member__ verwijderd van bord __board__", + "act-restoredCard": "heeft kaart __card__ teruggehaald naar lijst __list__ in swimlane __swimlane__ op bord __board__", + "act-unjoinMember": "heeft lid __member__ verwijderd van kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__", "act-withBoardTitle": "__board__", "act-withCardTitle": "[__board__] __card__", "actions": "Acties", @@ -64,14 +64,14 @@ "activity-unchecked-item": "%s uitgevinkt in checklist %s van %s", "activity-checklist-added": "checklist toegevoegd aan %s", "activity-checklist-removed": "checklist verwijderd van %s", - "activity-checklist-completed": "checklist __checklist__ afgewerkt op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", + "activity-checklist-completed": "heeft checklist __checklist__ afgewerkt op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", "activity-checklist-uncompleted": "checklist %s onafgewerkt van %s", "activity-checklist-item-added": "checklist item toegevoegd aan '%s' in '%s'", "activity-checklist-item-removed": "checklist item verwijderd van '%s' in %s", "add": "Toevoegen", "activity-checked-item-card": "%s aangevinkt in checklist %s", "activity-unchecked-item-card": "%s uitgevinkt in checklist %s", - "activity-checklist-completed-card": "checklist __checklist__ afgewerkt op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", + "activity-checklist-completed-card": "heeft checklist __checklist__ afgewerkt op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__", "activity-checklist-uncompleted-card": "checklist %s onafgewerkt", "activity-editComment": "aantekening gewijzigd %s", "activity-deleteComment": "aantekening verwijderd %s", @@ -137,7 +137,7 @@ "board-view": "Bord overzicht", "board-view-cal": "Kalender", "board-view-swimlanes": "Swimlanes", - "board-view-collapse": "Collapse", + "board-view-collapse": "Klap in", "board-view-lists": "Lijsten", "bucket-example": "Zoals bijvoorbeeld een \"Bucket List\"", "cancel": "Annuleren", @@ -154,7 +154,7 @@ "card-edit-custom-fields": "Wijzig maatwerkvelden", "card-edit-labels": "Wijzig labels", "card-edit-members": "Wijzig leden", - "card-labels-title": "Wijzig de labels vam de kaart.", + "card-labels-title": "Wijzig de labels van de kaart.", "card-members-title": "Voeg of verwijder leden van het bord toe aan de kaart.", "card-start": "Begin", "card-start-on": "Begint op", @@ -223,6 +223,8 @@ "comment-only-desc": "Kan alleen op kaarten aantekenen.", "no-comments": "Geen aantekeningen", "no-comments-desc": "Zie geen aantekeningen of activiteiten.", + "worker": "Medewerker", + "worker-desc": "Kan alleen kaarten verplaatsen, zichzelf aan kaarten koppelen en aantekeningen maken.", "computer": "Computer", "confirm-subtask-delete-dialog": "Weet je zeker dat je de subtaak wilt verwijderen?", "confirm-checklist-delete-dialog": "Weet je zeker dat je de checklist wilt verwijderen?", @@ -730,9 +732,9 @@ "loading": "Laden, even geduld.", "previous_as": "laatste keer was", "act-a-dueAt": "heeft vervaldatum gewijzigd naar \nOp: __timeValue__\nKaart: __card__\noude vervaldatum was __timeOldValue__", - "act-a-endAt": "einddatum gewijzigd naar __timeValue__ van (__timeOldValue__)", - "act-a-startAt": "begindatum gewijzigd naar __timeValue__ van (__timeOldValue__)", - "act-a-receivedAt": "ontvangstdatum gewijzigd naar __timeValue__ van (__timeOldValue__)", + "act-a-endAt": "heeft einddatum gewijzigd naar __timeValue__ van (__timeOldValue__)", + "act-a-startAt": "heeft begindatum gewijzigd naar __timeValue__ van (__timeOldValue__)", + "act-a-receivedAt": "heeft ontvangstdatum gewijzigd naar __timeValue__ van (__timeOldValue__)", "a-dueAt": "vervaldatum gewijzigd naar", "a-endAt": "einddatum gewijzigd naar", "a-startAt": "begindatum gewijzigd naar", diff --git a/i18n/oc.i18n.json b/i18n/oc.i18n.json index 683323e9..d7325bbb 100644 --- a/i18n/oc.i18n.json +++ b/i18n/oc.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Comentari sus las cartas solament.", "no-comments": "Pas cap de comentari", "no-comments-desc": "Podèts pas veire ni los comentaris ni las activitats", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", "computer": "Ordenator", "confirm-subtask-delete-dialog": "Sètz segur de voler quitar aquesta jos-tasca?", "confirm-checklist-delete-dialog": "Sètz segur de voler quitar aquesta checklist?", diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index 6259510f..aa41e98b 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Może tylko komentować w kartach.", "no-comments": "Bez komentarzy", "no-comments-desc": "Nie widzi komentarzy i aktywności.", + "worker": "Pracownik", + "worker-desc": "Możesz tylko przenieść karty, przypisać je do siebie i na nich komentować.", "computer": "Komputera", "confirm-subtask-delete-dialog": "Czy jesteś pewien, że chcesz usunąć to podzadanie?", "confirm-checklist-delete-dialog": "Czy jesteś pewien, że chcesz usunąć listę zadań?", @@ -470,7 +472,7 @@ "has-spenttime-cards": "Ma karty z wykorzystanym czasem", "time": "Czas", "title": "Tytuł", - "tracking": "Śledzenie", + "tracking": "Śledź", "tracking-info": "Dostaniesz powiadomienie o zmianach kart, w których bierzesz udział jako twórca lub członek.", "type": "Typ", "unassign-member": "Nieprzypisany członek", @@ -483,7 +485,7 @@ "view-it": "Zobacz", "warn-list-archived": "Ostrzeżenie: ta karta jest na liście będącej w Archiwum", "watch": "Obserwuj", - "watching": "Obserwujesz", + "watching": "Obserwuj", "watching-info": "Dostaniesz powiadomienie o każdej zmianie na tej tablicy.", "welcome-board": "Tablica powitalna", "welcome-swimlane": "Kamień milowy 1", diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 9a8ac080..9042d1dc 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -98,19 +98,19 @@ "and-n-other-card_plural": "E __count__ outros cartões", "apply": "Aplicar", "app-is-offline": "Carregando, por favor espere. Atualizar a página causará perda de dados. Se a carga não funcionar, por favor verifique se o servidor não caiu.", - "archive": "Mover para o Arquivo-morto", - "archive-all": "Mover Tudo para o Arquivo-morto", - "archive-board": "Mover Quadro para o Arquivo-morto", - "archive-card": "Mover Cartão para o Arquivo-morto", - "archive-list": "Mover Lista para o Arquivo-morto", - "archive-swimlane": "Mover Raia para Arquivo-morto", - "archive-selection": "Mover seleção para o Arquivo-morto", - "archiveBoardPopup-title": "Mover Quadro para o Arquivo-morto?", - "archived-items": "Arquivo-morto", - "archived-boards": "Quadros no Arquivo-morto", + "archive": "Mover para o Arquivo morto", + "archive-all": "Mover Tudo para o Arquivo morto", + "archive-board": "Mover Quadro para o Arquivo morto", + "archive-card": "Mover Cartão para o Arquivo morto", + "archive-list": "Mover Lista para o Arquivo morto", + "archive-swimlane": "Mover Raia para Arquivo morto", + "archive-selection": "Mover seleção para o Arquivo morto", + "archiveBoardPopup-title": "Mover Quadro para o Arquivo morto?", + "archived-items": "Arquivo morto", + "archived-boards": "Quadros no Arquivo morto", "restore-board": "Restaurar Quadro", - "no-archived-boards": "Sem Quadros no Arquivo-morto.", - "archives": "Arquivos-morto", + "no-archived-boards": "Sem Quadros no Arquivo morto.", + "archives": "Arquivos morto", "template": "Modelo", "templates": "Modelos", "assign-member": "Atribuir Membro", @@ -146,7 +146,7 @@ "card-comments-title": "Este cartão possui %s comentários.", "card-delete-notice": "A exclusão será permanente. Você perderá todas as ações associadas a este cartão.", "card-delete-pop": "Todas as ações serão excluidas da lista de Atividades e vocês não poderá re-abrir o cartão. Não há como desfazer.", - "card-delete-suggest-archive": "Você pode mover um cartão para o Arquivo-morto para removê-lo do quadro e preservar a atividade.", + "card-delete-suggest-archive": "Você pode mover um cartão para o Arquivo morto para removê-lo do quadro e preservar a atividade.", "card-due": "Prazo final", "card-due-on": "Prazo final em", "card-spent": "Tempo Gasto", @@ -190,7 +190,7 @@ "clipboard": "Área de Transferência ou arraste e solte", "close": "Fechar", "close-board": "Fechar Quadro", - "close-board-pop": "Você será capaz de restaurar o quadro clicando no botão “Arquivo-morto” a partir do cabeçalho do Início.", + "close-board-pop": "Você será capaz de restaurar o quadro clicando no botão “Arquivo morto” a partir do cabeçalho do Início.", "color-black": "preto", "color-blue": "azul", "color-crimson": "carmesim", @@ -223,6 +223,8 @@ "comment-only-desc": "Pode comentar apenas em cartões.", "no-comments": "Sem comentários", "no-comments-desc": "Sem visualização de comentários e atividades.", + "worker": "Colaborador", + "worker-desc": "Pode apenas mover cartões, atribuir-se ao cartão e comentar.", "computer": "Computador", "confirm-subtask-delete-dialog": "Tem certeza que deseja excluir a subtarefa?", "confirm-checklist-delete-dialog": "Tem certeza que quer excluir a lista de verificação?", @@ -367,8 +369,8 @@ "leave-board-pop": "Tem a certeza de que pretende sair de __boardTitle__? Você será removido de todos os cartões neste quadro.", "leaveBoardPopup-title": "Sair do Quadro?", "link-card": "Vincular a este cartão", - "list-archive-cards": "Move todos os cartões nesta lista para o Arquivo-morto", - "list-archive-cards-pop": "Isto removerá todos os cartões desta lista para o quadro. Para visualizar cartões arquivados e trazê-los de volta para o quadro, clique em “Menu” > “Arquivo-morto”.", + "list-archive-cards": "Move todos os cartões nesta lista para o Arquivo morto", + "list-archive-cards-pop": "Isto removerá todos os cartões desta lista para o quadro. Para visualizar cartões arquivados e trazê-los de volta para o quadro, clique em “Menu” > “Arquivo morto”.", "list-move-cards": "Mover todos os cartões desta lista", "list-select-cards": "Selecionar todos os cartões nesta lista", "set-color-list": "Definir Cor", @@ -379,7 +381,7 @@ "listMorePopup-title": "Mais", "link-list": "Vincular a esta lista", "list-delete-pop": "Todas as ações serão excluidas da lista de atividades e você não poderá recuperar a lista. Não há como desfazer.", - "list-delete-suggest-archive": "Você pode mover uma lista para o Arquivo-morto para removê-la do quadro e preservar a atividade.", + "list-delete-suggest-archive": "Você pode mover uma lista para o Arquivo morto para removê-la do quadro e preservar a atividade.", "lists": "Listas", "swimlanes": "Raias", "log-out": "Sair", @@ -399,9 +401,9 @@ "muted-info": "Você nunca receberá qualquer notificação desse board", "my-boards": "Meus Quadros", "name": "Nome", - "no-archived-cards": "Sem cartões no Arquivo-morto.", - "no-archived-lists": "Sem listas no Arquivo-morto.", - "no-archived-swimlanes": "Sem raias no Arquivo-morto.", + "no-archived-cards": "Sem cartões no Arquivo morto.", + "no-archived-lists": "Sem listas no Arquivo morto.", + "no-archived-swimlanes": "Sem raias no Arquivo morto.", "no-results": "Nenhum resultado.", "normal": "Normal", "normal-desc": "Pode ver e editar cartões. Não pode alterar configurações.", @@ -413,11 +415,11 @@ "page-maybe-private": "Esta página pode ser privada. Você poderá vê-la se estiver <a href='%s'>logado</a>.", "page-not-found": "Página não encontrada.", "password": "Senha", - "paste-or-dragdrop": "para colar, ou arraste e solte o arquivo da imagem para cá (somente imagens)", + "paste-or-dragdrop": "para colar ou arraste e solte o arquivo da imagem para cá (somente imagens)", "participating": "Participando", - "preview": "Previsualizar", - "previewAttachedImagePopup-title": "Previsualizar", - "previewClipboardImagePopup-title": "Previsualizar", + "preview": "Pré-visualizar", + "previewAttachedImagePopup-title": "Pré-visualizar", + "previewClipboardImagePopup-title": "Pré-visualizar", "private": "Privado", "private-desc": "Este quadro é privado. Apenas seus membros podem acessar e editá-lo.", "profile": "Perfil", @@ -481,7 +483,7 @@ "uploaded-avatar": "Avatar carregado", "username": "Nome de usuário", "view-it": "Visualizar", - "warn-list-archived": "aviso: este cartão está em uma lista no Arquiv-morto", + "warn-list-archived": "aviso: este cartão está em uma lista no Arquivo-texto", "watch": "Observar", "watching": "Observando", "watching-info": "Você será notificado de qualquer alteração neste quadro", @@ -621,8 +623,8 @@ "set-filter": "Inserir Filtro", "r-moved-to": "Movido para", "r-moved-from": "Movido de", - "r-archived": "Movido para o Arquivo-morto", - "r-unarchived": "Restaurado do Arquivo-morto", + "r-archived": "Movido para o Arquivo morto", + "r-unarchived": "Restaurado do Arquivo morto", "r-a-card": "um cartão", "r-when-a-label-is": "Quando uma etiqueta é", "r-when-the-label": "Quando a etiqueta é", @@ -643,8 +645,8 @@ "r-top-of": "Topo de", "r-bottom-of": "Final de", "r-its-list": "é lista", - "r-archive": "Mover para Arquivo-morto", - "r-unarchive": "Restaurar do Arquivo-morto", + "r-archive": "Mover para Arquivo morto", + "r-unarchive": "Restaurar do Arquivo morto", "r-card": "cartão", "r-add": "Novo", "r-remove": "Remover", @@ -672,8 +674,8 @@ "r-d-send-email-to": "para", "r-d-send-email-subject": "assunto", "r-d-send-email-message": "mensagem", - "r-d-archive": "Mover cartão para Arquivo-morto", - "r-d-unarchive": "Restaurar cartão do Arquivo-morto", + "r-d-archive": "Mover cartão para Arquivo morto", + "r-d-unarchive": "Restaurar cartão do Arquivo morto", "r-d-add-label": "Adicionar etiqueta", "r-d-remove-label": "Remover etiqueta", "r-create-card": "Criar novo cartão", diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json index 0c919241..6ea16253 100644 --- a/i18n/pt.i18n.json +++ b/i18n/pt.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Pode comentar apenas em cartões.", "no-comments": "Sem comentários", "no-comments-desc": "Não pode ver comentários nem actividades.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", "computer": "Computador", "confirm-subtask-delete-dialog": "Tem certeza que deseja apagar a sub-tarefa?", "confirm-checklist-delete-dialog": "Tem certeza que quer apagar a lista de verificação?", diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json index deeeb9de..82058754 100644 --- a/i18n/ro.i18n.json +++ b/i18n/ro.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index 2b4f584c..94f4852e 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Может комментировать только карточки.", "no-comments": "Без комментариев", "no-comments-desc": "Не видит комментарии и историю действий.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", "computer": "Загрузить с компьютера", "confirm-subtask-delete-dialog": "Вы уверены, что хотите удалить подзадачу?", "confirm-checklist-delete-dialog": "Вы уверены, что хотите удалить контрольный список?", diff --git a/i18n/sl.i18n.json b/i18n/sl.i18n.json index a8ce0b99..f3e30e82 100644 --- a/i18n/sl.i18n.json +++ b/i18n/sl.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Lahko komentirate samo na karticah.", "no-comments": "Ni komentarjev", "no-comments-desc": "Ne morete videti komentarjev in dejavnosti.", + "worker": "Delavec", + "worker-desc": "Lahko samo premikam kartice, se dodelim na kartico in komentiram.", "computer": "Računalnik", "confirm-subtask-delete-dialog": "Ste prepričani, da želite izbrisati podopravilo?", "confirm-checklist-delete-dialog": "Ste prepričani, da želite izbrisati kontrolni seznam?", diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json index 1476a90e..c886ea54 100644 --- a/i18n/sr.i18n.json +++ b/i18n/sr.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index 1b98c013..c6472cb7 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Kan endast kommentera kort.", "no-comments": "Inga kommentarer", "no-comments-desc": "Kan inte se kommentarer och aktiviteter.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", "computer": "Dator", "confirm-subtask-delete-dialog": "Är du säker på att du vill radera deluppgift?", "confirm-checklist-delete-dialog": "Är du säker på att du vill radera checklista?", diff --git a/i18n/sw.i18n.json b/i18n/sw.i18n.json index b4c2739d..047f5c1b 100644 --- a/i18n/sw.i18n.json +++ b/i18n/sw.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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": "Tarakilishi", "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json index 9313926c..4fdf7b20 100644 --- a/i18n/ta.i18n.json +++ b/i18n/ta.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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": "கணினி ", "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json index acf37d7b..4f2ddce0 100644 --- a/i18n/th.i18n.json +++ b/i18n/th.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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": "คอมพิวเตอร์", "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index 7bfbb95a..2c1feded 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Sadece kartlara yorum yazabilir.", "no-comments": "Yorum Yok", "no-comments-desc": "Yorumlar ve aktiviteleri göremiyorum.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", "computer": "Bilgisayar", "confirm-subtask-delete-dialog": "Alt görevi silmek istediğinizden emin misiniz?", "confirm-checklist-delete-dialog": "Kontrol listesini silmek istediğinden emin misin?", @@ -305,8 +307,8 @@ "sort": "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-modifiedAt": "Son Erişim Zamanı...", + "list-label-title": "Listenin Adı...", "list-label-sort": "Your Manual Order", "list-label-short-modifiedAt": "(L)", "list-label-short-title": "(N)", diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json index a5b347f5..6bf8d5f5 100644 --- a/i18n/uk.i18n.json +++ b/i18n/uk.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json index 7db36ef3..fa388261 100644 --- a/i18n/vi.i18n.json +++ b/i18n/vi.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json index c9f4653c..d5a5b3c5 100644 --- a/i18n/zh-CN.i18n.json +++ b/i18n/zh-CN.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "只能在卡片上评论。", "no-comments": "暂无评论", "no-comments-desc": "无法查看评论和活动。", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", "computer": "从本机上传", "confirm-subtask-delete-dialog": "确定要删除子任务吗?", "confirm-checklist-delete-dialog": "确定要删除清单吗?", diff --git a/i18n/zh-HK.i18n.json b/i18n/zh-HK.i18n.json index 3a1009b0..08b430ee 100644 --- a/i18n/zh-HK.i18n.json +++ b/i18n/zh-HK.i18n.json @@ -223,6 +223,8 @@ "comment-only-desc": "Can comment on cards only.", "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-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json index cb5bbf32..22e6e8b6 100644 --- a/i18n/zh-TW.i18n.json +++ b/i18n/zh-TW.i18n.json @@ -137,7 +137,7 @@ "board-view": "看板視圖", "board-view-cal": "日歷", "board-view-swimlanes": "泳道圖", - "board-view-collapse": "Collapse", + "board-view-collapse": "損毀", "board-view-lists": "清單", "bucket-example": "例如 “目標清單”", "cancel": "取消", @@ -223,6 +223,8 @@ "comment-only-desc": "只能在卡片上發表評論。", "no-comments": "暫無評論", "no-comments-desc": "無法檢視評論和活動。", + "worker": "工作者", + "worker-desc": "只能移動卡片,分配給自己及發表評論。", "computer": "從本機上傳", "confirm-subtask-delete-dialog": "確定要刪除子任務嗎?", "confirm-checklist-delete-dialog": "確定要刪除清單嗎?", @@ -438,7 +440,7 @@ "save": "儲存", "search": "搜尋", "rules": "規則", - "search-cards": "Search from card/list titles and descriptions on this board", + "search-cards": "搜尋看板內的卡片標題及描述", "search-example": "搜尋", "select-color": "選擇顏色", "set-wip-limit-value": "設定此清單中的最大任務數", @@ -750,6 +752,6 @@ "accounts-allowUserDelete": "允許用戶自行刪除其帳戶", "hide-minicard-label-text": "隱藏迷你卡片標籤內文", "show-desktop-drag-handles": "顯示桌面拖曳工具", - "assignee": "Assignee", - "cardAssigneesPopup-title": "Assignee" + "assignee": "代理人", + "cardAssigneesPopup-title": "代理人" } diff --git a/models/cards.js b/models/cards.js index 816132fe..496c69b3 100644 --- a/models/cards.js +++ b/models/cards.js @@ -2003,8 +2003,15 @@ if (Meteor.isServer) { req, res, ) { - Authentication.checkUserId(req.userId); + // Check user is logged in + Authentication.checkLoggedIn(req.userId); const paramBoardId = req.params.boardId; + // Check user has permission to add card to the board + const board = Boards.findOne({ + _id: paramBoardId + }); + const addPermission = allowIsBoardMemberCommentOnly(req.userId, board); + Authentication.checkAdminOrCondition(req.userId, addPermission); const paramListId = req.params.listId; const paramParentId = req.params.parentId; const currentCards = Cards.find( diff --git a/models/checklists.js b/models/checklists.js index 3b50cda6..11aba71b 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -283,8 +283,15 @@ if (Meteor.isServer) { 'POST', '/api/boards/:boardId/cards/:cardId/checklists', function(req, res) { - Authentication.checkUserId(req.userId); - + // Check user is logged in + Authentication.checkLoggedIn(req.userId); + const paramBoardId = req.params.boardId; + // Check user has permission to add checklist to the card + const board = Boards.findOne({ + _id: paramBoardId + }); + const addPermission = allowIsBoardMemberCommentOnly(req.userId, board); + Authentication.checkAdminOrCondition(req.userId, addPermission); const paramCardId = req.params.cardId; const id = Checklists.insert({ title: req.body.title, diff --git a/rebuild-wekan.bat b/rebuild-wekan.bat index 346a4aec..486289c1 100644 --- a/rebuild-wekan.bat +++ b/rebuild-wekan.bat @@ -13,8 +13,8 @@ REM Install chocolatey choco install -y git curl python2 dotnet4.5.2 nano mongodb-3 mongoclient meteor
-curl -O https://nodejs.org/dist/v8.16.2/node-v8.16.2-x64.msi
-call node-v8.16.2-x64.msi
+curl -O https://nodejs.org/dist/v8.17.0/node-v8.17.0-x64.msi
+call node-v8.17.0-x64.msi
call npm config -g set msvs_version 2015
call meteor npm config -g set msvs_version 2015
diff --git a/rebuild-wekan.sh b/rebuild-wekan.sh index 8381e170..03279ce7 100755 --- a/rebuild-wekan.sh +++ b/rebuild-wekan.sh @@ -79,7 +79,7 @@ do curl -0 -L https://npmjs.org/install.sh | sudo sh sudo chown -R $(id -u):$(id -g) $HOME/.npm sudo npm -g install n - sudo n 8.16.2 + sudo n 8.17.0 #curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - #sudo apt-get install -y nodejs elif [[ "$OSTYPE" == "darwin"* ]]; then diff --git a/releases/not-working-meteor-1.8-snapcraft.yaml b/releases/not-working-meteor-1.8-snapcraft.yaml deleted file mode 100644 index bf5d5ee8..00000000 --- a/releases/not-working-meteor-1.8-snapcraft.yaml +++ /dev/null @@ -1,262 +0,0 @@ -name: wekan -version: '0' -version-script: git describe --dirty --tags | cut -c 2- -summary: The open-source kanban -description: | - Wekan is an open-source and collaborative kanban board application. - - Whether you’re maintaining a personal todo list, planning your holidays with some friends, or working in a team on your next revolutionary idea, Kanban boards are an unbeatable tool to keep your things organized. They give you a visual overview of the current state of your project, and make you productive by allowing you to focus on the few items that matter the most. - Depending on target environment, some configuration settings might need to be adjusted. - For full list of configuration options call: - $ wekan.help - -confinement: strict -grade: stable - -architectures: - - amd64 - -plugs: - mongodb-plug: - interface: content - target: $SNAP_DATA/shared - -hooks: - configure: - plugs: - - network - - network-bind - -slots: - mongodb-slot: - interface: content - write: - - $SNAP_DATA/share - -apps: - wekan: - command: wekan-control - daemon: simple - plugs: [network, network-bind] - - mongodb: - command: mongodb-control - daemon: simple - plugs: [network, network-bind] - - caddy: - command: caddy-control - daemon: simple - plugs: [network, network-bind] - - help: - command: wekan-help - - database-backup: - command: mongodb-backup - plugs: [network, network-bind] - - database-list-backups: - command: ls -al $SNAP_COMMON/db-backups/ - - database-restore: - command: mongodb-restore - plugs: [network, network-bind] - -parts: - mongodb: - source: https://repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.0/multiverse/binary-amd64/mongodb-org-server_4.0.11_amd64.deb - plugin: dump - stage-packages: [libssl-dev] - filesets: - mongo: - - usr - - bin - - lib -# stage: -# - $mongo -# prime: -# - $mongo - wekan: - source: . - plugin: nodejs - node-engine: 8.16.0 -# node-packages: -# - node-gyp -# - node-pre-gyp -# - fibers@4.0.1 - build-packages: - - ca-certificates - - apt-utils - - bsdtar - - gnupg - - bzip2 - ## - python3 - - g++ - - build-essential - - git - # - capnproto - - curl - - libcurl3 - - php-curl - # - execstack - # - nodejs - # - npm - ## - python3-pip - ## - python3-venv - stage-packages: - - libfontconfig1 - override-build: | - set -o xtrace - echo "Cleaning environment first" - rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules - # Meteor installer doesn't work with the default tar binary, so using bsdtar while installing. - # https://github.com/coreos/bugs/issues/1095#issuecomment-350574389 - cp $(which tar) $(which tar)~ - ln -sf $(which bsdtar) $(which tar) - # Create the OpenAPI specification - rm -rf .build - mkdir .build - ##mkdir -p .build/python - ##cd .build/python - ##python3 -m venv env - ##. ./env/bin/activate - ##pip3 install -U setuptools wheel - ##git clone --depth 1 -b master https://github.com/Kronuz/esprima-python - ##cd esprima-python - ##python3 setup.py install - ##cd ../../.. - ##mkdir -p ./public/api - ##python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml - # we temporary need api2html and mkdirp - ##npm install -g --unsafe-perm api2html@0.3.0 - ##npm install -g --unsafe-perm mkdirp - ##api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml - ##npm uninstall -g --unsafe-perm mkdirp - ##npm uninstall -g --unsafe-perm api2html - # Node Fibers 100% CPU usage issue: - # https://github.com/wekan/wekan-mongodb/issues/2#issuecomment-381453161 - # https://github.com/meteor/meteor/issues/9796#issuecomment-381676326 - # https://github.com/sandstorm-io/sandstorm/blob/0f1fec013fe7208ed0fd97eb88b31b77e3c61f42/shell/server/00-startup.js#L99-L129 - # Also see beginning of wekan/server/authentication.js - # import Fiber from "fibers"; - # Fiber.poolSize = 1e9; - # OLD: Download node version 8.12.0 prerelease build => Official node 8.12.0 has been released - # Description at https://releases.wekan.team/node.txt - ##echo "375bd8db50b9c692c0bbba6e96d4114cd29bee3770f901c1ff2249d1038f1348 node" >> node-SHASUMS256.txt.asc - ##curl https://releases.wekan.team/node -o node - # Verify Fibers patched node authenticity - ##echo "Fibers 100% CPU issue patched node authenticity:" - ##grep node node-SHASUMS256.txt.asc | shasum -a 256 -c - - ##rm -f node-SHASUMS256.txt.asc - ##chmod +x node - ##mv node `which node` - # DOES NOT WORK: paxctl fix. - # Removed from build-packages: - paxctl - #echo "Applying paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303" - #paxctl -mC `which node` - #echo "Installing npm" - #curl -L https://www.npmjs.com/install.sh | sh - echo "Installing meteor" - curl https://install.meteor.com/ -o install_meteor.sh - #sed -i "s|RELEASE=.*|RELEASE=\"1.8.1-beta.0\"|g" install_meteor.sh - chmod +x install_meteor.sh - sh install_meteor.sh - rm install_meteor.sh - # REPOS BELOW ARE INCLUDED TO WEKAN REPO - #if [ ! -d "packages" ]; then - # mkdir packages - #fi - #if [ ! -d "packages/kadira-flow-router" ]; then - # cd packages - # git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router - # cd .. - #fi - #if [ ! -d "packages/meteor-useraccounts-core" ]; then - # cd packages - # git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core - # sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' meteor-useraccounts-core/package.js - # cd .. - #fi - #if [ ! -d "packages/meteor-accounts-cas" ]; then - # cd packages - # git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git meteor-accounts-cas - # cd .. - #fi - #if [ ! -d "packages/wekan-ldap" ]; then - # cd packages - # git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git - # cd .. - #fi - #if [ ! -d "packages/wekan-scrollbar" ]; then - # cd packages - # git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git - # cd .. - #fi - #if [ ! -d "packages/wekan_accounts-oidc" ]; then - # cd packages - # git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-oidc.git - # mv meteor-accounts-oidc/packages/switch_accounts-oidc wekan-accounts-oidc - # mv meteor-accounts-oidc/packages/switch_oidc wekan-oidc - # rm -rf meteor-accounts-oidc - # cd .. - #fi - #if [ ! -d "packages/markdown" ]; then - # cd packages - # git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git - # cd .. - #fi - rm -rf package-lock.json .build - #meteor add standard-minifier-js --allow-superuser - meteor npm install --allow-superuser --unsafe-perm - meteor build .build --directory --allow-superuser - cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js - # Disable code coverage on Snap, because it crashes Wekan starting. - # https://github.com/wekan/wekan/issues/2533#issuecomment-513506939 - #sed -i 's|Profile(fileInfo.path, func).apply(global, args);|//Profile(fileInfo.path, func).apply(global, args);|g' .build/bundle/programs/server/boot.js - # although it did not help, it said unable to find main function. - # Other option to fix would be to drop indexes at start of snap: - # https://stackoverflow.com/questions/24241742/drop-all-indexes-from-all-collections-in-a-mongodb-database-using-the-command-li - #Removed binary version of bcrypt because of security vulnerability that is not fixed yet. - #https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac - #https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c - #cd .build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt - #rm -rf node_modules/bcrypt - #meteor npm install --save bcrypt - # Change from npm-bcrypt directory back to .build/bundle/programs/server directory. - #cd ../../../../ - # Change to directory .build/bundle/programs/server - cd .build/bundle/programs/server - npm install --unsafe-perm - #meteor npm install --save bcrypt - # Change back to Wekan source directory - cd ../../../.. - cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/ - cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/ - # rm $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan - #rm $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs - # rm $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp - # rm $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-gyp/node_modules/tar/lib/.mkdir.js.swp - # Put back the original tar - mv $(which tar)~ $(which tar) - organize: - README: README.wekan - prime: - - -lib/node_modules/node-pre-gyp/node_modules/tar/lib/.unpack.js.swp - - helpers: - source: snap-src - plugin: dump - - caddy: - plugin: dump - source: https://caddyserver.com/download/linux/amd64?license=personal&telemetry=off - source-type: tar - organize: - caddy: bin/caddy - CHANGES.txt: CADDY_CHANGES.txt - EULA.txt: CADDY_EULA.txt - LICENSES.txt: CADDY_LICENSES.txt - README.txt: CADDY_README.txt - stage: - - -init diff --git a/releases/old-rebuild-release.sh b/releases/old-rebuild-release.sh deleted file mode 100755 index 30814c73..00000000 --- a/releases/old-rebuild-release.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -echo "Building Wekan." -cd ~/repos/wekan -#rm -rf packages -#mkdir -p ~/repos/wekan/packages -#cd ~/repos/wekan/packages -#git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router -#git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core -#git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git -#git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git -#git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git -#git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-oidc.git -#git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git -#mv meteor-accounts-oidc/packages/switch_accounts-oidc wekan_accounts-oidc -#mv meteor-accounts-oidc/packages/switch_oidc wekan_oidc -# -#if [[ "$OSTYPE" == "darwin"* ]]; then -# echo "sed at macOS"; -# sed -i '' 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js -#else -# echo "sed at ${OSTYPE}" -# sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js -#fi -# -cd ~/repos/wekan -rm -rf node_modules -meteor npm install -rm -rf .build -meteor build .build --directory -cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js -#Removed binary version of bcrypt because of security vulnerability that is not fixed yet. -#https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac -#https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c -#cd ~/repos/wekan/.build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt -#rm -rf node_modules/bcrypt -#meteor npm install bcrypt -cd ~/repos/wekan/.build/bundle/programs/server -rm -rf node_modules -meteor npm install -#meteor npm install bcrypt -cd ~/repos -echo Building Wekan Done. diff --git a/releases/rebuild-wekan.sh b/releases/rebuild-wekan.sh deleted file mode 100755 index e70ff656..00000000 --- a/releases/rebuild-wekan.sh +++ /dev/null @@ -1,136 +0,0 @@ -#!/bin/bash - -echo "Note: If you use other locale than en_US.UTF-8 , you need to additionally install en_US.UTF-8" -echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correctly." -echo " You can still use any other locale as your main locale." - -X64NODE="https://releases.wekan.team/node-v8.11.3-linux-x64.tar.gz" - -function pause(){ - read -p "$*" -} - -echo -PS3='Please enter your choice: ' -options=("Install Wekan dependencies" "Build Wekan" "Quit") -select opt in "${options[@]}" -do - case $opt in - "Install Wekan dependencies") - - if [[ "$OSTYPE" == "linux-gnu" ]]; then - echo "Linux"; - - if [ "$(grep -Ei 'buntu|mint' /etc/*release)" ]; then - sudo apt install -y build-essential git curl wget -# sudo apt -y install nodejs npm -# sudo npm -g install n -# sudo n 8.16.2 - fi - -# if [ "$(grep -Ei 'debian' /etc/*release)" ]; then -# sudo apt install -y build-essential git curl wget -# echo "Debian, or Debian on Windows Subsystem for Linux" -# curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - -# sudo apt install -y nodejs -# fi - - # TODO: Add Sandstorm for version of Node.js install - #MACHINE_TYPE=`uname -m` - #if [ ${MACHINE_TYPE} == 'x86_64' ]; then - # # 64-bit stuff here - # wget ${X64NODE} - # sudo tar -C /usr/local --strip-components 1 -xzf ${X64NODE} - #elif [ ${MACHINE_TYPE} == '32bit' ]; then - # echo "TODO: 32-bit Linux install here" - # exit - #fi - elif [[ "$OSTYPE" == "darwin"* ]]; then - echo "macOS"; - pause '1) Install XCode 2) Install Node 8.x from https://nodejs.org/en/ 3) Press [Enter] key to continue.' - elif [[ "$OSTYPE" == "cygwin" ]]; then - # POSIX compatibility layer and Linux environment emulation for Windows - echo "TODO: Add Cygwin"; - exit; - elif [[ "$OSTYPE" == "msys" ]]; then - # Lightweight shell and GNU utilities compiled for Windows (part of MinGW) - echo "TODO: Add msys on Windows"; - exit; - elif [[ "$OSTYPE" == "win32" ]]; then - # I'm not sure this can happen. - echo "TODO: Add Windows"; - exit; - elif [[ "$OSTYPE" == "freebsd"* ]]; then - echo "TODO: Add FreeBSD"; - exit; - else - echo "Unknown" - echo ${OSTYPE} - exit; - fi - - ## Latest npm with Meteor 1.6 - sudo npm -g install npm - sudo npm -g install node-gyp - # Latest fibers for Meteor 1.6 - sudo npm -g install fibers@2.0.0 - # Install Meteor, if it's not yet installed - curl https://install.meteor.com | bash -# mkdir ~/repos -# cd ~/repos -# git clone https://github.com/wekan/wekan.git -# cd wekan -# git checkout devel - break - ;; - "Build Wekan") - echo "Building Wekan." - cd ~/repos/wekan - rm -rf packages - mkdir -p ~/repos/wekan/packages - cd ~/repos/wekan/packages - git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router - git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core - git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git - git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git - git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git - git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-oidc.git - git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git - mv meteor-accounts-oidc/packages/switch_accounts-oidc wekan_accounts-oidc - mv meteor-accounts-oidc/packages/switch_oidc wekan_oidc - rm -rf meteor-accounts-oidc - - if [[ "$OSTYPE" == "darwin"* ]]; then - echo "sed at macOS"; - sed -i '' 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js - else - echo "sed at ${OSTYPE}" - sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js - fi - - cd ~/repos/wekan - rm -rf node_modules - meteor npm install - rm -rf .build - meteor build .build --directory - cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js - #Removed binary version of bcrypt because of security vulnerability that is not fixed yet. - #https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac - #https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c - #cd ~/repos/wekan/.build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt - #rm -rf node_modules/bcrypt - #meteor npm install bcrypt - cd ~/repos/wekan/.build/bundle/programs/server - rm -rf node_modules - meteor npm install - #meteor npm install bcrypt - cd ~/repos - echo Done. - break - ;; - "Quit") - break - ;; - *) echo invalid option;; - esac -done diff --git a/releases/sandstorm-make-spk.sh b/releases/sandstorm-make-spk.sh index 8db2a4c3..ade97666 100755 --- a/releases/sandstorm-make-spk.sh +++ b/releases/sandstorm-make-spk.sh @@ -1 +1 @@ -meteor-spk pack wekan-1.11.spk +meteor-spk pack wekan-$1.spk diff --git a/releases/snap-install.sh b/releases/snap-install.sh index bdb0b7a2..75567e16 100755 --- a/releases/snap-install.sh +++ b/releases/snap-install.sh @@ -1 +1 @@ -sudo snap install --dangerous wekan_1.23-17-g9c94ea5_amd64.snap +sudo snap install --dangerous wekan_*.snap diff --git a/releases/virtualbox/old-rebuild-wekan.sh b/releases/virtualbox/old-rebuild-wekan.sh deleted file mode 100755 index a3941d55..00000000 --- a/releases/virtualbox/old-rebuild-wekan.sh +++ /dev/null @@ -1,42 +0,0 @@ -## Most of these are uncommented, because they are already installed. -#sudo rm -rf /usr/local/lib/node_modules -#sudo rm -rf ~/.npm -#sudo apt install build-essential c++ capnproto npm git curl -#sudo npm -g install n -#sudo n 4.8.6 -#sudo npm -g install npm@4.6.1 -#sudo npm -g install node-gyp -#sudo npm -g install node-pre-gyp -#sudo npm -g install fibers@1.0.15 -sudo rm -rf wekan -git clone https://github.com/wekan/wekan -cd ~/repos -#curl https://install.meteor.com -o ./install_meteor.sh -#sed -i "s|RELEASE=.*|RELEASE=${METEOR_RELEASE}\"\"|g" ./install_meteor.sh -#echo "Starting meteor ${METEOR_RELEASE} installation... \n" -#chown wekan:wekan ./install_meteor.sh -#sh ./install_meteor.sh -mkdir -p ~/repos/wekan/packages -cd ~/repos/wekan/packages -rm -rf kadira-flow-router -rm -rf meteor-useraccounts-core -git clone https://github.com/wekan/flow-router.git kadira-flow-router -git clone https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core -sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js -cd ~/repos/wekan - -rm -rf node_modules -npm install -rm -rf .build -meteor build .build --directory -cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js -sed -i "s|build\/Release\/bson|browser_build\/bson|g" ~/repos/wekan/.build/bundle/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/bson/ext/index.js -cd ~/repos/wekan/.build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt -rm -rf node_modules/bcrypt -meteor npm install --save bcrypt -cd ~/repos/wekan/.build/bundle/programs/server -rm -rf node_modules -npm install -meteor npm install --save bcrypt -cd ~/repos -echo Done. diff --git a/server/authentication.js b/server/authentication.js index 9e519fe1..20327280 100644 --- a/server/authentication.js +++ b/server/authentication.js @@ -58,7 +58,7 @@ Meteor.startup(() => { const board = Boards.findOne({ _id: boardId }); const normalAccess = board.permission === 'public' || - board.members.some(e => e.userId === userId).isActive; + board.members.some(e => e.userId === userId && e.isActive); Authentication.checkAdminOrCondition(userId, normalAccess); }; diff --git a/snap-src/bin/config b/snap-src/bin/config index dc285582..d19f19b7 100755 --- a/snap-src/bin/config +++ b/snap-src/bin/config @@ -278,7 +278,7 @@ DESCRIPTION_LDAP_BACKGROUND_SYNC="If the sync of the users should be done in the DEFAULT_LDAP_BACKGROUND_SYNC="false" KEY_LDAP_BACKGROUND_SYNC="ldap-background-sync" -DESCRIPTION_LDAP_BACKGROUND_SYNC_INTERVAL="At which interval does the background task sync in milliseconds" +DESCRIPTION_LDAP_BACKGROUND_SYNC_INTERVAL="At which interval does the background task sync" DEFAULT_LDAP_BACKGROUND_SYNC_INTERVAL="" KEY_LDAP_BACKGROUND_SYNC_INTERVAL="ldap-background-sync-interval" diff --git a/snap-src/bin/wekan-help b/snap-src/bin/wekan-help index af20dae5..84dd9d83 100755 --- a/snap-src/bin/wekan-help +++ b/snap-src/bin/wekan-help @@ -295,10 +295,10 @@ echo -e "If the sync of the users should be done in the background:" echo -e "\t$ snap set $SNAP_NAME ldap-background-sync='true'" echo -e "\n" echo -e "Ldap Background Sync Interval." -echo -e "At which interval does the background task sync in milliseconds." -echo -e "Leave this unset, so it uses default, and does not crash." -echo -e "https://github.com/wekan/wekan/issues/2354#issuecomment-515305722" -echo -e "\t$ snap set $SNAP_NAME ldap-background-sync-interval=''" +echo -e "At which interval does the background task sync." +echo -e "The format must be as specified in: https://bunkat.github.io/later/parsers.html#text" +echo -e "Default is empty '' that is same as 'every 1 hour'" +echo -e "\t$ snap set $SNAP_NAME ldap-background-sync-interval='every 1 hour'" echo -e "\n" echo -e "Ldap Background Sync Keep Existant Users Updated." echo -e "\t$ snap set $SNAP_NAME ldap-background-sync-keep-existant-users-updated='true'" diff --git a/snapcraft.yaml b/snapcraft.yaml index 41f1585c..2f965fe1 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -81,7 +81,7 @@ parts: wekan: source: . plugin: nodejs - node-engine: 8.16.2 + node-engine: 8.17.0 node-packages: - node-gyp - node-pre-gyp diff --git a/stacksmith/user-scripts/build.sh b/stacksmith/user-scripts/build.sh index 23dc7f84..8a7ba3e3 100755 --- a/stacksmith/user-scripts/build.sh +++ b/stacksmith/user-scripts/build.sh @@ -2,14 +2,13 @@ set -euxo pipefail BUILD_DEPS="bsdtar gnupg wget curl bzip2 python git ca-certificates perl-Digest-SHA" -NODE_VERSION=v8.16.2 +NODE_VERSION=v8.17.0 #METEOR_RELEASE=1.6.0.1 - for Stacksmith, meteor-1.8 branch that could have METEOR@1.8.1-beta.8 or newer USE_EDGE=false METEOR_EDGE=1.5-beta.17 NPM_VERSION=latest FIBERS_VERSION=4.0.1 ARCHITECTURE=linux-x64 -#NODE_VERSION=v10.14.1 sudo yum groupinstall -y 'Development Tools' sudo yum install -y http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm diff --git a/torodb-postgresql/docker-compose.yml b/torodb-postgresql/docker-compose.yml index 550752a5..7a7ad9c8 100644 --- a/torodb-postgresql/docker-compose.yml +++ b/torodb-postgresql/docker-compose.yml @@ -396,10 +396,10 @@ services: # example : LDAP_BACKGROUND_SYNC=true #- LDAP_BACKGROUND_SYNC=false # - # LDAP_BACKGROUND_SYNC_INTERVAL : 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='' + # At which interval does the background task sync. + # 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_KEEP_EXISTANT_USERS_UPDATED : # example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true |